Vous êtes sur la page 1sur 8

ENIT 2ème année MINDS

TP n°2: K-Means avec R

Données :

Segmentation et Classification d’un


ensemble de véhicules

On utilise le fichier « cars_dataset.txt », un fichier


texte avec séparateur tabulation. Il décrit les
caractéristiques de 392 véhicules. Les variables
actives qui participeront au calcul sont :
- La consommation (MPG, miles per galon,
plus le chiffre est élevé, moins la voiture
consomme) ;
- La taille du moteur (DISPLACEMENT)
- La puissance (HORSEPOWER)
- Le poids (WEIGHT)
- L’accélération (ACCELERATION, le temps
mis pour atteindre une certaine vitesse, plus
le chiffre est faible plus la voiture est
performante).
- La variable illustrative « origine des
véhicules » (ORIGIN : Japon, Europe, Etats
Unis) servira à renforcer l’interprétation des
groupes.

Sources :
http://eric.univ-lyon2.fr/~ricco/tanagra/fichiers/cars_dataset.zip
http://lib.stat.cmu.edu/datasets/cars.desc

1. Importation des données / centrer et réduire les données


# Importation des données
voitures <- read.table(file="cars_dataset.txt",header=T,dec=".")
# centrer et réduire les données

X=scale(voitures [,1:5], center = TRUE, scale = TRUE)


2. Centrage et réduction :

2. Application de la méthode K-Means

 On propose de concevoir une partition de trois groupes (trois clusters), en se limitant à 100
itérations avec K-means.

1
Walid Ayadi
ENIT 2ème année MINDS
# K-means en trois groupes
Voitures.means<- kmeans(X, 3, nstart = 100)

 Pour croiser les clusters avec la variable catégorielle illustrative origin, on introduit la commande
« table » :

#croisement des clusters avec la variable illustrative catégorielle


table(voitures[,6],Voitures.means$cluster)

 Compléter le tableau de contingence suivant :

1 2 3
Americain 103 97 45
European 22 0 46
Japanese 19 0 60
 Si on visualise les clusters sur le premier plan factoriel, on obtient cette figure :

 Est-ce que les résultats de clustering sont de bonnes qualités 

Les résultats de clustring sont de mauvaises qualités puisque le croisement des clusters avec la variable
illustrative « origin » n’est pas précis. En effet, les voitures d’origine américaine figurent dans les trois
clusters avec fréquences comparables surtout dans les 2 premières classes. Un autre souci se manifeste
pour les deux autres origines de voitures qui sont présents dans le premier et le troisième cluster avec des

2
Walid Ayadi
ENIT 2ème année MINDS
fréquences importantes. Même ceci est illustré à travers la projection des clusters sur le premier plan
factoriel, on voit un chevauchement entre la première et la troisième classe.

 Si les résultats sont mauvais, proposer des pistes d’améliorations.


- Une façon intuitive se présente pour améliorer le résultat de clustering est de faire augmenter le
nombre des itérations. Cependant, cette solution semble inefficace après avoir la mettre en œuvre.
- Vu que le nombre de cluster choisi semble inadéquat, on a recours à d’autres alternatives
notamment les critères de sélection du nombre optimal des clusters. On peut citer à titre
d’exemple le critère de silhouette et le critère de Elbow. Dans la suite, on l’utilise pour affiner nos
résultats.

#Critere de silhouette

fviz_nbclust(voitures[,1:5], FUN = hcut, method = "silhouette")

# Elbow method

fviz_nbclust(Z, kmeans, method = "wss")

geom_vline(xintercept = 4, linetype = 2)

labs(subtitle = "Elbow method")

3
Walid Ayadi
ENIT 2ème année MINDS

Ce graphe représente la variance totale des clusters en fonction de leur nombre. Notre but est de la faire minimiser pour
assurer l’homogénéité au sein des classes sans avoir beaucoup de clusters. C’est un compromis. Ici le coude peut être
représenté par k valant 2.

Le critère de silhouette et le critère de Elbow nous indiquent que le nombre des clusters le plus adéquat pour
faire une bonne partition globale est 2. De ce fait, on réapplique la méthode Kmeans sur notre exemple avec
2 clusters.

Le croisement des clusters avec les variable catégorielle origine sera comme suit :

Cluster1 Cluster2

american 100 145


european 0 68
japanese 0 79

Si on visualise les deux clusters sur le premier plan factorielle :

4
Walid Ayadi
ENIT 2ème année MINDS

On voit que le premier cluster est formé par des voitures américaines d’une part. D’autre, part le deuxième
cluster est formé par des voitures des trois origines. Cela dit qu’on est incapable de faire une partition
concrète des voitures selon l’origine de la voiture. En effet, une proportion importante. des voitures
américaines figure dans le deuxième cluster ainsi que toutes les voitures européennes et Japonaises. Cela
veut dire les voitures américaines présentent deux sortes de caractéristiques différentes de sorte qu’on a pu
les diviser en deux groupes. Une d’elle distingue les autres origines et présente un point commun. Raison
pour laquelle, on ne peut pas effectuer une distinction concrète entre ces voitures

II. Les variables du fichier Cultures_raisin.txt sont TEMPERATURE : Somme des températures moyennes
journalières, SOLEIL : Durée d’insolation, CHALEUR : Nombre de jours de grande chaleur, PLUIE :
Hauteur des pluies, QUALITE DU RAISIN : Bon, Moyen, Mauvais.

Refaire le même travail sur le fichier Cultures_raisin.txt afin de classer les observations selon les classes de
la variable QUALITE DU RAISIN.

1. Importation des données / centrer et réduire les données

# Importation des données

raisins <- read.table(file="Cultures_raisin.txt",header=T,dec=".")

1. Application de la méthode K-Means


 On se propose de former trois clusters en se basant sur la qualité de cluster et on mène 100
itérations dans le but de faire une bonne classification.
5
Walid Ayadi
ENIT 2ème année MINDS

# K-means en trois groupes

Entreprise.means<- kmeans(y, 2, nstart = 100)

 On obtient du nouveau la matrice de contingence moyennant la commande table

#croisement des clusters avec la variable illustrative catégorielle

table(raisins[,5],raisins.means$cluster)

Cluster1 cluster2 cluster3

Bon 0 0 11
Mauvais 7 4 1
Moyen 0 7 4

 Visualisation des 3 clusters sur R

# Visualisation des 3 clusters sur R sur le plan factoriel

fviz_cluster(raisins.means, data =Z)

À la suite du clustering effectué sur les données "Cultures_raisin.txt", on souligne une bonne répartition des
données selon la qualité de sorte qu’on peut attribuer à chaque qualité un cluster bien particulier. De ce fait
on peut calculer :

6
Walid Ayadi
ENIT 2ème année MINDS

 Taux de bonne classification total = (7+7+11) / = 73,5 %

 Taux de bonne classification de la classe Mauvais raisin = 7/12= 58.33 %

 Taux de bonne classification de la classe Bon raisin= = 100 %

 Taux de bonne classification de la classe Moyen raisin= 7/11 = 63.63 %

III. Refaire le même travail sur le fichier Faillite_entrep.txt afin de classer les observations selon les classes
de la variable Et

2. Importation des données / centrer et réduire les données

# Importation des données

Entreprise = read.table("E:/analyse des données/P2/Faillite_entrep.txt",header=T,row.names="Ent")

# centrer et réduire les données

3. Application de la méthode K-Means


 On se propose de former deux clusters en se basant sur la qualité de cluster et on mène 100
itérations dans le but de faire une bonne classification.

# K-means en 2 groupes

Entreprise.means<- kmeans(y, 2, nstart = 100)

 On obtient du nouveau la matrice de contingence moyennant la commande table

#croisement des clusters avec la variable illustrative catégorielle

table(raisins[,5],raisins.means$cluster)

Cluster1 cluster2

F 15 6
NF 1 24

7
Walid Ayadi
ENIT 2ème année MINDS

# Visualisation des 3 clusters sur R sur le plan factoriel

fviz_cluster(Entreprise.means, data =y)

Suite au clustering effectué sur les données " Faillite_entrep.txt ", on souligne une bonne répartition des
données selon l’état de l’entreprise de sorte qu’on peut les séparer en deux clusters bien particuliers. Un qui
concerne les entreprises en faillite et l’autre les entreprises en bonne santé. De ce fait on peut calculer :

Les résultats de clustering sont de bonnes qualités :

 Taux de bonne classification total = (15+24) / 46 = 84,7 %


 Taux de bonne classification de la classe F = 15/21 = 71.4 %
 Taux de bonne classification de la classe NF = 24/25 = 96 %

8
Walid Ayadi

Vous aimerez peut-être aussi