Qu’est-ce que le clustering et comment le mettre en oeuvre ?

0

Le clustering est une approche destinée à regrouper un ensemble de données en sous-ensembles plus ou moins homogènes, par degré de similarité. Deux grandes familles de clustering existent : le clustering hiérarchique (permettant d’obtenir des clusters éventuellement imbriqués les uns dans les autres) et le clustering non-hiérarchique, aussi appelé partitionnement de données.

Les applications du clustering sont nombreuses. L’une d’entre elles est l’identification de segments parmi les clients d’une entreprise. Cet objectif peut notamment être atteint par les algorithmes basés sur un apprentissage non supervisé. De ce fait, les segments détectés ne sont pas automatiquement rattachés à un nom de classe précis, mais peuvent, suite à une analyse, permettre de voir se distinguer des patterns et cohortes. L’identification de ces segments permet de mener auprès de ces différents segments de clients une action marketing ciblée, plus efficace qu’une action non ciblée.

La librairie C++ FAISS, proposée par Facebook, est dédiée au clustering et à l’analyse de similarités. Mais Scikit-Learn propose également pas moins de 10 méthodes de clustering. La plus répandue étant sans conteste la méthode des K moyens (K-means). Attention, cette méthode nécessite de connaître à l’avance le nombre de clusters à créer, contrairement à la méthode de clustering par propagation d’affinité par exemple.

Choisir une méthode de clustering (source : scikit-learn)

Nom de la méthode Paramètres Scalabilité Cas d’usage Geométrie (métrique utilisée)
K Moyens Nombre de clusters Très grand nombre d’échantillons, nombre de clusters moyen. Usage général, clusters de taille similaire, géométrie plate, inductive. Distance entre les points
Propagation d’affinité facteur d’amortissement, nombre d’exemples utilisés Méthode complexe ne supportant pas un grand nombre d’échantillons. Nombreux clusters, taille des clusters asymétrique, géométrie non plate, inductive. Graphe des plus proches voisins
 Mean-Shift bande passante Non scalable sur le plan du nombre d’échantillons Nombreux clusters, taille des clusters inégale, géométrie non plate, inductive. Distance entre les points
Clustering spectral nombre de clusters Nombre d’échantillons moyen, faible nombre de clusters Quelques clusters de taille similaire, géométrie non plate, transductive Graphe des plus proches voisins
Clustering hiérarchique de Ward nombre de clusters ou seuil de distance Grand nombre d’échantillons et de clusters Nombreux clusters avec d’éventuelles contraintes de connectivité, transductive Distance entre les points
Clustering agglomérant nombre de clusters ou seuil de distance, type de relation, distance Grand nombre d’échantillons et de clusters Nombreux clusters avec d’éventuelles contraintes de connectivité, distance non euclidienne, transductive Toute distance par paire
DBSCAN taille du voisinage Très grand nombre d’échantillons, nombre de clusters moyen géométrie non plate, taille de clusters inégale, transductive Distance entre les points les plus proches
OPTICS adhésion minimale au cluster Très grand nombre d’échantillons, grand nombre de clusters géométrice non  plate, taille de clusters inégale, densité de clusters variable, transductive Distance entre les points
Mélanges gaussiens nombreux Non scalable Géométrie plate, bon pour l’estimation de densité, inductive Distance de Mahalanobis
BIRCH facteur de branchement, seuil, cluster global facultatif. Fortement scalable Grand nombre d’échantillons, suppression des aberrations, réduction de données, inductive Distance euclidienne entre les points