Post on 22-Jan-2023
09/11/2010
1
IFT 501Recherche d'informationet forage de données
Chaptitre 8 : Classification automatique concepts de base et algorithmes
André Mayers Automne 2009
1
L’ALGORITHME DESK-MOYENNES ET SES VARIANTES
Section 8.2 (page 496)
2
Algorithme de segmentation : concepts de base
But d’un algorithme de segmentation : Construire une partition d’une base de données de n objets en K segments. ◦ Étant donné K, trouver une partition de K segments qui optimise une
fonction objective (un critère d’évaluation de la segmentation). Pour trouver l’optimum global, il n’y a pas de méthode générale efficace
il faut souvent examiner toutes les partitions possibles
k-moyennes et k-médoïde sont des méthodes permettant de trouver des optimums locaux.
k-moyennes ◦ MacQueen 1967
◦ Chaque segment est représenté par son centre.
k-medoïdes or PAM (Partition around medoids) ◦ Kaufman & Rousseeuw, 1987
◦ Chaque segment est représenté par un objet du segment.
3
Trace d’exécution de k-moyennes
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 100
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
K=2
choisir deux objetscomme centres
affecter tous les objets au centre le plus proche
mettre à jour les centresdes segments
mettre à jour les centresdes segments
réaffecterréaffecter
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
4
09/11/2010
2
L’algorithme des K-moyennes
Sélectionner K points pour être les centroïdes initiaux◦ Peut-être fait aléatoirement ou en partitonnnant la base de données en
K partitions dont on choisit le centroïde
Tant que les centroïdes changent d’une itération à l’autre◦ Former les K segments en affectant chacun des points au centroïde le
plus proche◦ Recalculer le centroïdes de chaque segment
Caractéristiques◦ L’idée de base de l’algorithme est très simple◦ Segmentation par partitionnement◦ Les segments sont définis par leurs prototypes◦ Le nombre de segments doit être spécifié◦ Il faut choisir une fonction distance une définition de centroïde
5
Commentaires généraux sur l’algorithme
Les centroïdes initiaux peuvent varier d’un essai à l’autre◦ Les segments produits peuvent différer d’un essai à l’autre
Le centroïde est typiquement le centre des points
La proximité est typiquement mesurée par la distance euclidienne, la similarité du cosinus, …
L’algorithme converge en général pour les mesures typiques de similarité
Souvent l’algorithme converge en quelques itérations◦ la condition d’arrêt peut être “seul l’appartenance d’un petit nombre de
points est modifié d’une itération à l’autre”
Complexité est O( n * K * I * d )◦ n = # de points, K = # de segments,
I = # d’itérations, d = # d’attributs
6
2 partitions différentes produites par 2 exécutions de l’algorithme
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Partitionnement non- optimal
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Partitionnement optimal
Les données
7
Description des symboles
x : Un objet Ci : le iième segment
ci : Le centroïde du segment Ci. c : Le centroïde de l’ensemble des données.
mi : # d’objets dans le ième segment. m : # d’objets dans la base de données K : # segments
Remarque : le centroïde n’est pas nécessairement celui de la physique, i.e. la moyenne
8
09/11/2010
3
La définition de la fonction objective et du centroïde La fonction objective d’un algorithme de forage de donnée est une
fonction que l’on cherche à maximiser ou minimiser afin de se rapprocher du résultat voulu.
Les algorithmes sont conçus pour itérer tant que l’évaluation de la fonction objective n’a pas atteint un seuil déterminé.
Pour l’algorithme K-moyennes, cette évaluation est cachée sous l’étape « Tant que les centroïdes changent d’une itération à l’autre »◦ Si les centroïdes changent, c’est que toutes les données n’avaient pas
été associées au centroïde le plus proche et que les centroïdes idéaux selon cet algorithme n’avaient pas été trouvés.
Un centroïde idéal celui qui minimise sa distance aux points qui lui sont associés◦ La notion de distance peut varier avec la nature du problème
9
Les mesures de distances1
1
1
2
1
1
1
2
[1... ]
( | | )
( | | ) , k-moyennes
Ma
Minko
nhattan | |
sup_ d
wsk
istance = | |,
( ) ( )
i , c-moyennes floues
, fuzzy ART
max
,
nr r
k kk
n
k kk
n
k kk
k k
T
k n
dist p q
dist euclidienne p q
dist p q
p q
dist Mahalanobis p q p q
Ellipsoidal ART1
Pearson correlation = , beaucoup utilisé en génétique2
...
pqr
10
Fonction objective et centroïde pour un espace euclidien La distance utilisée est la distance euclidienne La fonction objective à minimiser est SSE [Sum of Squared Error]
◦ le qui minimise le SSE est la moyenne des x
◦ SSE décroit avec l’accroissement du nombre de segments (K) et la compacité des segments
◦ L’algorithme s’arrête sur un minimum local de SSE qui est fonction du choix des centroïdes initiaux
11
1
i
ix Ci
c xm
2
1( , )
i
K
ii x C
SSE dist c x
Fonction objective et centroïde pour des données documentaires La mesure de distance suggérée est souvent la similarité du cosinus◦ des documents sur un même sujet mais de taille différente doivent être
similaires
Nous cherchons à maximiser la cohésion des documents d’un même segment
La fonction objective à maximiser est
◦ le ci qui minimise la CohésionTotale est comme pour les espaceseuclidiens la moyenne des x
◦ CohésionTotale croit avec le # segments (K) et la qualité des segments
◦ L’algorithme s’arrête sur un maximum local de la CohésionTotale. Ce maximum est fonction du choix des centroïdes initiaux
( ) ( , )i
i ix C
cohésion C cosine c x
1
( )K
ii
CohésionTotale cohésion C
12
09/11/2010
4
L’impact du choix des centroïdes inititiaux
S’il y a autant de centroïdes qu’il y a de vrais segments et qu’ils se trouvent chacun dans un segment alors l’algorithme converge vers les vrais segments◦ Mais on ne connait pas au départ où se trouvent les segments et on
ignore parfois le nombre de segments.
Les prochaines diapositives illustrent ce qui se passe lorsque les centroïdes ne se trouvent pas dans les segments
13
L’impact du choix des centroïdes inititiaux
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 6
14
L’impact du choix des centroïdes intitiaux
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 6
15
L’impact du choix des centroïdes intitiaux
16
Centres des segments choisis initialement
09/11/2010
5
L’impact du choix des centroïdes intitiaux
17
L’impact du choix des centroïdes intitiaux
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
18
Comment est-on arrivé à un tel résultat ? (prochaine diapositive)
L’impact du choix des centroïdes intitiaux
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 1
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 3
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 4
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
0
0.5
1
1.5
2
2.5
3
x
y
Iteration 5
La capture de deux segments par un centroïde est possible si les deux segments sont plus proches entre eux que entre chacun de ceux-ci et les autres segments. Il s’agit qu’il n’y aie qu’un seul centroïde proche de ces 2 segments.
19
L’impact du choix des centroïdes intitiaux
Chaque paire de segments rapprochés ont deux centroïdes20
09/11/2010
6
L’impact du choix des centroïdes intitiaux
Les paires de segments rapprochés n’ont pas deux centroïdes21
La sélection des centroïdes initiaux
La probabilité d’avoir un seul centroïde dans chaque segment (K est le nombre de segments réels) diminue rapidement avec la valeur de K. ◦ si les K segments sont de même dimensions n alors
◦ Par exemple, si K = 10, alors p = 10!/1010 = 0.00036
◦ Les centroïdes initiaux ne se déplacent pas nécessairement dans chaquesegment Voir les diapositives précédentes
# de façons de choisir un centro ide pour chaque segm ent # de façons de choisir K centro ides
! !( )
K
K K
p
K n KK n K
22
Solution au problème des centroïdes initiaux
Multiples exécutions◦ Les probabilités ne sont pas de notre côté
À partir d’un échantillon, déterminer les centroïdes initiaux par uneméthode de segmentation hiérarchique
Choisir un premier centroïde aléatoirement ou comme étant le centre des données et ensuite choisir sucessivement k-1 centroïdes comme étant les points les plus éloignés des centroïdes déjà choisis.
Traiter le problème une fois la segmentation terminée voir diapositive un peu plus loin
Choisir une variante moins susceptible au problème du choix des centroïdes initiaux◦ Mise à jour incrémentale des centroïdes exemple : K-moyen par bisection
voir diapositives un peu plus loin
23
Que faire des segments vides
L’algorithme de base peut donner naissance à des segments vides Plusieurs stratégies pour choisir un autre centroïde◦ Choisir le point qui se trouve le plus loin de tous les autres centroïdes au minimum, on enlève le point qui contribue le plus à la valeur du SSE
◦ Choisir un point à l’intérieur du segment ayant le plus grand SSE Cela entraînera la division de ce segment en deux
◦ S’il y a plusieurs segments vides alors il faut réappliquer l’une des 2 statégies précédentes.
24
09/11/2010
7
Réduction du SSE lors du post-traitement Comme le SSE total est la somme des SSE des segments, les statégies
consistent à diminuer globalement le SSE des segments. Pour conserver K constant, les stratégies alternent entre deux phases :
1. division d’un segment ou introduction d’un nouveau centre2. fusion de deux segments ou dispersion d’un segment
division d’un segment ◦ Celui qui contribue le plus au SSE total ou celui dont l’écart type d’un de
ses attributs est le plus grand
introduction d’un nouveau centre◦ souvent le point le plus éloigné de tous les centres ou un point du segment
contribuant le plus au SSE total
fusion de deux segments◦ souvent les segments les plus rapprochés, ou les deux dont la fusion
accroît le moins le SSE total
dispersion d’un segment◦ il s’agit de réaffecter tous les point du segment contribuant le plus au SSE
total.
25
Mise à jour incrémentale des centroïdes
Dans l’algorithme k-moyennes de base, tous les centroïdes sont recalculés après que tous les points ont été affectés à des segments.
Une alternative est de recalculer les centroïdes après chaque affectation (approche incrémentale)
Les caractéristiques de la mise à jour incrémentale◦ Chaque affectation entraîne le calcul de 0 ou 2 centroïdes
◦ Possible de calculer l’affectation qui optimise une fonction objective arbitraire (différente de SSE total) ;
◦ Plus coûteux Comme la convergence est souvent rapide, le nombre de points réaffectés
baisse rapidement
◦ Introduit une dépendance sur l’ordre des points choisis
◦ N’introduit jamais de segments vides
26
Le prétraitement des données
La normalisation des données permet de rendre les segments indépendants des unités de mesure des attributs
L’élimination des données marginales permet d’obtenir des centresde segment plus significatifs et mènent à une réduction du SSE total.
27
Algorithme des k-moyennes par bisection1. ListeDesSegments [<tousLesPoints>] ◦ ; un seul segment contenant tous les points
2. Tant que ListeDesSegments ne contient pas K segments faire1. Choisir un segment de ListeDesSegments et le supprimer de la liste Plusieurs stratégies pour choisir le segment à diviser
le plus gros celui qui contribue le plus au SSE total une combinaison des deux stratégies précédentes
2. Appliquer n fois l’algorithme k-moyenne avec K=2 sur ce segment3. Ajouter la paire de segments qui minimise le SSE à ListeDesSegments
3. Appliquer K-moyenne en prenant comme point de départ ListeDesSegments◦ les centroïdes menant à un minimum local pour chaque paire ne sont
pas ceux qui menant à un minimum local pour les K segments
Si mémorise les bisections choisies de segments, on obtient une segmentation hiérarchique
28
09/11/2010
8
K-moyenne par bisection : figure 8.8
itération 2 : le segment de droiteitération 3 : le segment de gauche
29
Les limites de l’algorithme des k-moyennes
k-moyennes donne parfois une solution qui ne se rapproche pas des segments naturels si ceux-ci sont ◦ de différentes tailles
◦ de différentes densités
◦ n’ont pas une forme globulaire
k-moyenne peut donner de mauvais résultats s’il y a des données marginales
Le centre d’un segment peut ne pas ressembler à aucun point réel.
30
effets des données marginales
31
effets de segments ayant des densités différentes
la base de donnéesla segmentation avec
k-moyennes (K=3)
32
09/11/2010
9
effets des segments non convexes
la base de données
33
effets des segments non convexes …
la segmentation avec
k-moyennes (K=2)
34
effets des segments non convexes …
la base de donnéesla segmentation avec
k-moyennes (K=2)
35
Aller au-delà des limites de K-moyennes
La base de données Les segments produits par k moyenne
Il s’agit ici de choisir K > # segment réels pour obtenir des sous-segments des segments réels et ensuite de combiner ces sous-segments.
36
09/11/2010
10
Fuzzy C-Means (FCM), Dunn,1973
Une fonction d’appartenance détermine le degré d’appartenance de chaque point à chaque segment.
Souvent utilisé dans la reconnaissance des motifs ◦ (pattern recognition)
Utilise la fonction objective suivante
37
2
1 1
ième
ième
, 1 et où
m : coefficient de confusion (fuzziness) : degré d'appartenance du point i au segment k
: i point (vecteur de dimension d)
: centre du k segment (vect
N Km
m ik i ki k
ik
i
k
J u x c m
u
x
c
2
eur de dimension d)
. : la norme du vecteur
L’algorithme Fuzzy C-Means (FCM)
( )
1
1
( )ij 2
1
1
( ) ( 1)
0 : r=0
1: Initialiser U= , c'est la matrice U
2: Calculer le centre des segments ,
3: r=r+114: Calculer U , u =
5: Si alors reto
rij
nmik i
ik n
mik
i
r
mKi j
k i k
r r
u
u xc
u
x cx c
U U
( )urner et
sinon retourner à l'étape 2
rkU c
38
L’algorithme Fuzzy C-Means (FCM)
11 1
1
11 1
1
La matrice U pour l'algorithme k-moyennes
sur chaque ligne, il y a que un seul 1
les autres valeurs sont des 0
La matrice U pour l'algorithme c-moyennes
m
n nm
m
n nm
u u
u u
u u
u u
1
0 1
1
ij
m
ijj
i j a
i a
39
L’algorithme Fuzzy C-Means (FCM)
40
09/11/2010
11
K-médoïdesPAM (Partitioning Around Medoids) PAM (Kaufman and Rousseeuw, 1987), mis en oeuvre en S+ Utilise les objets de la base de données pour représenter les
segments
41
Algorithme de PAM (Partitioning Around Medoids)
42
1. Choisir K médoïdes arbitrairement parmi les objets
2. Affecter chaque objet au médoïde le plus proche
3. Pour chaque paire (oh, ok) oùoh est un non-médoïdeok est un médoïdeTCkh le coût total de l’échange (swap oh ok)
si TCkh < 0, alors remplacer ok par oh
4. Répéter l’étape 2 et 3 tant qu’il y a des échanges
La prochaine diapositive explique comment calculerTCkh
TCkh : le coût total de l’échange de ok par oh
43
TCkh=iCikh
on considère l’échange de ok par oh où
ok est le médoïde actuel,
oh est choisi aléatoirement parmi les non-médoïdes
oi est un non-médoïde quelconque ≠ oh
onewmedi le médoïde le plus proche de oi après l’échange
ooldmedi le médoïde le plus proche de oi avant l’échange
Cikh = dist(oi, onewmedi) – dist(oi, ooldmedi)
Cikh : le coût de l’échange de ok par oh
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
i
kh
t
Cikh = 0
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
tk h
i
Cikh = d(i, h) - d(i, k)
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
h
k t
i
Cikh = d(i, t) - d(i, k)0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
t
kh i
Cikh = d(i, h) - d(i, t)
44
09/11/2010
12
Illustration de l’ algorithme PAM
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
Coût total = 20
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
K=2
Choisiraléatoirement k objets
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
Affecter chaqueobjet au médoïdele plus proche
Choisir aléatoirement Oramdomun objet ≠ médoïde
Calculer le coût total de l’échange
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
Coût total = 26
S’il y a améliorationéchanger le médoïde O avec Oramdom
Itérer, tantqu’il y a des modifications
0
1
2
3
4
5
6
7
8
9
10
0 1 2 3 4 5 6 7 8 9 10
45
Critique de l’algorithme PAM
L’algorithme PAM donne de bons résultats sur de petites bases de données mais sa complexité ne lui permet pas de traiter de grandes bases de données
46
CLARA (Clustering Large Applications)
CLARA (Kaufmann and Rousseeuw in 1990)◦ mis en oeuvre en S+
schéma de l’algorithme ◦ applique PAM à plusieurs échantillons de la base de données
◦ retourne les médoïdes de la partition ayant la meilleure fonction objective
s’applique à de grandes bases de données son efficacité dépend de la taille des échantillons si les médoïdes proviennent d’un échantillon biaisé alors ils ne sont
pas similaires à ceux que l’on aurait trouvés avec toute la base de données
47
CLARANS (A Clustering Algorithm based on Randomized Search) CLARANS (Ng and Han, 1994)◦ “Randomized” CLARA
CLARANS crée des échantillons de voisins dynamiquement
Le processus de segmentation peut être présenter comme une fouille dans un graphe où chaque noeud est une solution potentielle ◦ une solution = un ensemble de k médoïdes
Si un optimum local est trouvé, CLARANS est réinitialisé avec un noeud choisi aléatoirement et continue sa fouille pour trouver un nouvel optimum local
Il est plus efficace et évolutif (scalable) que PAM et CLARA Focusing techniques and spatial access structures may further
improve its performance (Ester et al.’95)
48