reconnaissance de formes iar-6002. techniques daggrégation (clustering) u introduction u...

Post on 04-Apr-2015

115 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

RECONNAISSANCE DE FORMES

IAR-6002

Techniques d’aggrégation (clustering)

Introduction Aggrégation hiérarchique

– Méthode UPGMA

– Méthode de Ward Algorithme de Forgy Algorithme k-means Algorithme Isodata

Introduction

Lorsque nous ne pouvons définir à priori le nombre de classes

Nous devons avant le design du classificateur, extraire un ensemble d’observations tirées d’une population quelconque pour ainsi déduire les sous-ensembles distincts

L’aggrégation (clustering) consiste à regrouper des observations de telle façon que les observations sont semblables dans chaque groupe (agrégats)

IntroductionIntroduction

Le but des techniques d’aggrégation est de créer un ensemble d’aggrégats (cluster) regroupant des obser-vations de mêmes caractéristiques

Ces techniques cherchent alors à regrouper les ob-servations semblables

Le regroupement d’observations est basée entre autre sur la notion de distance par rapport à des centroïdes (centre de masse de chaque classe)

Ces techniques sont non supervisées

Aggrégation hiérarchique

L’aggrégation hiérarchique consiste à regrouper des observations dans de gros regroupements contenant de plus petits groupements hiérarchiquement ratta-ché au groupement plus gros

Cette technique d’aggrégation peut être représenté par un arbre. Le plus petit regroupement se trouve au bas de l’arbre, chaque observation est en elle-même un aggrégat

Aggrégation hiérarchique

Si à un niveau L de l’arbre donné, un aggrégat contient un ensemble d’observations donné, cet ensemble se retrouveras dans les niveaux supérieurs de l’arbre

Ces techniques d’aggrégations sont soient agglomé-rante si l’arbre est construit du bas vers le haut et divisible si construit du haut vers le bas

Aggrégation hiérarchique (Techniques agglomérantes)

Algorithmes d’agglomération

1- Commencer avec n (observations) aggrégats

2- Répéter l’étape 3, n-1 fois (n: nombre d’aggrégats du niveau L courant)

3- Trouver la paire d’aggrégats la plus semblable Ci et Cj et regrouper Ci et Cj dans le même aggrégat. Si il y a égalité, regrouper la première paire trouvée

Aggrégation hiérarchique (Méthode UPGMA)

La technique de liaison-moyenne (UPGMA) est basée sur l’utilisation d’une distance entre deux aggrégats découlant de la distance moyenne entre un point dans un aggrégat et un point dans l’autre aggrégat. Si Ci est un aggrégat avec ni éléments et Cj un aggrégat avec nj éléments, la distance entre Ci et Cj est donnée par

ji CbCaji

jiUPGMA badnn

CCD,

),(1

),(

Aggrégation hiérarchique (Méthode UPGMA, Exemple)

Aggrégation hiérarchique (Méthode de Ward)

La méthode de Ward consiste à regrouper la paire d’aggrégats produisant la plus petite erreur quadratique de l’ensemble des aggrégats résultants

Si un aggrégat contient m observations x1, x2, ...., xm ou xi est le vecteur de caractéristiques (xi1,...,xid), l’erreur quadratique de l’observation xi (distance Euclidienne par rapport à la moyenne) est

m

iijj

d

jjij

xm

xD

1

1

2

1

)(

Aggrégation hiérarchique (Méthode de Ward)

L’erreur quadratique pour tout un aggrégat est

m

i

d

jjij mxE

1

2

1

2)(

= (1,....,d)2=(2

1, .....,2d)

Centroïdes

Aggrégation hiérarchique (Méthode de Ward, Exemple)

Algorithme de Forgy

Cet algorithme d’aggrégation prend en entrée:– Les observations

– Le nombre de classes k

– Les valeurs initiales des k centroïdes Les valeurs initiales des centroïdes peuvent être

choisies de façon aléatoire mais la connaissance à priori de la structure des classes peut guider leur choix

Algorithme de Forgy Initialisation des centroïdes avec les valeurs initiales

FIN = FAUX

TANT QUE NON FIN FAIRE

POUR chaque observation FAIRE

Trouver le centroïde le plus proche

Placer l’observation dans l’aggrégat le plus proche

FIN POUR

SI aucun changement d’aggégat FAIRE

FIN = VRAI

SINON

Calculer les nouveaux centroïdes

FIN SI

FIN TANT QUE

Algorithme de Forgy

Trouver le centroïde le plus proche

d

i

kii

ke

d

kd

kk

zxxzd

xxx

zzz

1

2

1

1

)(),(

),....,(

),....,(

Algorithme de Forgy

Calculer les nouveaux centroïdes

kSxk

k xN

z1

Algorithme de Forgy

L’algorithme de Forgy converge très lentement puisque le critère de stabilité des aggrégats est très contraignant

Plus le nombre d’observations est grand plus le temps de convergence est grand

Certaine versions de cet algorithme permettent de restreindre le nombre d’itérations

Algorithme k-means

L’algorithme k-means est semblable à l’algorithme de Forgy

Cependant, le critère d’arrêt de l’algorihme k-mean est basé sur la stabilité des moyennes

Son taux de convergence est plus rapide

Algorithme k-means Initialisation des centroïdes avec les valeurs initiales

FIN = FAUX

TANT QUE NON FIN FAIRE

POUR chaque observation FAIRE

Trouver le centroïde le plus proche

Placer l’observation dans l’aggrégat le plus proche

FIN POUR

SI aucun changement des valeurs des centroïdes FAIRE

FIN = VRAI

SINON

Calculer les nouveaux centroïdes

FIN SI

FIN TANT QUE

Algorithme k-means (illustration de la convergence)

Algorithme k-means (illustration de la convergence)

Algorithme Isodata Comme les 2 autres algorithmes, Isodata permet de mini-

miser l’erreur quadratique en associant chaque observa-tion au centroïde le plus proche

Isodata permet de traiter un nombre d’aggrégats variables pouvant aller au delà du nombre introduit par l’usager

Isodata élimine les aggrégats avec trop peu d’éléments Isodata peut regrouper des aggrégats si le nombre d’aggré-

gats est trop grand ou certains aggrégats sont trop proches Un aggrégat peut être divisé si le nombre d’aggrégats est

trop petit ou si l’aggrégat contient des éléments dissem-blables

Algorithme Isodata Paramètres d’entrées

– Nombre d’aggrégats

– Nombre minimum d’éléments par aggrégat

– Distance minimale entre chaque aggrégat

– Paramètre de contrôle des subdivisions d’aggrégat

– Nombre d’itérations dans la première phase de l’algorithme

– Nombre maximum de regroupements par itération

– Nombre d’itérations maximun dans le corps de l’algorith-me

Algorithme IsodataInitialisation des centroïdes

finISO = FAUX

nbiterISO = 0

TANT QUE NON finISO ET nbiterISO < iter_body FAIRE

finF = FAUX

nbiterF = 0

TANT QUE NON finF ET nbiterF < iter_start FAIRE

POUR chaque observation FAIRE

Trouver le plus proche aggrégat

Insérer l’observation dans l’aggrégat le plus proche

FIN POUR

Calculer les nouveaux centroïdes

SI aucune observation change d’aggrégat ALORS

finF = VRAI

FINSI

nbiterF = nbiterF + 1

FIN TANT QUE

Algorithme IsodataÉliminer les aggrégats avec pas assez d’éléments et aussi les éléments eux-mêmes

SI nb aggrégat >= 2 * no_cluster OU nbiterISO est paire ALORS

nbmerge = 0

TANT QUE nbmerge < max_merge FAIRE

SI la distance entre 2 centroïdes < min_dist ALORS /* AGGRÉGATION */

Regrouper ces 2 aggrégats

Mise à jour des centroïdes

FIN SI

nbmerge = nbmerge + 1

FIN TANT QUE

SINON SI nb aggrégat <= no_cluster/2 OU nbiterISO est impaire ALORS

SI un aggrégat existe avec xa > split_size * x ALORS /* SUBDIVISION */

Calculer la moyenne de x de l’aggrégat

Subdiviser l’aggrégat en 2 par rapport à la moyenne de x

Calculer les 2 centroïdes

Algorithme IsodataSINON SI nb aggrégat <= no_cluster/2 OU nbiterISO est impaire ALORS

SI un aggrégat existe avec xa > split_size * x ALORS /* SUBDIVISION */

Calculer la moyenne de x de l’aggrégat

Subdiviser l’aggrégat en 2 par rapport à la moyenne de x

Calculer les 2 centroïdes

SI distance entre les 2 centroïdes >= 1.1 * min_dist ALORS

Remplacer l’aggrégat par 2 aggrégats

SINON

Garder l’aggrégat inchangé

FIN SI

FIN SI

SINON

SI aucun changement d’aggrégat dans la dernière itération globale ALORS

finISO = VRAI

FIN SI

nbiterISO = nbiterISO + 1

FIN SI

FIN TANT QUE

Algorithme Isodata (exemple) Image digitalisée d’un X avec comme vecteur de caracté-

ristiques (4, 10, 10, 4, 10, 9, 11, 9)

Algorithme Isodata (exemple) L’algorithme Isodata est appliqué à 45 images (15 par

lettres) avec comme paramètres:

no_clusters = 4

min_elements = 8

min_dist = 2.5

split_size = 0.5

iter_start = 5

max_merge = 1

iter_body = 3

Algorithme Isodata (exemple) A la fin, l’algorithme Isodata donne comme résultat de

classification

Classe # dans

aggrégat 1# dans aggrégat 2

# dans aggrégat 3

# dans aggrégat 4

8OX

0110

000

1320

0014

Algorithme Isodata (exemple) Diagrammes de dispersion

top related