Riesci a confrontare diversi metodi di clustering su un set di dati senza verità di base mediante validazione incrociata?


12

Attualmente, sto cercando di analizzare un set di dati di documenti di testo che non ha fondamento. Mi è stato detto che puoi usare la validazione incrociata di k-fold per confrontare diversi metodi di clustering. Tuttavia, gli esempi che ho visto in passato usano una verità fondamentale. Esiste un modo per utilizzare i mezzi k-fold in questo set di dati per verificare i miei risultati?

Risposte:


12

L'unica applicazione di convalida incrociata al cluster che conosco è questa:

  1. Dividi il campione in un set di addestramento in 4 parti e in un set di prova in 1 parte.

  2. Applicare il metodo di clustering al set di formazione.

  3. Applicalo anche al set di test.

  4. Utilizzare i risultati del passaggio 2 per assegnare ciascuna osservazione nel set di test a un cluster di set di allenamento (ad esempio il centroide più vicino per k-medie).

  5. Nel set di test, contare per ciascun cluster dal passaggio 3 il numero di coppie di osservazioni in quel cluster in cui ogni coppia si trova anche nello stesso cluster secondo il passaggio 4 (evitando così il problema di identificazione del cluster indicato da @cbeleites). Dividi per il numero di coppie in ciascun cluster per dare una proporzione. La percentuale più bassa rispetto a tutti i cluster è la misura di quanto il metodo sia efficace nel prevedere l'appartenenza al cluster per i nuovi campioni.

  6. Ripeti dal passaggio 1 con parti diverse nei set di addestramento e test per renderlo 5 volte.

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


puoi spiegare ulteriormente cos'è una coppia di osservazioni (e perché stiamo usando in primo luogo una coppia di osservazioni)? Inoltre, come possiamo definire cos'è uno "stesso cluster" nel set di addestramento rispetto al set di test? Ho dato un'occhiata all'articolo, ma non ho avuto l'idea.
Tanguy,

1
@Tanguy: consideri tutte le coppie - se le osservazioni sono A, B e C le coppie sono {A, B}, {A, C}, & {B, C} - e non provi a definire " lo stesso cluster "tra set di treni e test, che contengono osservazioni diverse. Piuttosto si confrontano le due soluzioni di clustering applicate al set di test (una generata dal set di training e una dal set di test stesso) osservando con quale frequenza concordano nell'unire o separare i membri di ciascuna coppia.
Scortchi - Ripristina Monica

ok, allora le due matrici di coppia di osservazioni, una sul set di treni, una sul set di test, vengono confrontate con una misura di somiglianza?
Tanguy,

@Tanguy: No, prendi in considerazione solo coppie di osservazioni nel set di test.
Scortchi - Ripristina Monica

scusa non sono stato abbastanza chiaro. Si dovrebbero prendere tutte le coppie di osservazioni del set di test, da cui è possibile costruire una matrice riempita con 0 e 1 (0 se la coppia di osservazioni non si trova nello stesso cluster, 1 se lo fanno). Vengono calcolate due matrici poiché esaminiamo una coppia di osservazioni per i cluster ottenuti dal set di addestramento e dal set di test. La somiglianza di queste due matrici viene quindi misurata con alcune metriche. Ho ragione?
Tanguy,

7

Sto cercando di capire come applicheresti la convalida incrociata al metodo di clustering come k-medie poiché i nuovi dati in arrivo cambieranno il centroide e persino le distribuzioni di cluster su quello esistente.

Per quanto riguarda la convalida senza supervisione del clustering, potrebbe essere necessario quantificare la stabilità degli algoritmi con un numero di cluster diverso sui dati ricampionati.

L'idea di base della stabilità del cluster può essere mostrata nella figura seguente:

inserisci qui la descrizione dell'immagine

Si può osservare che con il numero di clustering di 2 o 5, ci sono almeno due diversi risultati di clustering (vedere le linee di divisione dei trattini nelle figure), ma con il numero di clustering di 4, il risultato è relativamente stabile.

Stabilità del cluster: potrebbe essere utile una panoramica di Ulrike von Luxburg .


7

K

Per facilità di spiegazione e chiarezza avrei avviato il clustering.

In generale, è possibile utilizzare tali cluster ricampionati per misurare la stabilità della propria soluzione: non cambia quasi per niente o cambia completamente?

Anche se non hai alcuna verità di base, puoi ovviamente confrontare il clustering che risulta da diverse esecuzioni dello stesso metodo (ricampionamento) o i risultati di diversi algoritmi di clustering, ad esempio tabulando:

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

poiché i cluster sono nominali, il loro ordine può cambiare arbitrariamente. Ciò significa che è consentito modificare l'ordine in modo che i cluster corrispondano. Quindi gli elementi diagonali * contano i casi assegnati allo stesso cluster e gli elementi fuori diagonale mostrano in che modo le assegnazioni sono cambiate:

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

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

Direi che il ricampionamento è buono per stabilire quanto sia stabile il clustering all'interno di ciascun metodo. Senza questo non ha molto senso confrontare i risultati con altri metodi.

io,io


Non stai mescolando la validazione incrociata di k-fold e il clustering di k-mean, vero?


0

C'è una recente pubblicazione su un metodo di convalida bidirezionale per determinare il numero di cluster qui .

e qualcuno sta cercando di implementare con sci-kit impara qui .

72D

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.