Classification

Mastère ESD - Introduction au Machine Learning

FX Jollois

Que veut-on faire ?

Exemple : données faithful

Objectif sur l’exemple

Problème et histoire

Notions

Partition

Nécessité de définir des critères de bonne classification et d’avoir des algorithmes performants, et optimisant la recherche d’une partition

Hiérachie

Exemple simple

Considérons \(X=\{a,b,c,d,e\}\).

Inertie intraclasse et interclasse

Illustration de l’inertie

Illustration – \(I\)

Illustration – \(W\)

Illustration – \(B\)

Objectif

Avec comme seul critère l’inertie :

Qualité d’une partition

Critères

\(R^2\)

\(PseudoF\)

Iris

Classification hiérarchique

Distance entre parties

Recherche de d’une classification hiérarchique = recherche d’une ultramétrique.

Connaissant une métrique sur \(X\), en déduire une ultramétrique aussi proche que possible de la métrique de départ

Classification Ascendante Hiérachique (CAH)

Algorithme

  1. Chaque élément dans sa propre classe
  2. Calculer les distances entre chaque élément
  3. Regrouper les deux éléments les plus proches, et recalculer les distances entre cette nouvelle classe et les autres
  4. Recommencer l’étape précédente jusqu’à n’avoir plus qu’une seule classe avec tous les éléments

Problème

Distance entre deux classes : critères d’agrégation

Distance entre deux classes : critères d’agrégation

Exemple simple

Les données

La matrice de distance initiale

1 2 3 4 5
1 0
2 25 0
3 5 20 0
4 17 8 12 0
5 6 31 11 23 0

L’arbre obtenu (lien complet)

L’ultramétrique obtenu

1 2 3 4 5
1 0
2 31 0
3 5 31 0
4 31 8 31 0
5 11 31 11 31 0

Iris

Classification directe

\(k\)-means

Algorithme

  1. Choisir \(k\) individus différents, considérés comme les centres initiaux des classes
  2. Une autre possibilité est d’assigner aléatoirement chaque individu à une des \(k\) classes, et de calculer les centres de ces classes
  3. Assigner chaque objet à la classe la plus proche
  4. Calculer les nouveaux centres des classes
  5. Répéter les étapes 2 et 3 jusqu’à la convergence du critère

A définir :

\(k\)-means

Distance

On utilise généralement la distance euclidienne entre l’individu \(i\) et la classe \(k\) : \[ d^2(x_i,g_k) = \sum_{j=1}^d (x_i^j - g_k^j)^2 \]

Critère

En se basant sur la distance euclidienne, on cherche à minimiser l’inertie intra-classe : \[ W = \sum_{k=1}^K \sum_{i \in z_k} d^2 (x_i, g_k) = \sum_{k=1}^K \sum_{i \in z_k} \sum_{j=1}^d (x_i^j - g_k^j)^2 \]

Quelques points à noter

Initialisation

Comme nous pouvons l’imaginer, le résultat de cet algorithme dépend très fortement de l’initialisation. On a donc 2 points à noter :

Pour éviter ce problème, nous avons 2 possibilités :

\(k\)-means vs CAH

CAH \(k\)-means
Avantages Pas de nombre de classes à donner Complexité linéaire
Plusieurs découpages proposés Temps de calcul réduit
Méthode facile à comprendre et à mettre en œuvre
Inconvénients Complexité quadratique Nombre de classes à définir
Temps de calcul long
Pas de remise en cause d’un regroupement

Classification hybride

Pour combiner les avantages des 2 algorithmes (et finalement éviter les inconvénients des deux), on utilise la méthode de Wong, nommée classification hybride, présentée ci-dessous :

  1. Réduire les données, en appliquant \(k\)-means avec un nombre de classes important (entre 10 et 100 - avec une limite a \(n^{0.3}\))
    • On obtient ainsi des classes très compacts et homogènes, avec très peu de perte d’iformations
  2. Trouver un nombre de classes approprié avec une CAH (e, utilisant le critière de Ward) sur les centres des classes obtenues dans l’étape 1
  3. Regrouper les classes de \(k\)-means en se basant sur la méta-partition obtenue dans l’étape 2
  4. Optimiser la partition précédente avec \(k\)-means

Quelques alternatives

Il existe bien d’autres méthodes, donc les suivantes :

DBSCAN

DBSCAN : Density-based spatial clustering of applications with noise