8 2 L2019algorithme des K-moyennes

12
09/11/2010 1 IFT 501 Recherche d'information et forage de données Chaptitre 8 : Classification automatique concepts de base et algorithmes André Mayers Automne 2009 1 L’ALGORITHME DES K-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 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 0 1 2 3 4 5 6 7 8 9 10 K=2 choisir deux objets comme centres affecter tous les objets au centre le plus proche mettre à jour les centres des segments mettre à jour les centres des segments réaffecter réaffecter 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 4

Transcript of 8 2 L2019algorithme des K-moyennes

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