Pouvez-vous comparer différentes méthodes de clustering sur un ensemble de données sans vérité de fond par validation croisée?

12

Actuellement, j'essaie d'analyser un ensemble de données de document texte qui n'a aucune vérité fondamentale. On m'a dit que vous pouvez utiliser la validation croisée k-fold pour comparer différentes méthodes de clustering. Cependant, les exemples que j'ai vus dans le passé utilisent une vérité fondamentale. Existe-t-il un moyen d'utiliser les moyens k-fold sur cet ensemble de données pour vérifier mes résultats?

mtber75
la source

Réponses:

12

La seule application de validation croisée au clustering que je connaisse est celle-ci:

  1. Divisez l'échantillon en un ensemble de formation en 4 parties et un ensemble de test en 1 partie.

  2. Appliquez votre méthode de clustering à l'ensemble de formation.

  3. Appliquez-le également à l'ensemble de test.

  4. Utilisez les résultats de l'étape 2 pour attribuer chaque observation de l'ensemble de test à un groupe d'ensembles d'apprentissage (par exemple, le centroïde le plus proche pour k-means).

  5. Dans l'ensemble de test, comptez pour chaque cluster de l'étape 3 le nombre de paires d'observations dans ce cluster où chaque paire se trouve également dans le même cluster selon l'étape 4 (évitant ainsi le problème d'identification de cluster signalé par @cbeleites). Divisez par le nombre de paires dans chaque groupe pour donner une proportion. La proportion la plus faible parmi tous les clusters est la mesure de la qualité de la méthode pour prédire l'appartenance à un cluster pour de nouveaux échantillons.

  6. Répétez à partir de l'étape 1 avec différentes parties des kits de formation et de test pour le multiplier par 5.

Tibshirani et Walther (2005), «Cluster Validation by Prediction Strength», Journal of Computational and Graphical Statistics , 14 , 3.

Scortchi - Réintégrer Monica
la source
pouvez-vous expliquer davantage ce qu'est une paire d'observations (et pourquoi utilisons-nous une paire d'observations en premier lieu)? De plus, comment définir ce qu'est un "même cluster" dans l'ensemble de formation par rapport à l'ensemble de test? J'ai jeté un œil à l'article, mais je n'ai pas compris l'idée.
Tanguy
1
@Tanguy: Vous considérez toutes les paires. Si les observations sont A, B et C, les paires sont {A, B}, {A, C} et {B, C} -, et vous n'essayez pas de définir " le même cluster "à travers les trains et les ensembles de tests, qui contiennent des observations différentes. Vous comparez plutôt les deux solutions de clustering appliquées à l'ensemble de test (une générée à partir de l'ensemble de formation et une à partir de l'ensemble de test lui-même) en examinant la fréquence à laquelle elles conviennent d'unir ou de séparer les membres de chaque paire.
Scortchi - Réintégrer Monica
ok, alors les deux matrices de paire d'observations, une sur l'ensemble de train, une sur l'ensemble de test, sont comparées avec une mesure de similarité?
Tanguy
@Tanguy: Non, vous ne considérez que des paires d'observations dans l'ensemble de test.
Scortchi - Réintégrer Monica
désolé je n'étais pas assez clair. On devrait prendre toutes les paires d'observations de l'ensemble de test, à partir desquelles une matrice remplie de 0 et 1 peut être construite (0 si la paire d'observation ne se trouve pas dans le même groupe, 1 si elles le font). Deux matrices sont calculées car nous examinons une paire d'observations pour les grappes obtenues à partir de l'ensemble d'apprentissage et de l'ensemble de test. La similitude de ces deux matrices est ensuite mesurée avec une métrique. Ai-je raison?
Tanguy
7

J'essaie de comprendre comment appliquer la validation croisée à une méthode de clustering telle que les k-means puisque les nouvelles données à venir vont changer le centroïde et même les distributions de clustering sur votre existante.

En ce qui concerne la validation non supervisée du clustering, vous devrez peut-être quantifier la stabilité de vos algorithmes avec un numéro de cluster différent sur les données rééchantillonnées.

L'idée de base de la stabilité du clustering peut être illustrée dans la figure ci-dessous:

entrez la description de l'image ici

Vous pouvez observer qu'avec le nombre de clustering de 2 ou 5, il y a au moins deux résultats de clustering différents (voir les lignes de tiret de fractionnement sur les figures), mais avec le nombre de clustering de 4, le résultat est relativement stable.

Stabilité du clustering: un aperçu par Ulrike von Luxburg pourrait être utile.

lennon310
la source
7

k

Pour plus d'explication et de clarté, je bootstrap le clustering.

En général, vous pouvez utiliser de tels regroupements rééchantillonnés pour mesurer la stabilité de votre solution: est-ce qu'elle ne change pratiquement pas ou change-t-elle complètement?

Même si vous n'avez aucune vérité fondamentale, vous pouvez bien sûr comparer le clustering qui résulte de différentes exécutions de la même méthode (rééchantillonnage) ou les résultats de différents algorithmes de clustering, par exemple en tabulant:

km1 <- kmeans (iris [, 1:4], 3)
km2 <- kmeans (iris [, 1:4], 3)
table (km1$cluster, km2$cluster)

#      1  2  3
#   1 96  0  0
#   2  0  0 33
#   3  0 21  0

comme les grappes sont nominales, leur ordre peut changer arbitrairement. Mais cela signifie que vous êtes autorisé à modifier l'ordre afin que les clusters correspondent. Ensuite, les éléments diagonaux * comptent les observations affectées au même cluster et les éléments hors diagonale montrent de quelle manière les affectations ont changé:

table (km1$cluster, km2$cluster)[c (1, 3, 2), ]

#      1  2  3
#   1 96  0  0
#   3  0 21  0
#   2  0  0 33

Je dirais que le rééchantillonnage est bon afin d'établir la stabilité de votre clustering dans chaque méthode. Sans cela, il n'est pas très logique de comparer les résultats à d'autres méthodes.

je,je


Vous ne mélangez pas la validation croisée k-fold et le clustering k-means, n'est-ce pas?

cbeleites mécontents de SX
la source
0

Il y a une publication récente sur une méthode de validation bi-croisée pour déterminer le nombre de clusters ici .

et quelqu'un essaie de mettre en œuvre avec sci-kit apprendre ici .

sept2

mathew gunther
la source