Académique Documents
Professionnel Documents
Culture Documents
Pour faire La classification K-means on aura besoin de charger les paquetages suivants :
> library(tidyverse)
> library(cluster)
> library(factoextra)
> data=read.csv2("note.csv",row.names=1)
- Comme nous ne voulons pas que l'algorithme de classification dépende d'une unité variable
arbitraire, nous commençons par mettre à l'échelle / normaliser les données en utilisant fonction
scale :
> data=scale(data)
NB : cette instruction dans notre cas est optionnelle par ce que les donne sont déjà sans unité.
--- get_dist : pour calculer une matrice de distance entre les lignes d'une matrice de données. La
distance par défaut calculée est l’Euclidien.
> fviz_dist ( distance , gradient = list ( low = "#00AFBB" , mid = "white" , high = "#FC4E07" ))
résultat obtenu:
Interprétation :
On remarque que plus que la distance est grande entre deux individués plus que le colleur approche
au rouge et dans le cas inverse le colleur approche au bleu.
Calculer k-means
Nous pouvons calculer k-means dans R avec la fonction kmeans. Ici regroupera les données en k
classes (centers = k).
> str ( k2 )
Interprétation :
La sortie de kmeans est une liste avec plusieurs bits d'information. Le plus important étant :
Cluster : Un vecteur d'entiers (de 1: k) indiquant le cluster auquel chaque point est alloué.
Centers : Une matrice de centres de cluster.
totss : La somme totale des carrés.
Betweenss : : Vecteur de la somme des carrés entre les classes(entre).
withinss : Vecteur de la somme des carrés à l'intérieur(intra) d'un class.
Size : Le nombre de points dans chaque cluster.
Nous pouvons également voir nos résultats en utilisant fviz_cluster . Cela fournit une belle illustration
des classes. S'il y a plus de deux dimensions (variables), fviz_cluster effectuera une analyse en
composantes principales (PCA) et tracera les points de données selon les deux premiers composants
principaux.
> fviz_cluster ( k2 , data )
Interprétation :
On remarque que les étudient sont constitué grand 2 classe chaque classe contient un nombre des
étudiants mais la présentation ne données pas une bonne idée sur la distribution des notes des
étudiants.
NB : str (k3) # names(k3) même rôle que str, ms str plus généralisé
Interprétation :
On remarque bien que les étudient sont constitué 3 classe chaque classe contient un nombre des
étudiants où la classe 1 contient les étudiants qu’ont des bonnes notes, la classe 2 contient les
étudiants qu’ont des mauvaises notes et la classe 3 contient les étudiants qu’ont des notes
moyennes.
Exécution de code :
> library(tidyverse)
> library(cluster)
> library(factoextra)
> data=read.csv2("temp.csv",row.names=1)
> data=scale(data)
> distance <- get_dist(data)
> fviz_dist ( distance ,gradient = list (low = "#00AFBB" ,mid= "white" ,high="#FC4E07" ))
> k3<-kmeans ( data , centers =3 )
> fviz_cluster ( k3 , data )
Les résultats de l’exécution de k-means.
Interprétation des résultats.
On remarque bien que les classes sont bien présente sur les deux nouvelles axes (Dim1 Dim2)
résultant De l’analyse en composantes principales (ACP).
Donc on aura 3 classes des villes la premier contient les villes qui en une température moyenne
pendent l’été, la troisième classe contient les villes qu’ont une température faible (froide) et la
deuxième classe contient les villes qu’ont une température très élevée (chaude) pendent l’été.
Conclusion
L’algorithme du K-Means fut l’une des approches non-hiérarchiques les plus populaires. Il est l'outil
de classification le plus utilisé dans les applications scientifiques et industrielles. Quoiqu'il ne
fonctionne pas très bien pour les attributs catégoriels, il a un bon sens géométrique et statistique
pour les attributs numériques.
Résumé
La classification c’est construire une collection d’objets Similaires au sein d’un même groupe et
dissimilaires quand ils appartiennent à des groupes différents. Les algorithmes de classification non
supervisées sont souvent utilisés pour étudier des données pour lesquelles peu d’information sont
disponible. Il existe une très large famille de méthodes dédiées à la classification non supervisée dont
le plus simple est l’algorithme de k-means.