Clustering

Le clustering

Comprendre le clustering et ses applications

Le clustering ou analyse de clusters est une méthode d'apprentissage non supervisé utilisée dans le Machine Learning et l'analyse de données, qui organise vos données afin que les points de données d'un même groupe (ou cluster) présentent une similarité plus importante entre eux qu’avec n’importe quel point de donnée des autres groupes. Le clustering aide à donner un sens à des jeux de données volumineux et complexes en mettant en évidence des motifs et des tendances ou en faisant des prédictions sur des données non labellisées.

Fonctionnement du clustering

Le clustering comprend plusieurs étapes clés, notamment la préparation des données, la définition d'une mesure de similarité, le choix de l'algorithme de clustering approprié, ainsi que l'évaluation et l'affinement des clusters.

Diagramme de workflow indiquant les étapes du clustering : préparation des données, définition d'une mesure de similarité, sélection de l'algorithme de clustering et évaluation des clusters.

Étapes clés du clustering.

Le clustering fonctionne en mesurant la similarité entre les points de données et en regroupant les points qui présentent une mesure de similarité plus élevée que ceux de tout autre cluster. Le concept de « similarité » varie selon le contexte et les données : c'est un aspect fondamental de l'apprentissage non supervisé. Diverses mesures de similarité peuvent être utilisées, notamment la distance euclidienne, probabiliste, la distance cosinus et la corrélation.

Résultat de clustering affiché en 2D, où les clusters sont représentés par différentes couleurs.

Diagramme de dispersion des données regroupées en trois clusters créés en utilisant la fonction spectralcluster. (Voir le code MATLAB.)

Types d'algorithmes de clustering

Les algorithmes de clustering se répartissent en deux grandes catégories :

  • Hard clustering : lorsque chaque point de données appartient à un seul cluster, comme dans le cas de la méthode répandue k-means
  • Soft clustering : lorsque chaque point de données peut appartenir à plusieurs clusters, comme dans les modèles de mélange gaussien
La méthode d'analyse de clusters <i>k</i>-means fait apparaître des clusters discrets de points de données, dont le centroïde est représenté par une étoile.

Clustering k-means, où les groupes sont représentés par leur centroïde, lequel correspond à la moyenne des différents éléments, et est illustré par une étoile.

Le modèle de mélange gaussien montre deux clusters de points de données avec des lignes semblables à des isobares, représentant les probabilités d'appartenance aux clusters.

Modèle de mélange gaussien, qui attribue des probabilités d'appartenance aux clusters, correspondant au niveau d'association avec les différents clusters.

Il existe plusieurs algorithmes de clustering, chacun faisant appel à une approche unique pour regrouper les données. Ces méthodes varient considérablement dans leur mécanique et leurs cas d'utilisation idéaux. Les types d'algorithmes de clustering les plus courants utilisés dans le Machine Learning sont les suivants :

  • Le clustering hiérarchique construit une hiérarchie de clusters à plusieurs niveaux en créant une arborescence de clusters.
  • Le clustering k-means partitionne les données en k clusters distincts en fonction de la distance au centroïde d'un cluster.
  • Le modèle de mélange gaussien forme des clusters comme un mélange de composantes à densité normale multivariée.
  • Le clustering spatial basé sur la densité (DBSCAN) regroupe les points proches les uns des autres dans des zones de forte densité, tout en continuant à suivre les valeurs aberrantes des régions de faible densité. Il est capable de gérer des formes non convexes arbitraires.
  • Les cartes auto-organisatrices utilisent des réseaux de neurones qui apprennent la topologie et la distribution des données.
  • Le clustering spectral transforme les données d'entrée en une représentation graphique où les clusters sont mieux séparés que dans l'espace de caractéristiques d'origine. Le nombre de clusters peut être estimé en étudiant les valeurs propres du graphe.
  • Des chaînes de Markov cachées peuvent être utilisées pour découvrir des motifs dans des séquences, par exemple des gènes et des protéines en bio-informatique.
  • Le clustering fuzzy c-means (FCM) regroupe les données en N clusters, chaque point de données du jeu de données étant caractérisé par un degré d'appartenance à chaque cluster.

Le clustering pour l'apprentissage non supervisé

L’apprentissage non supervisé est un type d'algorithme de Machine Learning utilisé pour déduire des informations à partir de données non labellisées sans intervention humaine. Le clustering est la méthode d'apprentissage non supervisé la plus courante. Il s'agit d'appliquer des algorithmes de clustering pour explorer les données et identifier des motifs ou des regroupements cachés dans les données sans aucune connaissance préalable des étiquettes de groupe. En utilisant ces groupes et motifs, le clustering permet d'extraire des informations utiles à partir de données non labellisées et de révéler les structures inhérentes à ces dernières.

La photo d'origine montre un chien brun clair sur un sol en carrelage noir et blanc. L'utilisation du clustering permet de séparer le chien du sol dans l'image traitée.

Utilisation du clustering pour la segmentation d'images permettant de distinguer le sol à motifs situé en arrière-plan.

Importance du clustering

Le clustering est un domaine important de l’intelligence artificielle. Il joue un rôle important dans divers domaines en offrant des informations précieuses sur les données et en mettant en évidence des motifs et des relations qui n'apparaissent pas forcément de manière évidente. Dans le cas des données non labellisées, où les relations inhérentes entre les points de données sont cachées mais requises pour révéler des informations utiles, le clustering aide à mettre en évidence ces relations et à organiser les données non labellisées en groupes significatifs.

En regroupant des éléments similaires, le clustering réduit la complexité des données afin que vous puissiez vous concentrer sur le comportement des groupes plutôt que de vous laisser submerger par des points de données individuels. Ainsi, le clustering peut être utilisé pour l'analyse exploratoire des données et l'apprentissage semi-supervisé. Dans ce dernier cas, le clustering est utilisé comme étape de prétraitement avant l’apprentissage supervisé pour réduire la quantité de données à traiter par un modèle de Machine Learning et améliorer la précision de la modélisation prédictive.

Le clustering est également fréquemment utilisé dans des applications telles que la détection d'anomalies, la segmentation d'images et la reconnaissance de formes. Plus précisément, le clustering peut être appliqué dans les cas suivants pour identifier des motifs et des séquences :

  • Les clusters peuvent représenter les données au lieu du signal brut dans les méthodes de compression de données.
  • Les clusters indiquent des régions d'images et des nuages de points LiDAR dans les algorithmes de segmentation.
  • Le clustering peut aider à identifier les valeurs aberrantes ou les anomalies dans un jeu de données.
  • En imagerie médicale, des algorithmes de clustering peuvent être utilisés pour subdiviser les images en régions d'intérêt, par exemple pour différencier les tissus sains et les tumeurs ou pour segmenter le cerveau en substance blanche, substance grise et liquide cérébrospinal.
  • Le clustering est utilisé dans les systèmes d'information géographique (SIG) pour analyser l'imagerie satellite ou les photographies aériennes afin d'identifier l'étalement urbain ou les modes d'utilisation des terres, ou pour surveiller les changements dans les zones urbaines au fil du temps.
  • Le clustering génétique et l'analyse de séquences sont utilisés en bio-informatique.
Image originale d'un tissu en nuances de violet, coloré à l'hématoxyline et à l'éosine, et image traitée du tissu segmenté en trois classes.

À gauche : image originale d'un tissu coloré à l'hématoxyline et à l'éosine. À droite : MATLAB a affecté trois clusters à l'image, fournissant ainsi une segmentation du tissu en trois classes.

Le clustering avec MATLAB

En utilisant MATLAB® avec Statistics and Machine Learning Toolbox™, vous pouvez identifier des tendances et des caractéristiques en appliquant les méthodes de clustering de votre choix et en divisant vos données en groupes ou clusters. Avec Image Processing Toolbox™, vous pouvez effectuer du clustering d'images.

Préparation des données

Pour obtenir des résultats de clustering précis et efficaces, il est essentiel de prétraiter les données et de gérer les valeurs manquantes et les valeurs aberrantes. Vous pouvez nettoyer et prétraiter vos données de façon programmatique en utilisant des fonctions prédéfinies ou de manière interactive avec l'application Data Cleaner.

Algorithmes de clustering

MATLAB supporte tous les algorithmes de clustering courants, que vous pouvez appliquer avec des fonctions prédéfinies, telles que la fonction kmeans. Vous pouvez utiliser la tâche Cluster Data dans le Live Editor pour effectuer de manière interactive le clustering k-means et le clustering hiérarchique. Grâce à cette tâche, vous pouvez générer automatiquement du code MATLAB pour votre live script.

Vous pouvez également effectuer le clustering par plus proches voisins dans Simulink en utilisant le bloc KNN Search. Le bloc accepte un point de requête et renvoie les k  points plus proches voisins dans les données d'observation en utilisant un objet de recherche du plus proche voisin.

Un tracé 2D indiquant les mesures de longueur et de largeur de pétale des trois espèces d'iris, et un tracé montrant les trois clusters résultants en utilisant le clustering par modèle de mélange gaussien.

À gauche : diagramme de dispersion MATLAB des mesures des pétales de plusieurs spécimens de trois espèces d'iris. À droite : les mesures des pétales ont été segmentées en trois clusters en utilisant la technique de clustering par modèle de mélange gaussien (GMM). (Voir l'exemple Statistics and Machine Learning Toolbox.)

Visualiser et évaluer les résultats du clustering

Lorsque les données ne contiennent pas de divisions naturelles qui indiquent le nombre approprié de clusters, vous pouvez utiliser différents critères d'évaluation, tels que l'écart ou la silhouette, pour déterminer si les données s’adaptent à un nombre particulier de clusters. Vous pouvez également visualiser les clusters pour inspecter les résultats du clustering. Vous pouvez par exemple utiliser un dendrogramme pour visualiser le clustering.

Tous les points dans les deux clusters ont des valeurs de silhouette élevées (0,8 ou plus), indiquant que les clusters sont bien séparés.

Tracé MATLAB créé avec la fonction silhouette montrant que les données sont divisées en deux clusters de taille égale. (Voir le code MATLAB.)

Le clustering pour les images

Vous pouvez effectuer une segmentation d'images (avec la fonction imsegkmeans) et une segmentation de volume (avec la fonction imsegkmeans3) sur des images en effectuant un clustering des régions de pixels en fonction de leurs similarités en termes de couleur ou de forme. Vous pouvez créer une image segmentée labellisée en utilisant un algorithme de clustering spécifique. Par exemple, en imagerie médicale, vous pouvez détecter et labelliser des pixels dans une image ou des voxels d'un volume 3D qui représentent une tumeur dans le cerveau ou dans d'autres organes d'un patient. En exploitant les outils MATLAB, vous pouvez traiter et analyser des images pour un large éventail d'applications, du diagnostic des maladies à la classification de l'utilisation des terres.

Quatre images en noir et blanc : l'image test, l'image segmentée, la détection de tumeurs et l'image labellisée.

Détection de tumeurs cérébrales à partir d'une image IRM avec le clustering fuzzy c-means dans MATLAB. (Voir l'exemple Fuzzy Logic Toolbox.)