Méthodes de clustering qui ne nécessitent pas de pré-spécifier le nombre de clusters

17

Existe-t-il des méthodes de clustering "non paramétriques" pour lesquelles nous n'avons pas besoin de spécifier le nombre de clusters? Et d'autres paramètres comme le nombre de points par cluster, etc.

Learn_and_Share
la source

Réponses:

22

Les algorithmes de clustering qui vous obligent à prédéfinir le nombre de clusters sont une petite minorité. Il existe un grand nombre d'algorithmes qui n'en ont pas. Ils sont difficiles à résumer; c'est un peu comme demander une description de tout organisme qui n'est pas un chat.

Les algorithmes de clustering sont souvent classés en grands royaumes:

  1. Algorithmes de partitionnement (comme k-means et sa progéniture)
  2. Clustering hiérarchique (comme décrit @Tim )
  3. Clustering basé sur la densité (tel que DBSCAN )
  4. Clustering basé sur un modèle (par exemple, modèles de mélange gaussiens finis ou analyse de classes latentes )

Il peut y avoir des catégories supplémentaires, et les gens peuvent être en désaccord avec ces catégories et quels algorithmes vont dans quelle catégorie, car c'est heuristique. Néanmoins, quelque chose comme ce schéma est courant. En partant de là, ce ne sont principalement que les méthodes de partitionnement (1) qui nécessitent une pré-spécification du nombre de clusters à trouver. Quelles autres informations doivent être prédéfinies (par exemple, le nombre de points par cluster), et s'il semble raisonnable d'appeler divers algorithmes «non paramétriques», est également très variable et difficile à résumer.

Le clustering hiérarchique ne vous oblige pas à prédéfinir le nombre de clusters, comme le fait k-means, mais vous sélectionnez un certain nombre de clusters dans votre sortie. D'un autre côté, DBSCAN n'exige pas non plus (mais il nécessite la spécification d'un nombre minimum de points pour un «voisinage» - bien qu'il y ait des valeurs par défaut, donc dans un certain sens, vous pouvez ignorer le spécifier - ce qui met un plancher sur le nombre de modèles dans un cluster). GMM ne nécessite même aucun de ces trois, mais nécessite des hypothèses paramétriques sur le processus de génération de données. Pour autant que je sache, il n'y a pas d'algorithme de clustering qui ne vous oblige jamais à spécifier un nombre de clusters, un nombre minimum de données par cluster, ou tout modèle / arrangement de données au sein de clusters. Je ne vois pas comment il pourrait y en avoir.

Cela peut vous aider à lire un aperçu des différents types d'algorithmes de clustering. Ce qui suit pourrait être un point de départ:

  • Berkhin, P. "Enquête sur les techniques d'exploration de données de clustering" ( pdf )
gung - Réintégrer Monica
la source
Je suis confus par votre # 4: je pensais que si l'on adapte un modèle de mélange gaussien aux données, alors il faut choisir le nombre de Gaussiennes à ajuster, c'est-à-dire que le nombre de clusters doit être spécifié à l'avance. Dans l'affirmative, pourquoi dites-vous que «principalement seulement» # 1 l'exige?
amibe dit Réintégrer Monica
@amoeba, cela dépend de la méthode basée sur le modèle et de la façon dont elle est implémentée. Les GMM sont souvent adaptés pour minimiser certains critères (comme, par exemple, la régression OLS, cf. ici ). Si tel est le cas, vous ne spécifiez pas à l'avance le nombre de clusters. Même si vous le faites selon une autre implémentation, ce n'est pas une fonctionnalité typique des méthodes basées sur un modèle.
gung - Rétablir Monica
k=3k
Je ne suit pas vraiment votre argument ici, @amoeba. Lorsque vous ajustez un modèle de régression simple avec l'algorithme OLS, diriez-vous que vous pré-spécifiez la pente et l'interception, ou que l'algorithme les spécifie en optimisant un critère? Si ce dernier, je ne vois pas ce qui est différent ici. Il est certainement vrai que vous pourriez créer un nouveau méta-algorithme qui utilise k-means comme l'une de ses étapes pour trouver une partition sans pré-spécifier k, mais ce méta-algorithme ne serait pas k-means.
gung - Rétablir Monica
1
@amoeba, cela semble être un problème sémantique, mais les algorithmes standard utilisés pour adapter un GMM optimisent généralement un critère. Par exemple, celui Mclustutilisé est conçu pour optimiser le BIC, mais l'AIC pourrait être utilisé ou une séquence de tests de rapport de vraisemblance. Je suppose que vous pourriez l'appeler un méta-algorithme, b / c il a des étapes constitutives (par exemple, EM), mais c'est l'algorithme que vous utilisez, et en tout cas il ne vous oblige pas à pré-spécifier k. Vous pouvez clairement voir dans mon exemple lié que je n'y ai pas prédéfini k.
gung - Rétablir Monica
13

L'exemple le plus simple est le clustering hiérarchique , où vous comparez chaque point avec l'autre en utilisant une mesure de distance , puis réunissez la paire qui a la plus petite distance pour créer un pseudo-point joint (par exemple, b et c font bc comme sur l'image au dessous de). Ensuite, vous répétez la procédure en joignant les points et les pseudo-points, en fonction de leurs distances par paires jusqu'à ce que chaque point soit joint au graphique.

Illustration de Wikipédia

(source: https://en.wikipedia.org/wiki/Hierarchical_clustering )

La procédure n'est pas paramétrique et la seule chose dont vous avez besoin est la mesure de distance. À la fin, vous devez décider comment tailler l'arborescence créée à l'aide de cette procédure, de sorte qu'une décision sur le nombre attendu de clusters doit être prise.

Tim
la source
L'élagage ne signifie-t-il pas que vous décidez du numéro de cluster?
Learn_and_Share
1
@MedNait c'est ce que j'ai dit. Dans l'analyse en grappes, vous devez toujours prendre une telle décision, la seule question est de savoir comment elle est prise - par exemple, elle pourrait être arbitraire, ou elle pourrait être basée sur un critère raisonnable comme l'ajustement du modèle basé sur la vraisemblance, etc.
Tim
1
Cela dépend de ce que vous recherchez exactement, @MedNait. Le clustering hiérarchique ne vous oblige pas à prédéfinir le nombre de clusters, comme le fait k-means, mais vous sélectionnez un certain nombre de clusters dans votre sortie. D'un autre côté, DBSCAN ne nécessite pas non plus (mais il nécessite la spécification d'un nombre minimum de points pour un `` voisinage '' - bien qu'il y ait des valeurs par défaut - ce qui met un plancher sur le nombre de modèles dans un cluster) . GMM n'exige même pas cela, mais nécessite des hypothèses paramétriques sur le processus de génération de données. Etc.
gung - Réintégrer Monica
10

Les paramètres sont bons!

Une méthode "sans paramètre" signifie que vous n'obtenez qu'un seul coup (sauf peut-être le hasard), sans possibilité de personnalisation .

Le clustering est désormais une technique exploratoire . Vous ne devez pas supposer qu'il existe un seul "vrai" clustering . Vous devriez plutôt être intéressé à explorer différents regroupements des mêmes données pour en savoir plus. Traiter le clustering comme une boîte noire ne fonctionne jamais bien.

Par exemple, vous voulez pouvoir personnaliser la fonction de distance utilisée en fonction de vos données (c'est aussi un paramètre!) Si le résultat est trop grossier, vous voulez pouvoir obtenir un résultat plus fin, ou s'il est trop fin , obtenez-en une version plus grossière.

Les meilleures méthodes sont souvent celles qui vous permettent de bien naviguer dans le résultat, comme le dendrogramme dans le clustering hiérarchique. Vous pouvez ensuite explorer facilement les sous-structures.

A QUIT - Anony-Mousse
la source
0

Découvrez les modèles de mélange Dirichlet . Ils constituent un bon moyen de donner un sens aux données si vous ne connaissez pas le nombre de clusters au préalable. Cependant, ils font des hypothèses sur les formes des clusters, que vos données peuvent violer.

Zeke
la source