1. Arthur CHARPENTIER - Analyse des donn´ees
Analyse des donn´ees (4)
La Classification (Ascendante) Hi´eracrchique
Arthur Charpentier
http ://perso.univ-rennes1.fr/arthur.charpentier/
blog.univ-rennes1.fr/arthur.charpentier/
Master 2, Universit´e Rennes 1
1
2. Arthur CHARPENTIER - Analyse des donn´ees
La classification, une introduction
Ici on cherche `a regrouper des objects pr´esentant des similitudes. De mani`ere
intuitive, on voit que le choix de la distance ne sera pas neutre.
L’id´ee est de constituer des groupes homog`enes. Il existe des m´ethodes
• non hi´erarchique ou dites de partitionnement
• hi´erarchique o`u on cherche `a construire des suites de partitions emboˆıt´ees,
contenant n, puis n − 1, puis n − 2, · · · classes, en regroupant `a chaque ´etape
deux parties.
Remarque rappelons que le nombre de partitions en k classes de n ´el´ements est
de l’ordre de kn
/k! et donc le nombre total de partitions d’un ensemble de n
´el´ement vaut
1
e
k≥1
kn
k!
. Aussi, avec n = 10 individus, il y a un peu plus de
100, 000 partitions possible, et pour n = 15, plus de 1.3 milliards.
=⇒ pour plus de 10 individus, il est impossible de comparer toutes les partitions
possibles.
Pour des variables continues, on utilise une distance euclidienne pour mesurer la
2
3. Arthur CHARPENTIER - Analyse des donn´ees
distance entre deux individus,
d2
(i1, i2) =
j
(Yi1,j − Yi2,j)
2
.
Pour des variables qualitatives, on utilise une distance du chi-deux pour mesurer
la distance entre deux individus, i.e. entre deux profils lignes
d2
(i1, i2) =
j
ni1,j
ni1,·
−
ni1,j
ni2,·
2
.
3
4. Arthur CHARPENTIER - Analyse des donn´ees
Exemple introductif, sur donn´ees continues
Consid´erons l’exmple au d´ecathlon, en athl´etisme
> library(ade4)
> data(olympic)
> head(olympic$tab)
100 long poid haut 400 110 disq perc jave 1500
1 11.25 7.43 15.48 2.27 48.90 15.13 49.28 4.7 61.32 268.95
2 10.87 7.45 14.97 1.97 47.71 14.46 44.36 5.1 61.76 273.02
3 11.18 7.44 14.20 1.97 48.29 14.81 43.66 5.2 64.16 263.20
4 10.62 7.38 15.02 2.03 49.06 14.72 44.80 4.9 64.04 285.11
5 11.02 7.43 12.92 1.97 47.44 14.40 41.20 5.2 57.46 256.64
6 10.83 7.72 13.58 2.12 48.34 14.18 43.06 4.9 52.18 274.07
Afin de comparer “proprement” les variables, on commence
• par centrer et r´eduire (afin de rendre comparable)
• par transformer certaines variables car elles ne s’interpr`ete pas de la mˆeme
mani`er : un score ´elev´e en haut signifie que la personne a saut´e haut en saut en
hauteur (ce qui est bon), mais un score ´elev´e en 100 signifie que la personne a
mis un temps long pour courrir le 100 m`etre (ce qui est mauvais)
4
5. Arthur CHARPENTIER - Analyse des donn´ees
On pose alors Yi,j = ±
Xi,j − Xj
sj
, avec un signe − pour les sports de course.
> Y=scale(olympic$tab, center=TRUE,scale=TRUE)
> Y[,c(1,5,6,10)]= -Y[,c(1,5,6,10)]
> distY=dist(Y, center=TRUE,scale=TRUE)
> distY
1 2 3 4 5 6
2 4.363550
3 4.108952 1.887325
4 4.183513 2.168189 3.185110
5 5.193806 2.385945 2.190279 3.979429
6 4.280036 2.937114 3.666441 3.346085 2.968765
7 5.074714 3.539372 3.339522 3.787598 4.012323 4.347930
5
6. Arthur CHARPENTIER - Analyse des donn´ees
Fig. 1 – Constitution de classes : regrouper des individus (et des classes).
6
7. Arthur CHARPENTIER - Analyse des donn´ees
Fig. 2 – Constitution de classes : regrouper des individus (et des classes).
7
8. Arthur CHARPENTIER - Analyse des donn´ees
Fig. 3 – Constitution de classes : regrouper des individus (et des classes).
8
9. Arthur CHARPENTIER - Analyse des donn´ees
Fig. 4 – Constitution de classes : regrouper des individus (et des classes).
9
10. Arthur CHARPENTIER - Analyse des donn´ees
Retour sur le d´ecathlon
20
10
18
7
4
11
6
5
13
1
14
12
15
8
9
2
3
17
28
30
31
32
26
24
25
21
22
16
23
33
29
19
27
05101520
Cluster Dendrogram
hclust (*, "ward")
Fig. 5 – Constitution de classes sur les sportifs du d´ecathlon.
10
11. Arthur CHARPENTIER - Analyse des donn´ees
Retour sur le d´ecathlon
−0.2 0.0 0.2 0.4
−0.20.00.20.4
Comp.1
Comp.2
1
1 1
2
1
1
2
1
1
2
2
1
1
1
1
3
4
2
3
2
3
3
3
3
3
3
3
4
3
4
4
4
3
−4 −2 0 2 4 6 8
−4−202468
100long
poid
haut
400
110
disq
perc
jave
1500
Fig. 6 – ACP avec les classes des sportifs du d´ecathlon.
11
12. Arthur CHARPENTIER - Analyse des donn´ees
Retour sur le d´ecathlon
−3 −2 −1 0 1 2 3 4
−2024
Component 1
Component2
These two components explain 57.84 % of the point variability.
q
q
q
q
q
q
q
q
q
q
q
1
2
3
4
Fig. 7 – ACP avec les classes des sportifs du d´ecathlon.
12
13. Arthur CHARPENTIER - Analyse des donn´ees
Notons qu’au lieu de regrouper les sportifs, on pourrait aussi regrouper les
variables.
> distY=dist(t(Y))
> distY
100 long poid haut 400 110 disq perc jave
long 5.428413
poid 7.119673 7.410709
haut 7.393370 6.820509 7.495809
400 5.022220 5.569466 8.369785 7.641971
110 4.810911 5.779988 6.713726 6.661003 5.390198
disq 7.808819 7.830512 3.520434 7.386813 8.549857 7.545075
perc 6.252612 6.450176 5.769002 7.096024 6.603470 5.533615 6.479676
jave 7.736813 7.236939 5.074343 7.521977 8.467736 7.744637 5.971090 6.815316
1500 6.877050 6.219523 9.011386 7.529835 5.139452 7.404658 9.473567 7.873012 8.376637
> hc <- hclust(distY, "ave")
> plot(hc)
> plot(hc, hang = -1)
13
14. Arthur CHARPENTIER - Analyse des donn´ees
jave
poid
disq
haut
400
1500
perc
long
100
110
34567
Cluster Dendrogram
hclust (*, "average")
distY
Height
jave
poid
disq
haut
400
1500
perc
long
100
110
345678
Cluster Dendrogram
hclust (*, "average")
distYHeight
Fig. 8 – Regroupement des sports du d´ecathlon
14
15. Arthur CHARPENTIER - Analyse des donn´ees
Notons que l’on peut aussi changer de distance, ou la m´ethode de regroupement,
par exemple,
> distY=dist(t(Y),method = "euclidean")
> hc <- hclust(distY, "average")
> plot(hc)
> distY=dist(t(Y),method = "canberra")
> hc <- hclust(distY, "single")
> plot(hc)
15
16. Arthur CHARPENTIER - Analyse des donn´ees
jave
poid
disq
haut
400
1500
perc
long
100
110
34567
Cluster Dendrogram
hclust (*, "average")
distY
Height
haut
jave
poid
disq
perc
long
1500
400
100
110
3.54.04.55.05.56.06.5
Cluster Dendrogram
hclust (*, "single")
distY
Height
jave
poid
disq
400
1500
haut
perc
long
100
110
2468101214
Cluster Dendrogram
hclust (*, "ward")
distY
Height
400
1500
jave
poid
disq
haut
perc
long
100
110
3456789
Cluster Dendrogram
hclust (*, "complete")
distY
Height
jave
poid
disq
haut
400
1500
perc
long
100
110
34567
Cluster Dendrogram
hclust (*, "average")
distY
Height
1500
400
long
disq
jave
poid
haut
100
110
perc
2530354045505560
Cluster Dendrogram
hclust (*, "single")
distY
Height
Fig. 9 – Regroupement(s) des sports du d´ecathlon 16
17. Arthur CHARPENTIER - Analyse des donn´ees
Exemple introductif, sur donn´ees qualitatives
On peut utiliser cette m´ethode pour ´etudier des regroupements de modalit´es, voir
quelles modalit´ees sont proches : classification sur un tableau de contingence.
Pour cela, on utilise une distance du chi-deux pour mesurer la proximit´e entre
des modalit´es. Par exemple sur le liens entre la CSP et la nationalit´e, on peut
´etudier des regroupements de lignes (i.e. de CSP),
> CSPnat=read.table("D:CSP-nat.txt",head=TRUE)
> mymat=CSPnat[,2:ncol(CSPnat)]
> mydf <- as.data.frame(mymat)
> mydf.coa <- dudi.coa(mydf, scannf = FALSE, nf = 2)
> distY=dist.dudi(mydf.coa, amongrow = TRUE)
> hc <- hclust(distY, "ward")
> hc$labels=as.character(CSPnat$CS)
> plot(hc)
ou de colonnes
> CSPnat=read.table("D:CSP-nat.txt",head=TRUE)
> mymat=CSPnat[,2:ncol(CSPnat)]
17
20. Arthur CHARPENTIER - Analyse des donn´ees
Une autre piste, pour classer des individus, est d’utiliser des m´ethodes de
classification sur l’AFC ou l’ACM d’un tableau de variables qualitatives, et de
consid´erer les coordonn´ees des individus sur les axes factoriels comme de
nouvelles variables.
> library(FactoMineR)
> afc=CA(mymat, ncp = 5)
> base=CA(mymat, ncp = 5)$row$coord
> hc <- hclust(dist(base), "ave")
> hc$labels=as.character(CSPnat$CS)
> plot(hc)
Ici on utilise une distance euclidienne (classique) sur les projections sur les axes
principaux. Notons qu’on retient ici uniquement les 5 premiers axes. Le graphique
ci-dessous montrer la classifation obtenue sur 2 et sur 5 axes, puis 2, 4, 6 et 10.
20
23. Arthur CHARPENTIER - Analyse des donn´ees
De l’importance du choix de la distance, dans R2
Distance euclidienne, d(a, b) = (a1 − b1)2 + (a2 − b2)2.
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance euclidienne
q
q
12
++ 12
== 2
1
1
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance euclidienne
barycentre
q
q
plus proches
voisins
q
q
plus lointains
voisins
23
24. Arthur CHARPENTIER - Analyse des donn´ees
De l’importance du choix de la distance, dans R2
Distance maximale, d(a, b) = max{|a1 − b1|, |a2 − b2|}.
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance maximale
q
q
max{|1−0|,|1−0|}=1
1
1
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance maximale
q
q
plus proches
voisins
q
q
plus lointains
voisins
24
25. Arthur CHARPENTIER - Analyse des donn´ees
De l’importance du choix de la distance, dans R2
Distance de Manhantan, d(a, b) = |a1 − b1| + |a2 − b2|.
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Manhattan
q
q
|1−0|+|1−0|=2
1
1
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Manhattan
q
q
plus proches
voisins
q
q
plus lointains
voisins
25
26. Arthur CHARPENTIER - Analyse des donn´ees
De l’importance du choix de la distance, dans R2
Distance de Camberra, d(a, b) = ((a1 − b1)p
+ (a2 − b2)p
)
1
p
.
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Canberra
q
q
1 −− 0
1 ++ 0
++
1 −− 0
1 ++ 0
== 1
1
1
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Canberra
q
q
plus proches
voisinsq
q
plus lointains
voisins
26
27. Arthur CHARPENTIER - Analyse des donn´ees
De l’importance du choix de la distance, dans R2
Distance de Minkowski, d’ordre p, d(a, b) = ((a1 − b1)p
+ (a2 − b2)p
)
1
p
.
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Minkowski, d'ordre 3
q
q
((13
++ 13
))
1
3 == 2
1
3
1
1
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Minkowski, d'ordre 3
q
q
plus proches
voisins
q
q
plus lointains
voisins
27
28. Arthur CHARPENTIER - Analyse des donn´ees
De l’importance du choix de la distance, dans R2
Distance de Minkowski, d’ordre p, d(a, b) = ((a1 − b1)p
+ (a2 − b2)p
)
1
p
.
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Minkowski, d'ordre 1/2
q
q
((1
1
2 ++ 1
1
2))2
== 4
1
1
q
q
q
q
q
q
q
−2 −1 0 1 2
−2−1012
Distance de Minkowski, d'ordre 1/2
q
q
plus proches
voisins
q
q
plus lointains
voisins
28
29. Arthur CHARPENTIER - Analyse des donn´ees
Distance entre points, distance entre groupes
Strat´egie barycentrique, d(A, B) est la distance entre les barycentre des deux
groupes. On peut aussi pond´erer la distance par les effectifs,
d(A, B) =
ωAωB
ωA + ωB
d(xA, xB),
on parle alors de distance de Ward.
29
31. Arthur CHARPENTIER - Analyse des donn´ees
Distance entre points, distance entre groupes
La distance entre deux groupes A et B est le maximum des distances entre un
´el´ement de A et un ´el´ement de B,
d(A, B) = max
i∈A,j∈B
{δ(i, j)},
on parle alors de complete linkage.
31
33. Arthur CHARPENTIER - Analyse des donn´ees
Distance entre points, distance entre groupes
La distance entre deux groupes A et B est le minimum des distances entre un
´el´ement de A et un ´el´ement de B,
d(A, B) = min
i∈A,j∈B
{δ(i, j)},
on parle alors de single linkage.
33
35. Arthur CHARPENTIER - Analyse des donn´ees
La distance entre deux groupes A et B est la moyenne des distances entre un
´el´ement de A et un ´el´ement de B,
d(A, B) = i ∈ A, j ∈ Bωi,j{δ(i, j)},
on parle alors de group average linkage.
35
36. Arthur CHARPENTIER - Analyse des donn´ees
Visualisation graphique
Le dendrogramme est un arbre binaire pr´esentant les agr´egrations successives,
jusqu’`a r´eunion en une classe unique. La hauteur d’une branche est
proportionnelle `a la distance entre les objects regroup´es. Pour la distance de
Ward, la distance est simplement la perte de variance inter-classes.
36
38. Arthur CHARPENTIER - Analyse des donn´ees
Arbre de classification
Deux familles de classification (ou segmentation) entre variables qualitatives
existent
• les m´ethodes hi´erarchiques ou agglom´eratives
• les m´ethodes convergentes
La m´ethodologie de la classification ascendante hi´erarchique est simple
1. on commence par un r´epartition en n classes, la plus fine qui soit, puis on
aggr`ege it´erativement : `a chaque ´etape, les objets les plus ressemblants (au
vue de la mesure de dssimilarit´e) sont rassembl´ees, jusqu`a obtenir une unique
classe. On parle parfois d’algorithme de Lance & Williams,
2. on coupe dans l’arbre de classification (on parle aussi parfois de
dendrogramme.
Malheureusement, le crit`ere d’aggr´gation peut beaucoup influencer la
classification. Et il n’existe pas de m´ethode permettant de connaˆıtre la meilleur
m´ethode d’agr´egation. Parmi les m´ethodes de liaisons les plus classiques,
rappelons
38
39. Arthur CHARPENTIER - Analyse des donn´ees
• la liaison simple : pour chaque couple de groupes, on calcule la distance entre
les individus les plus proches, et on fusionne alors les groupes les plus proches.
Cette m´ethode cr´ee souvent des gros groupes h´et´erog`enes,
• la liaison compl`ete : pour chaque couple de groupes, on calcule la distance
entre les individus les plus ´eloign´es,
• la liaison moyenne : pour chaque couple de groupes, on calcule la distance
moyenne entre les individus,
• la liaison centr´ee : pour chaque couple de groupes, on calcule la distance entre
les moyenne des groupes,
• la liaison de Ward : on clacule la variance de chaque groupe, puis celle de
chaque groupe si on les fusionnait. On fusionne les groupes pour lesquels la
distance entre la variance du couple et la somme des variance est la plus petite.
Par exemple, sur la base des athl`etes du Decathlon, en utilisant 5 distances, et 4
crit`eres de regroupes, on obtient les classes suivantes
39
47. Arthur CHARPENTIER - Analyse des donn´ees
M´ethodes de partitionnement
Parmi les m´ethodes de partitionnement, on retiendra la m´ethode dite des
k-means, des centres mobiles ou encore des nu´ees dynamiques.
1. on choisit (au hasard, ´eventuellement) k individus de r´ef´erence, appel´es
noyaux,
2. on rattache tous individus au noyau dont ils sont les plus proches,
3. on calcule les centres des classes (barycentres), qui deviendront les nouveaux
noyaux,
4. on rep`ete jusqu’`a convergence (qui arrive souvent assez vite)
47
59. Arthur CHARPENTIER - Analyse des donn´ees
La classification avec R
R propose un grand nombre d’outils et m´ethodes pour partitionner, en
particulier clara, qui marche tr`es bien sur les tr`es grosses bases de donn´ees, daisy
pour construire des matrices de dissimilarit´e (pour des variables qualitatives ou
quantitatives), dist pour construire des matrices de dissimilarit´e (pour des
variables quantitatives seulement).
59
60. Arthur CHARPENTIER - Analyse des donn´ees
Travaux dirig´es
Le TD portera sur la base de donn´ees departement.xls (dont une codification est
donn´e dans le fichier code-departement.xls) t´el´echargeables sur ma page internet.
60