Voici un résumé de plusieurs algorithmes de clustering qui peuvent aider à répondre à la question.
"quelle technique de regroupement dois-je utiliser?"
Il n'y a pas d'algorithme de classification objectivement "correct" Ref
Les algorithmes de clustering peuvent être classés en fonction de leur "modèle de cluster". Un algorithme conçu pour un type de modèle particulier échouera généralement sur un type de modèle différent. Par exemple, k-means ne peut pas trouver de groupes non convexes, il ne peut trouver que des groupes de forme circulaire.
Par conséquent, la compréhension de ces "modèles de grappes" devient la clé pour comprendre comment choisir parmi les divers algorithmes / méthodes de classification. Les modèles de cluster typiques incluent:
[1] Modèles de connectivité: construit des modèles basés sur la connectivité à distance. Par exemple, clustering hiérarchique. Utilisé lorsque nous avons besoin d'un partitionnement différent basé sur la hauteur de coupe de l'arbre. Fonction R: hclust dans le package de statistiques.
[2] Modèles centroïdes: construit des modèles en représentant chaque cluster par un seul vecteur moyen. Utilisé lorsque nous avons besoin d'un partitionnement net (par opposition à la mise en cluster floue décrite plus tard). Fonction R: kmeans dans les statistiques.
[3] Modèles de distribution: construit des modèles basés sur des distributions statistiques telles que les distributions normales multivariées utilisées par l'algorithme d'optimisation des attentes. Utilisé lorsque les formes de grappe peuvent être arbitraires contrairement à k-means qui suppose des grappes circulaires. Fonction R: emcluster dans le package emcluster.
[4] Modèles de densité: construit des modèles basés sur des grappes en tant que régions denses connectées dans l'espace de données. Par exemple, DBSCAN et OPTICS. Utilisé lorsque les formes de cluster peuvent être arbitraires, contrairement à k-means qui suppose des clusters circulaires. R function dbscan dans le package dbscan.
[5] Modèles de sous-espace: construit des modèles basés à la fois sur les membres du cluster et sur les attributs pertinents. Par exemple, biclustering (également appelé co-clustering ou clustering à deux modes). Utilisé lorsqu'un regroupement simultané de lignes et de colonnes est nécessaire. Fonction biclust dans un emballage biclust.
[6] Modèles de groupe: crée des modèles basés sur les informations de regroupement. Par exemple, filtrage collaboratif (algorithme de recommandation). Fonction R Recommender dans le package recommenderlab.
[7] Modèles basés sur des graphes: construit des modèles basés sur des cliques. Les algorithmes de détection de structure de communauté tentent de trouver des sous-graphes denses dans des graphes dirigés ou non dirigés. Par exemple, R fonction cluster_walktrap dans le package igraph.
[8] Carte de fonctions auto-organisée de Kohonen: construit des modèles basés sur un réseau de neurones. R fonction som dans le package kohonen.
[9] Clustering spectral: construit des modèles basés sur une structure de cluster non convexe ou lorsqu'une mesure du centre ne constitue pas une description appropriée du cluster complet. Fonction R spécc dans le package kernlab.
[10] Regroupement de sous-espaces: pour les données de grande dimension, les fonctions de distance pourraient être problématiques. Les modèles de cluster incluent les attributs pertinents pour le cluster. Par exemple, la fonction hddc dans le package R HDclassif.
[11] Regroupement de séquences: regrouper des séquences liées. Package rBlast.
[12] Propagation par affinité: construit des modèles basés sur le message passant entre des points de données. Avant d'exécuter l'algorithme, il n'est pas nécessaire de déterminer le nombre de clusters. C'est mieux pour certaines tâches de vision par ordinateur et de biologie informatique, par exemple le regroupement d'images de visages humains et l'identification de transcriptions réglementées, que k-means, Ref Rpackage APCluster.
[13] Regroupement de flux: construit des modèles basés sur des données arrivant en continu telles que des enregistrements téléphoniques, des transactions financières, etc. Par exemple, le package R BIRCH [ https://cran.r-project.org/src/contrib/Archive/birch/].
[14] Regroupement de documents (ou regroupement de textes): construit des modèles basés sur la SVD. Il a utilisé dans l'extraction de sujet. Par exemple, Carrot [ http://search.carrot2.org] est un moteur de regroupement de résultats de recherche open source pouvant regrouper des documents en catégories thématiques.
[15] Modèle de classe latente: il relie un ensemble de variables multivariées observées à un ensemble de variables latentes. La LCA peut être utilisée dans le filtrage collaboratif. La fonction R recommandée dans le paquet recommenderlab dispose d'une fonctionnalité de filtrage collaboratif.
[16] Biclustering: utilisé pour regrouper simultanément des lignes et des colonnes de données bimodales. Par exemple, R fonctionne biclust dans le paquet biclust.
[17] Clustering léger (clustering flou): chaque objet appartient à chaque cluster à un certain degré. Par exemple, R Fclust fonctionne dans le package fclust.