Page d'accueil

Espace Pro      
 Mon CV                      
  CV intéractif              
  CV Classique          
  CV imprimable        
  Téléchargement      
 Mes Projets              
  Statistiques              
  C.A.O.                        
  Programmation       
  Contact                     
Espace Perso  
 Liste DVD                  

6. K-Means

6.1. K-Means sans choisir les centres initiaux

Programme
Résultat
6.2. K-Means avec choix des centres initiaux

6.2.1. Seed avec la méthode Average

Programme
Résultat
6.2.2. Seed avec la méthode Complete

Programme
Résultat
6.2.2. Seed avec la méthode Median

Programme
Résultat
6.2.2. Seed avec la méthode Single

Programme
Résultat
6.2.2. Seed avec la méthode Ward

Programme
Résultat
6.3. Conclusion

6. K-Means :

SAS a une procédure qui exécute l'algorithme du K-Means, c'est la procédure PROC FASTCLUS

PROC FASTCLUS : Ré-allocation itérative à partir de la matrice des données par l'algorithme k-means (Mac-Queen) sur des pôles initiaux sélectionnés selon l'algorithme leader (Hartigan). Cette méthode est adaptée à un nombre n important d'individus (100 à 100 000).

6.1. K-Means sans choisir les centres initiaux :

Si on ne spécifie pas les points de départ, SAS les choisit tout seul, par contre, on peut lui imposer de ne faire que quatre sous-groupes, car dans les classifications hiérarchiques précédentes, on a vu qu'il y avait quatre sous-groupes.

Programme :
Le programme SAS est le suivant : Proc Fasclus.sas

PROC FASTCLUS
DATA=Proj
MAXCLUSTERS=4 ;
VAR v1-v7 ;
ID nom ;
RUN ;

Résultat :
Lorsqu'on exécute le programme, on obtient : Résultat

SAS peut faire une procédure Fasclus sans avoir besoin à priori de classification hiérarchique, mais on arriverait à de meilleurs résultats en se servant des résultats précédents.

6.1. K-Means avec choix des centres initiaux :

On peut spécifier les centres initiaux de PROC FASTCLUS, c’est ce qu’on va faire ici, pour avoir des résultats plus fins. On va aussi se servir de la procédure Candisc qui va nous permettre de représenter les classes trouvées en deux dimensions.

6.2.1. Seed avec la méthode Average :

Programme :
Le programme SAS est le suivant : Proc Fasclus Average.sas

PROC CLUSTER
DATA=Proj
METHOD=AVERAGE
OUTTREE=ProjClusterAverage
NOSQUARE
NOPRINT ;
VAR v1-v7 ;
ID nom ;
RUN ;

PROC TREE
DATA=ProjClusterAverage
OUT=ProjTreeAverage
NCL=5 ;
ID nom ;
RUN ;

proc sort data=ProjTreeAverage;
by nom;
run;

DATA MeansClusterAverage ;
merge Proj ProjTreeAverage; ;
RUN;

Proc sort DATA=MeansClusterAverage ;
BY cluster ;
run ;

PROC PRINT
DATA=MeansClusterAverage;
RUN ;

PROC MEANS
DATA = MeansClusterAverage
NOPRINT ;
BY Cluster;
VAR v1-v7 ;
OUTPUT OUT=MeanSeedAverage ;
RUN;

PROC SORT DATA=MeanSeedAverage ;
BY _STAT_ ;
RUN;

DATA ttt ;
SET MeanSeedAverage (FIRSTOBS=6 KEEP=_STAT_ v1-v7) ;
RUN;
DATA SeedAverage ;
SET ttt (OBS=5) ;
RUN ;
PROC PRINT
DATA=SeedAverage ;
RUN ;

PROC FASTCLUS
DATA=Proj
MAXCLUSTERS=5 CLUSTER=clus1 OUT=Fastclus1 SEED=SeedAverage;
VAR v1-v7 ;
ID nom ;
RUN ;

proc candisc data=Fastclus1 out=Can noprint ;
class clus1 ;
var v1-v7 ;

legend1 frame cframe=ligr label=none cborder=black position=center value=(justify=center);
axis1 label=(angle=90 rotate=0) minor=none;
axis2 minor=none;

proc gplot data=Can;
plot Can2*Can1=Clus1/frame cframe=ligr legend=legend1 vaxis=axis1 haxis=axis2;
run;

Résultat :
Lorsqu'on exécute le programme, on obtient : Résultat

On obtient aussi des graphiques : Graph.

Les variances des Groupes trouvés en utilisant les centres initiaux de la méthode Average sont plus faibles que lorsque l’on ne choisit pas les centres initiaux.

En regardant le Graphe, on remarque quatre groupes assez homogènes et on constate aussi que le comté isolé Highland ne prend aucun autre comté avec lui dans le groupe qu’il forme à lui tout seul.

6.2.2. Seed avec la méthode Complete :

Programme :
Le programme SAS est le suivant : Proc Fasclus Complete.sas

Dans la suite de la page, pour consulter les programmes SAS, il suffit d’aller sur les liens.

Résultat :
Lorsqu'on exécute le programme, on obtient : Résultat

On obtient aussi des graphiques : Graph.

Au niveau de la variance des groupes trouvés, les résultats sont pratiquement les mêmes que pour la méthode Average.

Enfin, le fait de ne pas prendre Highland dans un groupe implique que les groupes observés sur le graphique semblent plus compactes qu’avec la méthode Average.

6.2.3. Seed avec la méthode Median :

Programme :
Le programme SAS est le suivant : Proc Fasclu Median.sas

Résultat :
Lorsqu'on exécute le programme, on obtient : Résultat

On obtient aussi des graphiques : Graph.

Cette méthode n’apporte pas grand chose par rapport à la méthode Average pour ces données, les variances sont les mêmes et les groupes sont aussi compactes.

Par contre on remarque ici qu’un des comtés isolés (un groupe à un seul élément) a réussi à prendre deux comtés dans son groupe.
6.2.4. Seed avec la méthode Single :

Programme :
Le programme SAS est le suivant : Proc Fasclus Single.sas

Résultat :
Lorsqu'on exécute le programme, on obtient : Résultat

On obtient aussi des graphiques : Graph.

On a beaucoup plus de groupes avec cette méthode, mais c’est ici que la variable Within STD est la plus faible.

6.2.5. Seed avec la méthode Ward :

Programme :
Le programme SAS est le suivant : Proc Fasclus Ward.sas

Résultat :
Lorsqu'on exécute le programme, on obtient : Résultat

On obtient aussi des graphiques : Graph.

Comme pour les classifications hiérarchiques, la méthode Ward présente les mêmes résultats que la méthode Complete.

6.3. Conclusion :

Toute ces méthodes ne changent que très peu, elles nous donnent quasiment les mêmes résultats, les variances intra et les variances extra ne varient pas beaucoup. Sauf en ce qui concerne les nombres de groupes.

Sauf pour la méthode Single qui présente des variances intra et des variances extra un peu plus intéressantes mais c’est au détriment du nombre de groupes.

On remarquera aussi que les variances intra et les variances extra sont plus importantes lorsque l’on ne choisit pas les centres initiaux.