dm chap02 Clustering

publicité
2
Techniques de
Classification
Sommaire
• Introduction
• Classification hiérarchique
• Méthodes de partitionnement
▫ K-Moyenne
▫ FCM
• Classification par densité
▫ DBSCAN
• Discussion
Lotfi Ben Romdhane, Ph.D.
DSI / ESST / US/ Tn
3
Introduction (1)
• Plusieurs noms: clustering, classification,
classement, ...
• Un ensemble de méthodes permettant de créer
des groupes à partir d’un ensemble de données
tels que:
▫ les données qui appartiennent au même groupe
sont similaires
▫ les données appartenant à des groupes différents
sont dissimilaires
4
Introduction (2)
• Plusieurs applications en
pratique
• Les données de puces ADN
▫ les gènes qui sont similaires
admettent dans l’organisme
des fonctions identiques
• Compression des données
▫ Les données qui se trouvent
dans un groupe sont
similaires et peuvent être
remplacée par une seule
valeur
5
Introduction (3)
6
Introduction (4)
• Segmentation des Images:
diviser une image en un ensemble
de régions homogènes
Hiérarchiques
▫ Compression des images pour la
transmission: représenter
chaque région par un seul point
(pixel)
▫ Reconnaissance des formes:
appariement d’une forme (par
exemple le visage d’une
personne) avec les régions de
l’image (ensembles des visages
dans l’image)
Bottom-Up
Top-Down
Partitionnement
Méthodes de
classification
K-Means
FCM
Basées sur la
densité
DBSCAN
7
Formulation du problème (1)
• On considère D = {X1, X2, …, Xn} un ensemble
de n points (données)
• Xi = {xi,1, xi,2, …, xi,l} une donnée vecteur de
dimension l, c'est-à-dire possédant l attributs
participant à sa définition
• Soit dist une mesure de distance
8
Formulation du problème (2)
• La classification consiste à trouver un ensemble
de groupes {C1,C2, …, Cc }; dits aussi clusters;
tel que la distance entre des données du même
groupe est plus petite que la distance entre deux
données appartenant à deux groupes différents
dist (xi , x j ) < dist ( xi , xk ); ∀xi , x j , xk ∈ D /
{x , x }∈ C
i
j
m
∧ xk ∉ C m
9
Formulation du problème (3)
Formulation du problème (4)
• Une distance défini sur un ensemble E est une
application : d : E×E→ℜ+ possédant les
propriétés suivantes
▫ Symétrie
∀x, y ∈ E; d ( x, y ) = d ( y, x)
▫ Séparabilité
∀x, y ∈ E; d ( x, y ) = 0 ⇔ x = y
10
• Distance Euclidienne
dist ( X i , X j ) =
∑ (x
l
k =1
− x j ,k )
2
i ,k
• Distance de Manhattan
l
dist ( X i , X j ) = ∑ xi ,k − x j ,k
▫ Inégalité triangulaire
k =1
∀x, y, z ∈ E ; d ( x, z ) ≤ d ( x, y ) + d ( y, z )
11
12
Formulation du problème (5)
• Distance Edit
▫ nombre d’opérations élémentaires (insertions,
suppression, …) pour changer un objet (chaîne de
caractères, graphe) vers un autre
• Distance de Jaccard (pour les ensembles)
dist ( A, B) 2 =
A∪ B − A∩ B
A∪ B
Classification
hiérarchique
13
Notions de base (1)
Notions de base (2)
• La classification hiérarchique permet de
produire une hiérarchie de groupes
• La coupure du dendrogramme à un niveau
particulier génère un partitionnement différent
▫ chaque niveau de la hiérarchie représente un
partitionnement différent
▫ peut-être modélisé à l’aide d’un arbre hiérarchique
appelé dendrogramme
0.2
0.15
0.2
0.1
0.15
0.05
0.1
0
5
6
4
3
14
4
2
5
2
1
3
1
3
2
5
4
6
0.05
1
Partitionnement = { {x1, x3} ; {x2, x5} ; {x4} ; {x6} }
0
1
3
2
5
4
6
15
Notions de base (3)
• Le dendrogramme peut-être généré selon deux
approches différentes
• approche ascendante (bottom-up)
▫ dite aussi agglomérative
▫ partir d’un partitionnement dans lequel chaque
donnée forme un groupe à part
▫ à chaque étape (niveau du dendrogramme),
fusionner les deux groupes les plus proches
▫ s’arrêter lorsqu’on obtient un seul groupe
16
Notions de base (4)
• approche descendante (top-down)
▫ dite aussi divisive
▫ partir avec un seul groupe contenant toutes les
données
▫ à chaque étape, diviser le groupe le plus mauvais
▫ s’arrêter lorsqu’on obtient chaque donnée est dans
un groupe à part
18
17
Distance (1)
Distance (2)
▫ complete-linkage : MAX
• Une question qui se pose : comment mesurer la
distance entre les groupes ?
▫ single-linkage : MIN
dist(g1,g2) = points
les plus éloignés
dist(g1,g2) = points
les plus proches
19
Distance (3)
20
Distance (4)
▫ average-linkage : MOYENNE
▫ centroid-linkage : centre des classes
dist(g1,g2) =
moyenne des
distances
définir le centroide de chaque groupe (moyenne des
données qu’elle contient)
prendre la distance entre les centroides
21
Méthodes ascendantes (1)
• Le calcul des distances entre les
groupes est un point central qui
permet de distinguer la majorité
des algorithmes existants
22
Méthodes ascendantes (2)
Algorithme de base
• UPGMA : utilise la moyenne (average-linkage)
DEBUT
• dist(A,B),C = (distAC + distBC) / 2 = 4
• dist(A,B),D = (distAD + distBD) / 2 = 6
• dist(A,B),E = (distAE + distBE) / 2 = 6
• dist(A,B),F = (distAF + distBF) / 2 = 8
▫ mettre chaque donnée dans un
▫ UPGMA (Unweighted Pair
Group Method with Arithmetic
Mean )
▫ CHAMELEON
▫ ROCK (RObust Clustering
using linKs)
▫ CURE (Clustering Using
REpresentatives)
groupe à part
▫ Répéter
2
A
B
1. fusionner les deux groupes
A,B
les plus proches
C
2. mettre à jour la matrice des
distances entre les groupes
▫ Jusqu’à (la formation d’un
seul groupe)
FIN.
C
D
B
C
D
E
F
A
2
4
6
6
8
étape 1
4
6
E
6
6
4
F
8
8
8
8
D
E
étape 2
23
4
étape 3
étape 4
C
4
6
8
D,E
6
8
D,E
AB,C
D,E 6
F
8
C
A
B
6
D
E
C
A
B
8
étape 5
6
ABCDE
F 8
F
D
4
4
E
24
Méthodes ascendantes (4)
Méthodes ascendantes (3)
A,B
C
D,E
F
4
6 6
6 6 4
8 8 8 8
E
4
D 6
B C D E
2
C
A
B
26
25
Méthodes descendantes (1)
Méthodes descendantes (2)
Algorithme de base
• Il y a plusieurs méthodes de
DEBUT
classification qui diffèrent par le
▫ mettre toutes les données dans un
seul groupe
choix du groupe à diviser
▫ Répéter
• DAA : Deterministic
1.
Annealing Algorithms
diviser en deux le groupe le plus
mauvais
pour cela on peut utiliser un
• SPC : Super-Paramagnetic
autre algorithme tel que K-
Clustering
moyenne
• SOTA : Self-Organizing Tree
2. mettre à jour la matrice des
étape 1
étape 2
étape 3
distances entre les groupes
Algorithm
▫ Jusqu’à (chaque donnée est dans
• DIANA : Divisive ANAlysis
un groupe à part)
FIN.
28
27
Méthodes descendantes (3)
• On a besoin d’un critère pour choisir le groupe à diviser
▫ le plus large : admettant les points les plus éloignés (plus
distants)
▫ le plus dense : contenant le maximum de points
• Pour diviser un groupe en deux, il y a un grand nombre
de possibilités à tester :
(2
n −1
)
−1
• On doit utiliser une heuristique pour réduire le nombre
de possibilités
Méthodes descendantes (4)
• DIANA (DIvisive ANAlysis)
▫ on divise le groupe admettant le plus grand rayon
▫ Méthode de division d’un groupe G
1. trouver P0, le point admettant la plus grande
dissimilarité moyenne (distance) avec le reste des
points du groupe G
2. P0 va initier la formation d’un nouveau groupe
Gnew = {P0 }
3. Pour chaque point i ∉ Gnew calculer
Di = d (i, j ) / j ∉ Gnew − d (i, j ) / j ∈ Gnew
30
29
Méthodes descendantes (5)
Méthodes descendantes (6)
4. Trouver un point h / Dh =max {Di } ET Dh >0
• Considérons un ensemble de villes italiennes et
la matrice des distances entre elles
Le point h est plus proche du nouveau groupe Gnew
que du reste des points de G
BA FI
MI
0
662
BA
662
0
FI
877
295
MI
255
468
VO
412
268
RM
996
400
TO
Moyenne 533,6 348,8
Gnew ← Gnew ∪ { h }; G ← G \ { h }
5. Répéter les étapes 3) et 4) jusqu’à ce que tous les
points i de G admettent un Di < 0
on vient de terminer la division du groupe initial G
VO
RM
TO
877
295
0
754
564
138
255
468
754
0
219
869
412
268
564
219
0
669
996
400
138
869
669
0
438
427,5
355,3
512
Gnew = {BA}
en deux groupes
32
31
Méthodes descendantes (7)
D(Gnew)
D(G\Gnew)
Di
FI
MI
662
877
357,75 437,75
-304,25 -439,25
FI
Gnew
G\Gnew
Di
565
321
-244
FI
Gnew
G\Gnew
Di
466
347,5
-118,5
VO
255
577,5
322,5
MI
815,5
332,3
-483,16
MI
731,66
216,5
-515,16
RM
412
430
18
RM
315,5
500,3
184,83
TO
844,66
269
-575,66
• Rayon(G1 )= distance( FI; TO)= 400
• Rayon(G2) = distance(BA,RM) = 412
TO
996
519
-477
TO
932,5
402,3
-530,16
Gnew = {BA; VO}
Analyse de complexité
• La matrice des distances occupe un espace de
O(N2)
Gnew = {BA; VO; RM}
Tous les Di sont négatifs : arrêt de la
division et on obtient les deux groupes
• G1 = { FI; MI; TO }
• G2= { BA; VO; RM }
Prendre G2 et le diviser
selon le même principe ...
• La complexité temporelle est de O(N3)
▫ on a besoin de mettre à jour une matrice de O(N2)
pendant N itérations
▫ pour certains algorithmes, la complexité
temporelle peut-être de O(N2 log(N) )
33
34
Concepts de base (1)
• Essayer de diviser directement l’ensemble des
données en des groupes homogènes
• K-Moyenne est le premier algorithme qui a été
proposé dans les méthodes par partitionnement
• Plusieurs autres algorithmes ont été dérivés
Méthodes par
Partitionnement
▫ FCM, PCM, P3M, ...
• Une difficulté intrinsèque: étant l’ensemble D,
quel est le nombre de groupes existants dans D?
36
35
Concepts de base (2)
Concepts de base (3)
• La plupart des approches supposent un nombre
prédéfini de classes
▫ L’algorithme accepte comme paramètre le nombre
de groupes à générer
• On peut utiliser un critère qui permet d’estimer
le nombre optimal de groupe:
▫ entropie, gain informationnel, ...
▫ classer pour plusieurs valeurs du nombre de
classes et choisir le partitionnement optimal selon
le critère choisi
▫ très coûteuse sur le plan temps d’exécution
37
38
Algorithme (1)
•
Entrée : un nombre de classe (k) et un ensemble de données D
•
Sortie : un ensemble de groupe {g1, …, gk}
DEBUT
▫ choisir (aléatoirement) dans D un ensemble de k données
qui vont représenter les centres initiaux des groupes
Répéter
K-Moyenne
1.
Calculer la distance de chaque donnée dans D par rapport
aux k centres des groupes; et l’affecter au groupe le plus
proche
2. Recalculer les nouveaux centres de groupes (moyenne de
toutes les données du groupe)
Jusqu’à (conditions d’arrêt)
FIN.
39
40
Illustration (1)
Algorithme (2)
5
• Plusieurs critères d’arrêt sont utilisés en
pratique et modélisent le même concept: «
stabilité des classes »
▫ les centres de classes deviennent stables d’une
itération T à la suivante
4
k1
3
k2
2
k
∑ m (T + 1) − m (T )
j =1
j
1
j
k
<ε
k3
0
▫ le contenu des classes devient stable
0
1
2
3
4
5
42
41
Illustration (2)
Illustration (3)
5
5
4
4
k1
k1
3
3
k2
2
2
k3
1
k2
1
k3
0
0
0
1
2
3
4
5
0
1
2
3
4
5
44
43
Illustration (4)
Illustration (5)
5
5
4
4
k1
3
3
2
2
k1
k3
k2
k2
1
k3
1
0
0
0
1
2
3
4
5
0
1
2
3
4
5
45
Discussion (1)
46
Discussion (2)
• L’algorithme K-moyenne est simple et efficace
pour classer de grands volumes de données
• Une difficulté avec les données non-numériques:
comment calculer la moyenne pour générer les
centres de classes ?
▫ Il a une complexité temporelle de O(nkt)
n : le nombre de données, k: nombre de classe, t:
nombre de cycles d’exécution
généralement: k <<n, t << n
▫ chaînes de caractères, données ensemblistes, ...
• Une possibilité serait de choisir une donnée
parmi ceux dans un groupe comme étant son
centre
• Il est très sensible au bruit
▫ un bruit est un signal qui vient de s’ajouter aux
données d’origine
▫ tous les points (données et bruit) participent
également à la formation des classes
▫ choisir la donnée la plus proche du reste !
▫ ainsi, on évite de calculer la moyenne
47
48
Concepts de base (1)
• L’un des algorithmes les plus utilisés
Fuzzy C-Means (FCM)
▫ Il a été proposé par J. C. Bezdek (1981): "Pattern
Recognition with Fuzzy Objective Function
Algorithms", Plenum Press, New York
• L’idée de base consistait à redéfinir la notion
d’appartenance d’une donnée à un groupe
▫ K-moyenne : une donnée appartient ou non (0/1)
à un groupe
▫ FCM : une donnée appartient à une classe avec un
certain degré !
49
Concepts de base (2)
• Ainsi, une donnée appartient, en
même temps, à tous les groupes
mais avec des degrés différents
• uk,j∈ [0,1] est le degré
d’appartenance de la donnée dj
dans le groupe Gk
• U = [uk,j] est la matrice des
degrés d’appartenance
• V = [v1, v2, …, vc] est l’ensemble
des centres de classes
50
Concepts de base (3)
groupe 2
groupe 1
• On définit une fonction objective à minimiser
J m (U , V ) = ∑ ∑ (u k , j ) dist (d j , υ k )
c
n
m
2
k =1 j =1
groupe 3
sujet aux contraintes suivantes :
d
c
∑u
k =1
▫ dits aussi vecteurs prototypes
k, j
= 1; ∀d j ∈ D
• m > 1 est un paramètre appelé fuzzificateur
51
Concepts de base (4)
Algorithme (1)
• En utilisant la méthode du gradient pour
minimiser la fonction objective J, on obtient:
 ∂J

 ∂u
 k, j
52

=0


 ∂J

 ∂vk

 = 0

• entrée: un nombre de classes c; et un ensemble de données D
• sortie : une matrice de partitionnement U, et un ensemble de
centre de classe V
DEBUT
▫ initialiser (aléatoirement) la matrice U
Répéter
∑ (u )
n
u
−1
k, j
 dist (d j , v k )2 
=∑
2 
(
)
dist
d
,
v
l =1 

j
l

c
1
m −1
vk =
m
k, j
j =1
×dj
∑ (u )
n
j =1
m
k, j
1. calculer les centres de classes V
2. mettre à jour la matrice d’appartenance U
Jusqu’à (∆U < ε)
FIN.
53
Algorithme (2)
54
Algorithme (3)
▫ entropie du partitionnement (ep)
• On s’arrête lorsque les changements dans les
degrés d’appartenance deviennent négligeables :
∆ U = U (T + 1) − U (T ) < ε
ep = −
• Comme tout méthode de partitionnements, le
nombre de groupes doit être spécifié
• On utilise généralement deux critères pour
approximer le nombre de réel de groupes
0,41
ep
0,39
0,35
G1
G2
G3
20
0,33
15
A3
0,31
10
0,29
5
0,27
0
30
( )
1
uk2, j
∑∑
n j =1 k =1
25
20
30
0,25
25
15
2
3
4
5
2
10
15
10
5
5
0
0
A1
55
56
Concepts de base (1)
Méthodes basées sur
la densité
#groupes
6
20
A
cp =
c
]
0,37
▫ coefficient de partitionnement (cp)
n
[
1 n c
∑∑ uk , j log(uk , j )
n j =1 k =1
• On modélise D comme étant un ensemble de
régions denses (les groupes) séparées par des
régions non-denses (les frontières entre les
groupes)
• Plusieurs algorithmes
▫
▫
▫
▫
DBSCAN: Ester, et al. (KDD’96)
OPTICS: Ankerst, et al (SIGMOD’99)
DENCLUE: Hinneburg & D. Keim (KDD’98)
CLIQUE: Agrawal, et al. (SIGMOD’98)
57
58
Concepts de base (3)
Concepts de base (2)
• Toutes ces méthodes possèdent deux paramètres
▫ ε : le rayon du voisinage
• Joignable Directement par
Densité (JDD)
• un point p est dit JDD à partir
d’un autre point q par rapport
à ε et Minpts ssi :
▫ MinPts: nombre minimal de voisins se trouvant à
un rayon ε
p
q
▫ p appartient au voisinage de q
à un rayon ε
• On définit l’ensemble des voisins d’un point P se
trouvant dans un rayon ε par
p ∈ N ε (q )
Nε (p) = {q ∈ D tel que dist(p, q) <= ε }
•MinPts = 5
•ε = 1 cm
▫ q est un point dense
• où dist( ) est une fonction de distance qui peut
dépendre de la nature des données à classer
N ε (q ) ≥ MinPts
59
Concepts de base (4)
60
Concepts de base (5)
• Joignable par Densité (JD)
• Connecté par densité (CD)
• un point p est dit JD à partir d’un
• un point p est dit CD à partir
point q par rapport à ε et Minpts
p
ssi il existe une suite de points
p1 = q, pn = p
2.
pi+1 est joignable directement
par densité à partir de pi
p
q
Minpts ssi il existe un point o
p1
(chaîne) p1, …, pn tels que:
1.
d’un point q par rapport à ε et
q
tels que p et q sont joignables
par densité à partir de o par
rapport à ε et Minpts .
o
61
Concepts de base (6)
62
Concepts de base (7)
• La densité d’un point est la taille de son
voisinage se trouvant à un rayon ε
• Un point est dit un point noyau (central) s’il a
une densité supérieure à MinPts
• Un point frontière est un point qui admet une
densité inférieur à MinPts, mais se trouve dans
le voisinage d’un point noyau
• Un point bruit est n’importe quel point qui
n’est ni point noyau, ni un point frontière
63
Algorithme DBSCAN (1)
• Density Based Spatial Clustering of
Applications with Noise
• entrée : un ensemble de données D
• sortie: ensemble des groupes dans D et
l’ensemble de points bruits
• Algorithme DBSCAN
64
Algorithme DBSCAN (2)
DEBUT
Pour chaque point non visité p faire
1. marquer p comme étant visité
2. N ← Nε (p)
3. Si (|N| < MinPts) alors marquer p comme étant un
point bruit
4. Sinon
C ← C + 1 {on commence la formation d’un nouveau
groupe}
b. ETENDRE_GROUPE (P, N, C, ε, MinPts)
a.
VAR
C : entier {nombre de groupe }
Fin Si
Fin Pour
FIN
65
Algorithme DBSCAN (3)
Algorithme ENTENDRE_GROUPE (P, N, C, ε, MinPts)
BEGIN
1. ajouter le point p au nouveau groupe Gc
2. Pour chaque point p‘ ∈ N faire
66
Algorithme DBSCAN (4)
Original data
sets
Si p' n’a pas été visité alors
▫ marquer p’ comme étant visité
▫ N’← Nε (p’)
▫ Si (|N’| ≥ MinPts) alors
N ← N ∪ N‘
Fin Si
Fin Si
Si (p’ n’appartient à aucun groupe) alors
Gc ← Gc ∪{p’}
Fin Si
Fin Pour
END
Clusters
discovered by
DBSCAN
Téléchargement
Random flashcards
Le lapin

5 Cartes Christine Tourangeau

découpe grammaticale

0 Cartes Beniani Ilyes

Anatomie membre inf

0 Cartes Axelle Bailleau

Fonction exponentielle.

3 Cartes axlb48

Créer des cartes mémoire