Example: bachelor of science

CAH et K-Means sous Python

Universit Lyon ~ricco/cours2 DONN ESImportation des donn es, Universit Lyon Universit Lyon 2 Objectif de l tudeClassification automatique de fromagesTraitements r alis s Chargement et description des donn es Classification automatique Pistes pour la d tection du nombre ad quat de classes Description interpr tation des groupesObjectifs de l tudeCe document retranscrit une d marche de classification automatique d un ensemble de fromages (29 observations) d crits par leurs propri t s nutritives (ex. prot ines, lipides, etc. ; 9 variables). L objectif est d identifier des groupes de fromages homog nes, partageant des caract ristiques utiliserons essentiellement deux approches en nous appuyant sur deux proc dures des packages sp cialis s pour Python : la classification ascendante hi rarchique (CAH Package SciPy) ; la m thode des centres mobiles ( K-Means Package Scikit-Learn).

Groupes issus du clustering Classe Fromages 0 CarredelEst 0 Camembert 0 Fr.chevrepatemolle 0 Chabichou 0 Chaource 0 Coulomniers 1 Petitsuisse40 1 Fr.frais40nat. 1 Fr.frais20nat. 1 Yaourtlaitent.nat. 2 Parmesan 2 Edam 2 Emmental 2 Beaufort 2 Comte 3 Tome 3 SaintPaulin 3 Rocquefort 3 Reblochon 3 Pyrenees 3 PontlEveque 3 Cheddar 3 Morbier 3 ...

Tags:

  Clustering

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of CAH et K-Means sous Python

1 Universit Lyon ~ricco/cours2 DONN ESImportation des donn es, Universit Lyon Universit Lyon 2 Objectif de l tudeClassification automatique de fromagesTraitements r alis s Chargement et description des donn es Classification automatique Pistes pour la d tection du nombre ad quat de classes Description interpr tation des groupesObjectifs de l tudeCe document retranscrit une d marche de classification automatique d un ensemble de fromages (29 observations) d crits par leurs propri t s nutritives (ex. prot ines, lipides, etc. ; 9 variables). L objectif est d identifier des groupes de fromages homog nes, partageant des caract ristiques utiliserons essentiellement deux approches en nous appuyant sur deux proc dures des packages sp cialis s pour Python : la classification ascendante hi rarchique (CAH Package SciPy) ; la m thode des centres mobiles ( K-Means Package Scikit-Learn).

2 Le fichier provient de la page de coursde Marie Chaventde l Universit de Bordeaux. Les excellents supports et exercices corrig s que l on peut y trouver compl teront profit ce tutoriel qui se veut avant tout un guide simple pour une premi re prise en main de Python dans le contexte de la classification es disponiblesLabel des observationsVariables Universit Lyon 2 Fichier de donn esImportation, statistiques descriptives et graphiques#modification du dossier par d fautimport ("..")#importation des donn esimport pandasfromage = (" ",sep="\t",header=0,index_col=0)#dimensi on des donn esprint( )#statistiques descriptivesprint( ())#graphique -croisement deux deux des scatter_matrixscatter_matrix(fromage,fig size=(9,9))Ce type de graphique n est jamais anodin.

3 Nous constatons par exemple que (1) lipides est fortement corr l avec calories et cholest rol (sans trop de surprises) (remarque : la m me information va peser 3 fois dans l analyse) ; (2) dans certaines configurations, des groupes semblent appara tre naturellement (ex. croisement de prot ines et cholest rol , avec une corr lation inter-groupesassez marqu e).5 CAHC lassification ascendante hi Universit Lyon Universit Lyon 2 Classification ascendante hi rarchiqueUtilisation du package scipy #librairies pour la CAHfrommatplotlibimport pyplotas dendrogram, linkage#g n rer la matrice des liensZ = linkage(fromage_cr,method='ward',metric= 'euclidean')#affichage du ("CAH")dendrogram(Z,labels= ,orientation='left',color_threshold=0) ()Le dendrogramme sugg re un d coupage en 4 groupes.

4 On note qu une classe de fromages, les fromages frais (tout gauche), se d marque fortement des autres au point qu on aurait pu envisager aussi un d coupage en 2 groupes seulement. Nous y reviendrons plus longuement lorsque nous mixerons l analyse avec une analyse en composantes principales (ACP). Universit Lyon 2 Classification ascendante hi rarchiqueD coupage en classes Mat rialisation des groupes#mat rialisation des 4 classes (hauteur t = 7) ('CAH avec mat rialisation des 4 classes')dendrogram(Z,labels= ,orientation='left',color_threshold=7) ()#d coupage la hauteur t = 7 ==> identifiants de 4 groupes obtenusgroupes_cah= fcluster(Z,t=7,criterion='distance')prin t(groupes_cah)#index tri s des groupesimport numpyas npidg= (groupes_cah)#affichage des observations et leurs groupesprint( ( [idg],groupes_cah[idg]))Le 1ergroupe est constitu de fromages 2ndde fromages p te molle.

5 Le 3 mede fromages durs .Le 4 meest un peu fourre-tout (de mon point de vue).Mes comp tences en fromage s arr tent l (merci Wikip dia). Pour une caract risation l aide des variables de l tude, il faut passer par des techniques statistiques univari es(simples lire) ou multivari es(tenant compte des relations entre les variables). thode des centres Universit Lyon Universit Lyon 2M thode des centres mobilesUtilisation du package scikit-learn #k-meanssur les donn es centr es et r duitesfromsklearnimport clusterkmeans= (n_clusters=4) (fromage_cr)#index tri s des groupesidk= ( )#affichage des observations et leurs groupesprint( ( [idk], [idk]))#distances aux centres de classes des observationsprint( (fromage_cr))#correspondance avec les groupes de la (groupes_cah, )Correspondance CAH K-MeansLe groupe 1 de la CAH co ncide avec le groupe 1 des K-Means .

6 Apr s, il y a certes des correspondances, mais elles ne sont pas issus du aux centres de classes pour chaque individu (avec en couleur les min. respectifs) Universit Lyon 2M thode des centres mobilesAide la d tection du nombre ad quat de groupes#librairie pour valuation des partitionsfromsklearnimport metrics#utilisation de la m trique "silhouette"#faire varier le nombre de clusters de 2 10res= (9,dtype="double")for k in (9):km = (n_clusters=k+2) (fromage_cr)res[k] = (fromage_cr, )print(res)#graphiqueimport ("Silhouette") ("# of clusters") ( (2,11,1),res) () K-Means , la diff rence de la CAH, ne fournit pas d outils d aide la d tection du nombre de classes. Nous devons les programmer sous Python ou utiliser des proc dures propos es par des packages d di s.

7 Le sch ma est souvent le m me : on fait varier le nombre de groupes et on surveille l volution d un indicateur de qualit de la solution -d. l aptitude des individus tre plus proches de ses cong n res du m me groupe que des individus des autres ce qui suit, on calcule la m trique silhouette pour diff rents nombres de groupes issus de la m thode des centres partition en k = 2 groupes semble la meilleure au sens de la m trique silhouette . 11 INTERPR TATION DES CLASSESA nalyses univari eset multivari Universit Lyon Universit Lyon 2 Interpr tation des classesStatistiques comparatives#moyenne par variablem = ()#TSSTSS = [0]* (ddof=0)print(TSS)# aux groupesgb= ( )#effectifs conditionnelsnk= ()print(nk)#moyennes conditionnellesmk= ()print(mk)#pour chaque groupe cart la moyenne par variableEMk= (mk-m)**2#pond r par les effectifs du groupeEM = (nk,axis=0)#somme des valeurs => BSSBSS = (EM,axis=0)print(BSS)#carr du rapport de corr lation#variance expliqu e par l'appartenance aux groupes#pour chaque variableR2 = BSS/TSSprint(R2)

8 L id e est de comparer les moyennes des variables actives conditionnellement aux groupes. Il est possible de quantifier globalement l amplitude des carts avec la proportion de variance expliqu e (carr du rapport de corr lation). La d marche peut tre tendue aux variables illustratives. Pour les cat gorielles, nous confronterions les distributions approche est simple et les r sultats faciles lire. Rappelons cependant que nous ne tenons pas compte des liaisons entre les variables dans ce d finition des groupes est avant tout domin e par les teneurs en graisses (lipides, cholest rol et calories rel vent de la m me id e) et en prot groupe n 0 est fortement d termin par ces variables, les moyennes conditionnelles sont tr s diff 41 52 63 14 Moyennes conditionnellescalories sodium calcium lipides retinolfolates0 1 2 3 proteinescholesterolmagnesium0 1 2 3 Rapport de Universit Lyon 2 Interpr tation des classesAnalyse en composantes principales (ACP)# PCAacp= PCA(n_components=2).

9 Fit_transform(fromage_cr)#projeter dans le plan factoriel#avec un code couleur diff rent selon le groupe#remarquer le r le de zip()dans la bouclefor couleur,kin zip(['red','blue','lawngreen','aqua'],[0 ,1,2,3]) (acp[ ,0],acp[ ,1],c=couleur) () Avec l ACP, nous tenons compte des liaisons entre les variables. L analyse est plus riche. Mais il faut savoir lire correctement les sorties de l y a un probl me. Le groupe des fromages frais(n de groupe = 0) crase l information disponible et tasse les autres fromages dans un bloc qui s oriente diff fait, si l on comprend bien la nature du groupe n 0 des fromages frais, les autres sont plus compliqu s comprendre lorsqu ils sont replac s dans le premier plan TER L ANALYSEA la lumi re des r sultats de l Universit Lyon Universit Lyon 2 Approfondir l analyseRetirer les fromages frais du jeu de donn es#retirer des observations le groupe n 0 du k-meanspr c dentfromage_subset= [ !]

10 =0,:]print( )#centrer et r duirefromage_subset_cr= (fromage_subset)#g n rer la matrice des liensZ_subset= linkage(fromage_subset_cr,method='ward', metric='euclidean')#cahet affichage du ("CAH")dendrogram(Z_subset,labels= ,orientation='left',color_threshold=7) ()#groupesgroupes_subset_cah= fcluster(Z_subset,t=7,criterion='distanc e')print(groupes_subset_cah)Les fromages frais sont tellement particuliers loign s de l ensemble des autres observations qu ils masquent des relations int ressantes qui peuvent exister entre ces produits. Nous reprenons l analyse en les excluant des groupes se distinguent. On a moins le ph nom ne d crasement constat dans l analyse pr c Universit Lyon 2 Approfondir l analyseRetirer les fromages frais du jeu de donn es (2/2)#ACPacp_subset= PCA(n_components=2).


Related search queries