Come posso verificare se il mio raggruppamento di dati binari è significativo


12

Sto facendo analisi del carrello della spesa il mio set di dati è un insieme di vettori di transazione, con gli articoli che i prodotti vengono acquistati.

Quando si applicano i mezzi k sulle transazioni, otterrò sempre dei risultati. Una matrice casuale mostrerebbe probabilmente anche alcuni cluster.

C'è un modo per testare se il cluster che trovo sia significativo o che può essere davvero una coincidenza. Se sì, come posso farlo.

Risposte:


14

Per quanto riguarda l'analisi del carrello, penso che l'obiettivo principale sia quello di individuare le combinazioni più frequenti di prodotti acquistati dai clienti. Il association rulesrappresentano la metodologia più naturale qui (anzi erano in realtà sviluppato per questo scopo). L'analisi delle combinazioni di prodotti acquistati dai clienti e il numero di volte in cui queste combinazioni vengono ripetute, porta a una regola del tipo "se condizione, quindi risultato" con una corrispondente misurazione di interesse. È inoltre possibile prendere Log-linear modelsin considerazione al fine di indagare le associazioni tra le variabili considerate.

Ora per quanto riguarda il clustering, ecco alcune informazioni che potrebbero tornare utili:

A prima vista Variable clustering. Il clustering di variabili viene utilizzato per valutare collinearità, ridondanza e per separare le variabili in cluster che possono essere valutati come una singola variabile, con conseguente riduzione dei dati. Cerca la varclusfunzione (pacchetto Hmisc in R)

Valutazione della stabilità clusterwise: function clusterboot{R package fpc}

Statistiche basate sulla distanza per la convalida del cluster: funzione cluster.stats{R pacchetto fpc}

Come accennato da mbq, usa le larghezze della silhouette per valutare il miglior numero di cluster. Guarda questo . Per quanto riguarda le larghezze della sagoma, vedere anche la funzione optsil .

Stimare il numero di cluster in un set di dati tramite la statistica gap

Per il calcolo degli indici di dissimilarità e delle misure di distanza consultare dsvdis e vegdist

L'algoritmo di clustering EM può decidere quanti cluster creare per convalida incrociata (se non è possibile specificare a priori quanti cluster generare). Sebbene sia garantito che l'algoritmo EM converga al massimo, questo è un massimo locale e potrebbe non essere necessariamente uguale al massimo globale. Per una migliore possibilità di ottenere il massimo globale, l'intera procedura deve essere ripetuta più volte, con diverse ipotesi iniziali per i valori dei parametri. La cifra della probabilità logaritmica complessiva può essere utilizzata per confrontare le diverse configurazioni finali ottenute: basta scegliere il più grande dei massimi locali . È possibile trovare un'implementazione del clusterer EM nel progetto open source WEKA

Questo è anche un link interessante.

Cerca anche qui perFinding the Right Number of Clusters in k-Means and EM Clustering: v-Fold Cross-Validation

Infine, puoi esplorare i risultati del clustering usando clusterfly


8

Questo è un metodo che utilizza Monte Carlo per mostrare se un risultato è corretto.

La nostra ipotesi nulla H_0 è che il nostro set di dati non ha un cluster interessante. La nostra ipotesi alternativa H_1 è che il nostro set di dati contiene un cluster interessante.

Con la presente pensiamo che sia interessante, più interessante della struttura di raggruppamento di un set di dati casuale con gli stessi margini di riga e colonna. Ovviamente si potrebbero scegliere altri vincoli, ma perdere i vincoli renderà il nostro risultato troppo generale e restringere i vincoli fisserà il clustering a molto, rendendo quindi il nostro risultato automaticamente insignificante. I margini, come vedremo, sono una buona scelta a causa dei metodi esistenti per randomizzare con esso.

Definiamo come nostra statistica di test l'errore di clustering (distanza al quadrato in cluster), T da Π_0. Il valore per il nostro set di dati originale è t .

Non sappiamo nulla di questa distribuzione, tranne che possiamo trarne dei campioni. Il che lo rende un buon candidato per Monte Carlo.

Ora disegniamo n (iid) campioni casuali da Π_0 e calcoliamo il valore p empirico con la formula p_emp = 1 / (n + 1) * (Σ_i = 1-n I (t_i> = t) + 1)

Il campionamento casuale può essere effettuato mediante randomizzazione di swap. In parole semplici, un quadrato viene cercato con due angoli opposti un 1 e sugli altri due angoli uno 0. Quindi gli angoli vengono capovolti. Ciò mantiene i margini di colonna e riga. La procedura viene ripetuta abbastanza volte fino a quando il set di dati non è abbastanza randomizzato (questo richiederà alcuni esperimenti). Ulteriori informazioni al riguardo sono disponibili in Valutazione dei risultati del data mining tramite randomizzazione di swap di Gionis et. al.

Un metodo per fare ciò è definire la distribuzione dei dati e prendere l'errore di clustering come test-statistica t.

Ad esempio, se consideriamo tutti i set di dati con gli stessi margini di riga e colonna come la nostra distribuzione di dati, allora possiamo prendere n matrici casuali Xi da questa distribuzione e calcolare per loro l'errore di clustering. Quindi possiamo calcolare il valore p imperiale con la formula


4

Esiste qualcosa di simile alla silhouette , che in qualche misura definisce la statistica che determina la qualità del cluster (ad esempio, viene utilizzata per ottimizzare k). Ora un possibile Monte Carlo sarebbe il seguente: si generano molti set di dati casuali simili al proprio originale (ad esempio mescolando i valori tra le righe in ciascuna colonna), si raggruppano e si ottiene una distribuzione di silhouette media che può quindi essere utilizzata per testare il significato di silhouette in dati reali. Amminico ancora che non ho mai provato questa idea.


1
Questo mi ricorda un poster che ho visto alla conferenza Human Brain Mapping 2010. Tom Nichols ha usato il bootstrap parametrico per valutare la stabilità della correlazione copenetica e della silhouette nel clustering gerarchico, ma guarda il suo poster: j.mp/9yXObA .
chl

@chl Grazie; infatti di recente ho visto cose simili fatte nel mio laboratorio; il risultato fu che i cluster non sono significativi però: - /

Sono d'accordo che questo sembra bootstrap.
Vass

(FYI: interpretazione del valore della silhouette ). Inoltre, si noti che il valore silhouette non è definito per il cluster k = 1, quindi non è possibile confrontare l'ipotesi k = 1 (ovvero il set di dati non è cluster) rispetto a k> 1 (il set di dati è cluster) utilizzando il valore silhouette.
Franck Dernoncourt,
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.