PDF file

publicité
Tight Clustering: A Resampling-Based
Approach for Identifying Stable and Tight
Patterns in Data - G. C. Tseng
Etude d’article
Emmanuel Attia
MVA 2007
1
Introduction
La classification des données des puces à ADN consiste à trouver des aggrégats
de n points -correspondants à chaque gènes- dans un espace à d dimensions correpondants aux patients. Etant donné qu’on ne connait pas a priori la forme
de ces aggrégats, on se dirige plutôt vers des méthodes de classification nonsupervisée comme la méthode des K-means. De plus on ne sait pas forcément
à l’avance combien d’aggrégats il y aura (d’où l’inopérabilité des K-means dans
ce cas là). Enfin les méthodes classiques ne permettent pas d’éliminer les points
qui n’appartiennent à aucune catégorie; elles ont tendance à les attribuer à tord
à des aggrégats et donc à augmenter la distortion.
L’article étudié propose une méthode pour classifier les données en aggrégats resserés (les TightClusters), tout en ignorant les points dispersés et sans
connaître forcément le nombre exact de ces aggrégats. Pour ce faire, il consiste
à rechercher les aggregats les plus resserés, à les mettre de côté et à continuer
sur les données restantes.
2
Algorithme K-means
Comme nous l’avons dit précédemment, l’article cherche à trouver un algorithme dans l’esprit du K-means mais le but est d’en détourner l’utilisation.
Le problème majeur de cette méthode est qu’il permet de trouver un minimum
local de la fonction de distortion, et que ce minimum dépend très fortement
de l’initialisation. Il convient donc d’étudier quelle est la meilleure façon de
l’initialiser pour trouver au moins un aggrégats sans en y associer de points
éparses. Les auteurs présentent donc des comparatifs de plusieurs méthodes
d’initialisation, dont principalement par Hierarical clustering avec liaisons simples (Single-linkage, pour être associé à un aggrégat il faut avoir au moins un
éléments commum) et liaisons complètes (Complete-linkage, pour être associé à
un aggrégat il faut avoir tous les éléments en commums) testés sur des données
générés (des distributions gaussiennes plus des points éparses aléatoires). Ce
type d’initialisation marche bien lorsque les aggrégats sont bien séparés, mais
1
Emmanuel Attia
Master MVA - Traitement de l'Information en Biotechnologie
2007
ne donne pas des résultats très concluants avec des points éparses en plus des aggrégats. Pour surmonter cette difficulté, s’ils recherchent à classifier k aggrégats,
ils coupent l’arbre hierarchique pour avoir p × k aggrégats (p ∈ {1, 3, 6}), puis
ils gardent les k les plus peuplés et effectuent le K-means dessus. La méthode
fonctionne le mieux en prenant p = 3.
3
Algorithme A
En seconde partie, les auteurs présent cet algorithme, qui sachant k permet de
trouver des aggrégats stables. Pour cela, on applique le K-means sur B souséchantillons des données à étudier (par exemple 70%). Ensuite, on applique la
classification aux données et pour chaque sous-échantillons on établit des matrices de co-appartenance. La moyenne de ces matrices donne une estimation
de la probabilité de deux candidats d’appartenir au même aggrégats. A partir
de cette matrice, dont on seuille les valeurs à une valeur proche de 1, on obtient
des candidats d’aggregats resserés, les TightClusters, soit par recherche de composante connexe (analogique au Single-linkage), soit par recherche des cliques
maximales (analogique au Complete-linkage).
Le sous-échantillonage permet de vérifier que les aggregats formés ne contiennent pas de points éparpillés.
4
Recherche des TightClusters
On applique sur les données l’algorithme avec des valeurs successives de k partant de k0 . On compare les q meilleurs clusters de deux k successifs et si on
trouve deux clusters de la série k et k + 1 donc la similarités est proche de 1
alors on identifie un TightClusters et on recommence sur les données restantes,
en diminuant k0 de 1. On s’arrête lorsque k0 atteind une valeur seuil -par
exemple 5- ou bien lorsqu’on obtient le nombre de clusters désirés.
Comme la philosophie de la méthode est de sélectionner les aggrégats au
fur et à mesure, il est logique qu’on cherche à faire un algorithme dépendant le
moins possible du paramètre k, d’où la recherche de stabilité sur au moins deux
k successifs.
5
Implémentation
Nous avons codé une implémentation complète en C++ (basée sur le K-means,
comme dans l’article). Seulement, les auteurs n’indiquent pas de méthode
calcul pour le passage de la matrice de coappartenance aux candidats. Nous
avons tenté d’implémenter les deux méthodes, mais la lenteur de la recherche
des cliques la rend inexploitable. Peut-être qu’une méthode génétique ou plus
avancée qu’un simple Backtracking récursif l’aurait rendu plus rapide.
Autant le fait d’incrémenter k semble fondamental pour avoir un critère de
stabilité des aggrégats, autant le fait de décrémenter k0 n’est pas forcément
justifié. On a donc rajouté dans notre implémentation un paramètre nk qui
désigne le nombre de fois qu’on peut repartir de k0 avant de le décrémenter.
Ainsi le nombre d’aggrégats à trouver n’est plus forcément relié aux valeurs
initiales et finales de k0 .
2
Emmanuel Attia
Master MVA - Traitement de l'Information en Biotechnologie
2007
6
Analyse sur un cas synthétique
Nous avons synthétisé un mélange de 4 distributions uniformes de 30 points et
de largeur 1 en dimension 2 auxquels on a rajouté des points éparses sur tous
le domaines, puis analysé la façon dont les TightClusters sont déterminés. On
a pris B = 70%, 10 sous-échantillons, α = 0.1, β = 0.9, nk = 10, k0 minimum
de 3.
On remarque sur la figure 1 que les aggrégats synthétiques sont très rapidements séparés entre plusieurs TightClusters. Car dès que k croît, sont considérés
comme des aggrégats stable, ceux qui sont très resserrés par rapport aux reste,
et comme on recherche à ce moment un certain nombre d’aggrégats, ils sont
forcément petits.
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
0
−1
−1
0
1
2
3
4
5
6
7
7
7
6
6
5
5
4
4
3
3
2
2
1
1
0
−1
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
−1
7
Figure 1: Classifications de la distribution synthétique en partant de k0 = 3
(en haut à gauche), k0 = 6 (en haut à droite), k0 = 10 (en bas à gauche) et
k0 = 20 (en bas à droite). Les points non classifiés à la fin de l’algorithme sont
barrés et la ligne de point en bas de chaque image, indique dans quel ordre la
classification s’est faite.
Si on relache α (voir figure 2), qui joue sur le resserement des aggrégats, si
des points sont très proches les uns des autres, au sein d’un aggrégats, ils sont
considérés comme un TightClusters à part entière. On remarque d’ailleurs que
les valeurs de α peuvent être assez élevées sans que trop de points éparses soient
pris par erreurs dans les aggrégats.
Cet algorithme permet donc de détecter des aggrégats resserrés relativements
les uns par rapport aux autre. C’est principalement dû au fait que la méthode
est basée sur un algorithme de classification non-supervisée. Si on voulait séparer correctement ces aggrégats, il faudrait passer à une méthode supervisée
en imposant une loi de probabilité (par exemple un mélange de gaussienne), non
pas pour faire coller les points à une distribution bien particulière (on choisirait plutôt une loi passe-partout, comme la loi normale), mais pour imposer des
3
Emmanuel Attia
Master MVA - Traitement de l'Information en Biotechnologie
2007
7
7
7
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
0
0
0
−1
−1
−1
0
1
2
3
4
5
6
7
1
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Figure 2: Classifications de la distribution synthétique en partant de k0 = 3
pour α = 0.1 (à gauche), α = 0.3 (au centre) et α = 0.5 (à droite).
relations d’échelles entre les aggrégats.
7
Analyse sur des données microarray
Nous avons appliqués l’algorithme de TightClustering au seul jeu de données qui
nous était disponible, le jeu de test de la boîte à outils de bioinformatique de
MATLAB (467 gènes, 7 patients). Nous avons utilisés les mêmes paramètres que
précedemment, avec comme seul changement un k0 fixé à 5, (et donc nk = ∞).
On a bien les premiers aggrégats resserés trouvés pour k > 30, ce qui montre
bien l’indépendance de l’algorithme par rapport aux fourchettes de k0 choisis.
Par contre, nous avons fait varier les valeurs de α, afin d’observer des sélections
d’aggrégats de différentes échelles de sensibilité.
Figure 3: Classification des données pour α = 0.1 (à gauche), α = 0.3 (au
centre), α = 0.5 (à droite). Sont représentés en couple les données ordonnées
de microarray (rouge-vert) et leurs attributions de TightClusters respectifs (en
couleurs multiples).
4
Emmanuel Attia
Master MVA - Traitement de l'Information en Biotechnologie
2007
Téléchargement