Vous êtes sur la page 1sur 7

Application 2 sous R :

2-1-classification des étudiants d’après leurs notes dans deux modules.


La classification K-means est la méthode de classification la plus simple et la plus utilisée pour diviser
un ensemble de données en un ensemble de k groupes.

Pour faire La classification K-means on aura besoin de charger les paquetages suivants :

library(tidyverse) # data manipulation


library(cluster) # clustering algorithms
library(factoextra) # clustering algorithms & visualization

Tableau des étudiants à classifier :

Les déférents instruction application :


- Charger les packages :

> library(tidyverse)

> library(cluster)

> library(factoextra)

-lire (importe) les données :

> 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é.

-calcule de distance entre les individus.


Dans R, il est simple de calculer et de visualiser la matrice de distance en utilisant les fonctions
get_dist et fviz_dist du paquet factoextra.

--- 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 : pour visualiser une matrice de distance.

> distance <- get_dist ( data )

> 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).

Cas 1 : nombre de classe égale à 2 :


> k2 <- kmeans ( data , centers = 2 )

> str ( k2 )

Résultat application k=2:

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é

Cas 1 : nombre de classe égale à 2 :


> k3 <- kmeans ( data , centers = 3 )

> str ( k3)


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.
- résultats en utilisant fviz_cluster . Cela fournit une belle illustration
> fviz_cluster ( k3 , data )

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.

2-2-classification des villes MAROCAIN d’après leurs températures pendant


l’été.
Objectif : l’objectif de cette partie et de faire la classification des villes marocain d’après leur
température dans l’été et de montre le rôle de l’utilisation de la fonction fviz_cluster qui permet de
faire automatiquement l’analyse en composantes principales (ACP) et tracera les points de données
selon les deux premiers composants principaux.
- tableau des villes à classifier :

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.

Vous aimerez peut-être aussi