reconnaissance de formes iar-6002. techniques daggrégation (clustering) u introduction u...
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