SI - Uqtr

publicité
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 sousensembles distincts
 L’aggrégation (clustering) consiste à regrouper des
observations de telle façon que les observations
sont semblables dans chaque groupe (agrégats)
Introduction
 Le
but des techniques d’aggrégation est de créer un
ensemble d’aggrégats (cluster) regroupant des observations de mêmes caractéristiques
 Ces techniques cherchent alors à regrouper les observations 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 rattaché 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 ellemê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
1
DUPGMA(Ci , C j ) 
ni n j
 d ( a , b)
aCi ,bC j
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

d
D   ( xij   j ) 2
j 1
1 m
 j   xij
m i 1
Aggrégation hiérarchique (Méthode de
Ward)

L’erreur quadratique pour tout un aggrégat est
m
d
E   ( xij   j )  m
2
2
i 1 j 1
= (1,....,d)
2=(21, .....,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
z  ( z ,...., z )
k
k
1
k
d
x  ( x1 ,...., xd )
d e ( z , x) 
k
d
 (x  z
i 1
i
k 2
i
)
Algorithme de Forgy
 Calculer
les nouveaux centroïdes
1
z 
Nk
k
x
xS k
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 kmean 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 minimiser l’erreur quadratique en associant chaque observation 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 dissemblables
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’algorithme
Algorithme Isodata
Initialisation 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 Isodata
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
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
8
O
X
# dans
aggrégat 1
0
11
0
# dans
aggrégat 2
0
0
0
# dans
aggrégat 3
# dans
aggrégat 4
13
2
0
0
0
14
Algorithme Isodata (exemple)

Diagrammes de dispersion
Téléchargement