Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
TP n°2 : Méthodes de classification
Ben harrath arij 4infini
Note
Ce TP...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
I.Classification avec R
A. K-Means (Méthodes des Centres Mobiles)
1. Im...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
3. Application de la méthode des Centres Mobiles (K-Means)
Maintenant, ...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
 Pour l’interprétation des groupes, on calcule les moyennes conditionn...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
#graphique des variables 2 à 2 avec groupe d'appaternance
>pairs(voitur...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
Pour ce faire, appliquer les lignes de commandes suivantes :
#ACP sur l...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
En déduire vos interprétations finales sous forme de
rapport final (la...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
B. Classification Ascendante Hiérarchique
On désire refaire la classifi...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
 On va utiliser la fonction cutree pour couper le dendrogramme afin d’...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
II. Classification avec SAS
A. K-Means (Méthodes des Centres Mobiles)
1...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
DRIFT : pour remplacer la méthode des centres mobiles par celle des k-m...
Data Mining
Data-mining@esprit.tn ESPRIT©2013-2014
B. Classification Ascendante Hiérarchique
PROC CLUSTER DATA=A METHOD=me...
Prochain SlideShare
Chargement dans…5
×

Benharratharijtp2 classification

217 vues

Publié le

Méthodes de classification

Publié dans : Données & analyses
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
217
Sur SlideShare
0
Issues des intégrations
0
Intégrations
9
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Benharratharijtp2 classification

  1. 1. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 TP n°2 : Méthodes de classification Ben harrath arij 4infini Note Ce TP est à rendre en fin de séance. NB : N’oublier pas de mentionner vos interprétations et constatations après chaque résultat Objectifs généraux Dans ce TP, nous allons appliquer les méthodes de classification sur des échantillons de données. Objectifs spécifiques  Importer les données  Réaliser quelques statistiques descriptives sur les variables actives ;  Centrer et réduire les variables  Réaliser la classification automatique via les K-Means sur les variables transformées, en fixant le nombre de classes et via la classification ascendante hiérarchique  Visualiser les données avec la nouvelle colonne représentant la classe d’appartenance des individus  Illustrer les classes à l’aide des variables actives, via des statistiques descriptives comparatives et des graphiques judicieusement choisis  Croiser la partition obtenue avec une variable catégorielle illustrative 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
  2. 2. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 I.Classification avec R A. K-Means (Méthodes des Centres Mobiles) 1. Importation des données et statistiques descriptives : (sans package additionnel spécifique) Donner les statistiques descriptives : 2. Centrage et réduction : Pour centrer et réduire les données, on doit commencer tout d’abord par la construction d’une fonction« centrage_reduction » qui centre et réduit une colonne, qu’on applique à l’ensemble desvariables actives avec apply(……..) Pour ce faire, on propose d’exécuter la fonction de standardisation de colonne suivante : # Exécuter la fonction de standardisation d'une colonne centrage_reduction<- function(x) { return((x-mean(x))/sqrt(var(x))) } Obtention du tableau des données centrées et réduites # Appliquer pour produire le tableau des données centrées et réduites voitures.cr <- apply(voitures[,1:5],2,centrage_reduction) # Vérification des moyennes apply(voitures.cr,2,mean) # Vérification de la variance apply(voitures.cr,2,var) # Importation des données setwd("") voitures <- read.table(file=file.choose(),header=T,row.names=1 ) # Description et statistiques descriptives summary(voitures) Interprétation de la moyenne et de la variance des colonnes : Ses colonnes sont de moyenne nulle et de variance unitaire
  3. 3. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 3. Application de la méthode des Centres Mobiles (K-Means) Maintenant, on lance l’algorithme K-Means sur les variables centrées et réduites. On propose de concevoir une partition de deux groupes (deux clusters), en se limitant à 40 itérations. i. Expliquer les paramètres basiques de la fonction R kmeans() ii. En déduire le code suivant : iii. Expliquer le résultat obtenu : (K-means clustering, cluster means, clustering vector) 4. Interprétation des groupes d’appartenance : est une méthode de quantification vectorielle, originaire de traitement du signal, qui est populaire pour l'analyse de cluster dans l'extraction de données. k-means vise à diviser n observations en k grappes dans lequel chaque observation appartient à la grappe avec la moyenne la plus proche, servant de prototype de la grappe. x : Matrice de données. Centers : Le nombre de clusters. Iter.max : Le nombre maximum des itérations permises. # K-means en deux groupes nb.classes <-2 voitures.kmeans <- kmeans(voitures.cr,centers=nb.classes,iter.max=40) print()
  4. 4. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014  Pour l’interprétation des groupes, on calcule les moyennes conditionnelles des variables actives originelles. On les collecte dans une seule matrice à l’aide des commandes suivantes : #récupération des groupes d'appartenance groupe <- as.factor(voitures.kmeans$cluster) #calculer les barycentres des classes #dans l'espace des variables actives initiales (numéro 1 à 5) centres<- NULL for (k in 1:nb.classes){ ligne <- colMeans(voitures[groupe==k,1:5,drop=FALSE]) centres<- rbind(centres,ligne) } numero<- seq(from=1,to=nb.classes) rownames(centres) <- paste("clus_",numero,sep="") print(centres)  interprétations :  Pour croiser les clusters avec la variable catégorielle illustrative ORIGIN, on introduit la commande « table » :  Compléter le tableau de contingence suivant : 1 2 Americain 100 145 European 0 68 Japanese 0 79 Le Deuxième groupe contient des voitures américaine, européenne et japonaise (Profil euro-japonais). Le Premier groupe est de 100% américain (Profil américain). Un tableau de contingence est une méthode de représentation de données découlant d’un comptage. Les données sont rassemblées dans un tableau avec le caractère auquel elles sont reliées. On pratique des études sur plusieurs caractères, en essayant alors de déterminer s'il existe une quelconque liaison entre eux. Pour cela on étudie les individus recensant plusieurs caractères à la fois. Pour projeter les points, illustrés selon leur groupe d’appartenance, dans les plans formés par les couples de variables, R démontre toute sa puissance. La commande utilisée est « pairs » le résultat est riche d’enseignements : les variables sont pour la plupart fortement corrélées, presque tous les couples de variables permettent de distinguer les groupes : #croisement des clusters avec la variable illustrative catégorielle print(table(voitures$origin,groupe))
  5. 5. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 #graphique des variables 2 à 2 avec groupe d'appaternance >pairs(voitures[,1:5],pch=21,bg=c("red","blue")[groupe]) La projection de point, selon leur groupe d’appartenance, dans les plans formés par les couples de variable, les variables sont pour la plupart fortement corrélées, presque tous les couples de variables permettent de distinguer les groupes 5. Combinaison ACP / K-Means : Dans le but de trouver un outil permettant de bien situer les groupes, on propose de projeter les points dans le premier plan factoriel de l’Analyse en Composantes Principales.
  6. 6. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 Pour ce faire, appliquer les lignes de commandes suivantes : #ACP sur les données centrées réduites acp<- princomp(voitures.cr,cor=T,scores=T) print(acp) #pour obtenir les valeurs propres print(acp$sdev^2) #pour obtenir les corrélations sur le premier axe print(acp$loadings[,1]*acp$sdev[1]) #graphique dans le premier plan factoriel, avec mise en évidence des groupes plot(acp$scores[,1],acp$scores[,2],type="p",pch=21,col=c("red","blue")[groupe]) Remarque : vous pouvez utiliser la fonction prédéfinie PCA de FactoMineR  Montrer les projections sur les plans factorielles, et en déduire vos conclusions 6. Exportation des données : Durant cette dernière étape du processus K-means, on exporte l’ensemble des données dans un seul fichier en fusionnant la base initiale avec lacolonne additionnelle produite par la typologie. #exportation des données avec le cluster d'appartenance voitures.export<- cbind(voitures,groupe) write.table(voitures.export,file="export_r.txt",sep="t",dec=".",row.names=F)  Vérifier la création du nouveau fichier « export_r.txt » sur votre répertoire courant, et faire le joindre avec votre compte-rendu. pca=PCA(voitures[,1:5], quali.sup=5); L’axe horizontal pour la dimension contient 88.91% de l’information. - Les variables (horspower, display, weight) sont corrolées avec le premier axe positivement - mpg est corrollé négativement.
  7. 7. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 En déduire vos interprétations finales sous forme de rapport final (la partie la plus importante dans tous les TP Data Mining)  On constate avec la méthode kmeans que la classification de notre entrepôt de donnée est divisé en 2 groupes.  La méthode K-Means est une technique de classification automatique qui vise à produire des regroupements de manière à ce que les individus du même groupe soient semblables.  Le lancement de l’algorithme k-means sur les variables centrées réduites nous a permet de concevoir la Répartition de deux groupes (deux clusters) donc à diviser les données en cas groupes (classes) pour minimiser les distances entre les points et les centres des classes.
  8. 8. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 B. Classification Ascendante Hiérarchique On désire refaire la classification sur les modèles de voitures avec la Classification Ascendante Hiérarchique sur la On a plusieurs choix pour l’option : distance, selon la fonction dist().  Expliquer l’utilité de cette fonction grâce à la commande « ? dist() » Appliquer cette fonction sur l’entrepôt des voitures donnés  Ecrire la ligne de commande utilisée :  Décrire le principe d’utilisation de la fonction « hclust »  En déduire le dendrogramme associé : Cette fonction calcule et renvoie la matrice de distance calculée à l'aide de la mesure de distance spécifiée pour calculer les distances entre les lignes d'une matrice de données. > d<-dist(voitures.cr ,method="euclidean") HC<-hclust(d,method="average") plot(HC)
  9. 9. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014  On va utiliser la fonction cutree pour couper le dendrogramme afin d’avoir 2 classes. > classe<-cutree(HC,2)  Croiser les clusters avec la variable catégorielle illustrative ORIGIN  Compléter le tableau de contingence suivant : 1 2 Americain 148 97 European 68 0 Japanese 79 0 On Constate que le Premier groupe se forme de 3 type de voiture c’est hétérogène Le deuxième groupe est homogène il s’agit de 100% (97 voiture américaine ) > table(voitures$origin,classe)
  10. 10. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 II. Classification avec SAS A. K-Means (Méthodes des Centres Mobiles) 1. Importation des données 2. Normalisation des données (centrage et réduction) 3. Application de la méthode des K-moyennes PROC FASTCLUS DATA= A OUT= BOUTSTAT= CMEAN=D MAXITER=CONVERGENCE= DELETE= CLUSTER= DRIFT MAXC= /RADIUS= VAR liste des variables quantitatives étudiées ; ID nom de la variable comportant le nom des individus ; WEIGH Tvariable ; RUN ; N.B. souligné = facultatif On doit spécifier soit l’option MAXC= ou RADIUS= option ou les deux. FASTCLUS signifie FAST CLUSTERING (= classification rapide) A = Nom donné à la table SAS contenant les données B = Nom de la table SAS, créée automatiquement par SAS contenant, entre autre, la variable CLUSTER(les assignements de classes) et la variable DISTANCE (distance séparant l’individu du centre de la classe) C =Nom de la table contenant un résumé de l’analyse (classes,...). D= Nom de la table contenant les moyennes dans les classes et d’autres statistiques pour chaque classe : FREQ_: effectif de la classe ; _RMSSTD_ : inertie intra-classe ; _NEAR_ :no de la classe la + proche ; _GAP_ : distance entre le centre et l’autre centre le + proche ; _RADIUS_ : distance max entre 1 individu et son centre ; X, Y : coordonnées du centre de la classe DELETE=n supprime les centres avec ≤ n individus rattachés (pour éviter d’avoir pour centre un « outlier ») MAXC=n spécifie le nombre maximum de classes toléré, égal à 100 par défaut. MAXITER=n spécifie le nombre maximum d’itérations toléré pour recalculer les centres. converge=0.02 : les itérations s’arrêtent quand plus aucun centre ne se déplace d’une distance > 0.02 Data cars; infile'C:SAScars_dataset.txt' 'expandtabs firstobs=2; *La première ligne contient les noms des variables* input mpg displacement horsepower weight acceleration origin$; run; Proc standard mean=0 std=1 data=cars out=cars_std; Var mpg displacement horsepower weight acceleration; run;
  11. 11. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 DRIFT : pour remplacer la méthode des centres mobiles par celle des k-means (convergence plus rapide) RADIUS=d : spécifie la distance minimale entre 2 centres initiaux (= 0 par défaut) REPLACE=none : accélère la phase de sélection des centres initiaux en empêchant les substitutions des centres les plus proches (choisir alors « radius » assez grand) –mieux vaut laisser l’option par défaut « replace=full » 4. Table de contingence 5. Application d’une analyse en composantes principales avec K-means PROC FASTCLUS DATA = cars MAXCLUSTERS=2 OUT=Fastclus1; VAR mpg displacement horsepower weight acceleration; ID origin; RUN; Proc freq data=Fastclus1; Tables origin * cluster; run; %macro acp(table,vars,ids); Proc princomp data=&table out=acp vardef=wgt; ods output Eigenvalues=eigenvalues Eigenvectors=eigenvectors; var &vars; run; proc transpose data=eigenvalues out=teigenvalues(drop=_name_) prefix=lambda; var eigenvalue; run; Proc sql; select count(*) into :avars from eigenvalues; quit; data eigenvectors; if _n_ = 1 then set teigenvalues; set eigenvectors; array c{*} prin1-prin%trim(&avars); array l{*} lambda1-lambda%trim(&avars); do i=1 to &avars; c(i)=c(i)*sqrt(l(i)); end; keep variable prin1-prin%trim(&avars); run; proc gplot data=eigenvalues; symbol i=join v=dot pointlabel=none; plot (eigenvalue difference)*Number / overlay legend; plot2 (proportion cumulative)*Number / overlay legend; run; quit; %mend; %acp(carsFile,mpg displacement horsepower weight acceleration,ACP); %macro acp_plot(axe1,axe2,id); PROC GPLOT DATA=ACP; PLOT prin&axe2*prin&axe1 = &id; run; %mend; %acp_plot(1,2,cluster);
  12. 12. Data Mining Data-mining@esprit.tn ESPRIT©2013-2014 B. Classification Ascendante Hiérarchique PROC CLUSTER DATA=A METHOD=methodeutiliséeOUTTREE=D SIMPLESTDRSQCCCPSEUDO; VAR liste des variables quantitatives étudiées ; ID nomid; WEIGHT variable ; PROC TREE DATA= D NCL=nombre de classes voulues OUT=C(rename=(_NAME_=nomid) RUN; nomid=nom de la variable comportant le nom des individus A= table de données D=table stockant les informations nécessaires pour réaliser le dendrogramme C=table de stockage des numéros de classes STD : Standardisation des variables SIMPLE : statistiques simples sur les données RSQ : édition du R-squared et semi-partial R-squared CCC : édition du CCC PSEUDO : édition du pseudo-F METHOD= méthode d’agrégation utilisée. Il y a 11 méthodes, dont :  AVERAGE, average linkage  CENTROID : méthode des centroïdes  COMPLETE : complete linkage  SINGLE : single linkage  WARD : méthode de ward  Appliquer la classification ascendante hiérarchique pour avoir 2 classes PROC CLUSTER DATA=cars_std METHOD=AVERAGE OUTTREE=ProjClusterAverage; VAR mpg displacement horsepower weight acceleration; ID Numero; RUN ; PROC TREE DATA=ProjClusterAverage OUT=ProjTreeAverage NCL=2; ID numero; RUN ; proc sort data=ProjTreeAverage; by numero; run; DATA MeansClusterAverage ; merge cars ProjTreeAverage; ; RUN; Proc sort DATA=MeansClusterAverage ; BY numero; run ; Proc freq data=MeansClusterAverage; Tables cluster * origin; run;

×