• Aucun résultat trouvé

Afin de montrer les capacités de notre algorithme sur une tâche de classification non supervisée, nous l’avons testé sur les jeux de données de la librairiescikit-learn [90]. Il

s’agit pour l’algorithme de détecter des formes cohérentes dans des nuages de 1500 points en 2D à partir de la matrice d’affinité du nuage. Afin de montrer la modulabilité de notre méthode, nous avons mis l’accent sur les différents types de formes à détecter : certains de ces nuages peuvent être séparés linéairement, d’autres non et l’un d’eux est fortement anisotrope. La matrice d’affinité [31] d’un ensemble de points {xi∈ Rp, i = 1...n} est la

matrice symétrique définie par

Ai,j =

(

exp(−kxi−xjk2

2σ2 ), pour i 6= j,

0, sinon. (2.14)

La précision de notre méthode va fortement dépendre du choix du paramètre Gaussien σ. Nous le fixons en suivant l’heuristique de [91] pour prendre en compte à la fois la densité et les dimensions du nuage.

Puisque la matrice d’affinité est à diagonale nulle, nous forçons la bi-irréductibilité en fixant les éléments diagonaux à 10−8, comme préconisé en Section 2.2.2. En guise de pré-traitement, nous supprimons les entrées dominantes de la matrice. C’est-à-dire que les entrées de l’équilibrage doublement stochastique supérieures à 0.55 seront considérées comme des blocs déjà définis dans l’étape de récupération des vecteurs dominants, présentée Section 2.4. En outre, le processus de fusion interdit de fusionner ces blocs avec d’autres blocs. Nous écartons ces éléments, car sinon, ils vont résulter en de tout petits blocs, qu’il va être difficile de détecter avec le filtre de Canny. Comme post-traitement, chacune de ces entrées est ensuite ajoutée à la classe la plus proche, c’est-à-dire celle contenant le point qui lui est le plus proche au sens de la distance Euclidienne.

Nous avons comparé notre méthode avec celles proposées dans la librairiescikit-learn. Les résultats pour cinq de ces méthodes sont fournies Figure 2.33. Les-dites méthodes sont :

— MiniBatch Kmeans : Le but de l’algorithme des K-moyennes, ou Kmeans, est de partitionner un ensemble de données en un nombre de classes passé en paramètre, en minimisant itérativement la distance entre chaque point de l’ensemble des données et le centroïde de la classe à laquelle il appartient, c’est-à-dire la moyenne des éléments constituant la classe. Le MiniBatch Kmeans est une version de Kmeans dans laquelle chaque itération est effectuée sur un sous-ensemble de l’ensemble des données – cf [92].

— Spectral Clustering : Cet algorithme sélectionne les vecteurs propres dominants d’une matrice d’affinité Gaussienne, comme définie équation (2.14), afin de construire un espace de représentation spectrale des données qui soit faible dimension – égale au

Figure 2.33 : Comparaison d’algorithmes de partitionnement pour la détection de formes.

nombre de classes voulues. Dans cet espace, le partitionnement est ensuite effectué via Kmeans [31].

— Agglomerative Clustering : Il s’agit d’un algorithme de hiérarchisation ascendant : on part d’une configuration dans laquelle chaque point est une classe, puis on fusionne les classes afin d’atteindre un nombre de classes fixé au préalable. A chaque itération, les deux classes fusionnées sont celles dont la variance de la classe résultante est la plus faible – approche de Ward [93]. Une contrainte est ajoutée concernant le fait que deux classes ne peuvent être fusionnées que si elles sont adjacentes.

— DBSCAN (Density-based spatial clustering of applications with noise) : Cet algo- rithme, présenté dans [94], sépare l’espace en zones où il y a une forte densité de points, séparées par des zones de faible densité de points. Les points appartenant à une même zone de forte densité appartiennent à la même classe. La notion de densité forte ou faible est paramétré par un réel ε : une zone de faible densité est un volume de l’espace dans lequel la densité de points est inférieure à ε.

Table 2.3 : NMI des partitionnements Figure 2.33.

M.B. Spect. Agglo. DB Gauss. Our

Kmeans Clust. Clust. SCAN Mixt. method

2.9.e−4 1 0.993 1 1.3.e−6 1

0.39 1 1 1 0.401 1

0.813 0.915 0.898 0.664 0.942 0.902

0.608 0.942 0.534 0.955 1 0.996

1 1 1 1 1 1

ont été générées par un nombre fini – égal au nombre de classes recherchées – de lois Gaussiennes ayant des paramètres différents. Ces modèles trouvent une approximation des-dits paramètres. Une classe est alors l’ensemble des points ayant été générés par une même loi.

Chaque ligne correspond à un jeu de données spécifique, chaque colonne à une méthode précisée ci-dessus. Deux points d’une même couleur ont été assignés à la même classe. La colonne de droite montre les résultats de notre méthode, que nous avons arrêtée après l’analyse d’un unique vecteur propre. Etant donnés ces résultats, il est clair que ce vecteur fournit une information suffisante pour séparer grossièrement les nuages en classes cohérentes pour tous les jeux de données, quelles que soient leurs formes. Pour comparer formellement les partitionnements obtenus, nous avons calculé leur information mutuelle normalisée (NMI). Cette mesure, que nous avons définie Section 1.3, permet de mesurer l’écart entre deux partitionnements sans nécessiter qu’ils aient le même nombre de classes, en se basant sur leur matrice de confusion.

La NMI est donnée Table 2.3, en suivant le même ordre ligne/colonne que la Figure 2.33. On voit qu’excepté pour deux jeux de données – le quatrième, où un élément a été mal assigné pendant le post-traitement, et le troisième pour lequel la NMI est supérieure à 0.9 – notre méthode a toujours le meilleur score. Nous remarquons aussi qu’à part DBSCAN (4eme colonne), toutes ces méthodes nécessitent de connaître à l’avance le nombre de

classes.