Wie kann ich testen, ob mein Clustering von Binärdaten signifikant ist?


12

Ich mache Warenkorbanalysen. Mein Datensatz besteht aus Transaktionsvektoren mit den Artikeln, die die Produkte gekauft haben.

Wenn ich k-means auf die Transaktionen anwende, erhalte ich immer ein Ergebnis. Eine Zufallsmatrix würde wahrscheinlich auch einige Cluster zeigen.

Gibt es eine Möglichkeit zu testen, ob die Clusterbildung, die ich finde, signifikant ist, oder ob dies sehr wohl ein Zufall sein kann? Wenn ja, wie kann ich das machen?

Antworten:


14

In Bezug auf die Warenkorbanalyse denke ich, dass das Hauptziel darin besteht, die häufigsten Kombinationen von Produkten zu individualisieren, die von den Kunden gekauft wurden. Sie association rulesstellen hier die natürlichste Methode dar (tatsächlich wurden sie tatsächlich für diesen Zweck entwickelt). Die Analyse der von den Kunden gekauften Produktkombinationen und der Häufigkeit, mit der diese Kombinationen wiederholt werden, führt zu einer Regel vom Typ "Wenn Bedingung, dann Ergebnis" mit einer entsprechenden Messung der Interessantheit. Sie können auch in Betracht Log-linear modelsziehen, um die Assoziationen zwischen den betrachteten Variablen zu untersuchen.

In Bezug auf das Clustering sind hier einige Informationen aufgeführt, die nützlich sein können:

Zuerst überlegen Variable clustering. Das Variablenclustering wird zur Bewertung der Kollinearität und Redundanz sowie zur Aufteilung von Variablen in Cluster verwendet, die als einzelne Variable bewertet werden können, was zu einer Datenreduzierung führt. Suchen Sie nach der varclusFunktion (Paket Hmisc in R)

Bewertung der clusterweisen Stabilität: Funktion clusterboot{R package fpc}

Entfernungsbasierte Statistiken für die Clustervalidierung: Funktion cluster.stats{R-Paket fpc}

Verwenden Sie, wie bereits erwähnt, die Silhouette-Breiten, um die beste Anzahl von Clustern zu ermitteln. Schau dir das an . Bezüglich der Silhouettenbreiten siehe auch die optsil- Funktion.

Schätzen Sie die Anzahl der Cluster in einem Datensatz über die Lückenstatistik

Zur Berechnung von Unähnlichkeitsindizes und Abstandsmaßen siehe dsvdis und vegdist

Der EM-Clustering-Algorithmus kann entscheiden, wie viele Cluster durch Kreuzvalidierung erstellt werden sollen (wenn Sie nicht im Voraus angeben können, wie viele Cluster generiert werden sollen). Obwohl garantiert wird, dass der EM-Algorithmus gegen ein Maximum konvergiert, ist dies ein lokales Maximum und muss nicht unbedingt mit dem globalen Maximum übereinstimmen. Um das globale Maximum besser erreichen zu können, sollte der gesamte Vorgang mehrmals wiederholt werden, wobei die Parameterwerte zunächst unterschiedlich geschätzt werden. Die Gesamt-Log-Likelihood-Zahl kann verwendet werden, um die verschiedenen endgültigen Konfigurationen zu vergleichen: Wählen Sie einfach das größte der lokalen Maxima . Eine Implementierung des EM-Clusterers finden Sie im Open-Source-Projekt WEKA

Dies ist auch ein interessanter Link.

Suchen Sie auch hier nachFinding the Right Number of Clusters in k-Means and EM Clustering: v-Fold Cross-Validation

Schließlich können Sie Clustering-Ergebnisse mit Clusterfly untersuchen


8

Dies ist eine Methode, die Monte Carlo verwendet, um zu zeigen, ob ein Ergebnis korrekt ist.

Unsere Nullhypothese H_0 lautet, dass unser Datensatz keine interessante Clusterbildung aufweist. Unsere alternative Hypothese H_1 lautet, dass unser Datensatz eine interessante Clusterbildung enthält.

Hierbei halten wir interessant als interessanter als die Clusterstruktur eines zufälligen Datensatzes mit denselben Zeilen- und Spaltenrändern. Natürlich könnten andere Einschränkungen gewählt werden, aber wenn Sie Einschränkungen verlieren, wird unser Ergebnis zu allgemein, und wenn Sie Einschränkungen einschränken, wird die Clusterbildung zu stark korrigiert, sodass unser Ergebnis automatisch unbedeutend wird. Die Ränder sind, wie wir sehen werden, eine gute Wahl, da Methoden zur Randomisierung vorhanden sind.

Definieren wir als unsere Teststatistik den Clusterfehler (quadratischer Abstand innerhalb des Clusters) T von Π_0. Der Wert für unseren Originaldatensatz ist t .

Wir wissen nichts über diese Verteilung, außer dass wir Proben daraus ziehen können. Das macht es zu einem guten Kandidaten für Monte Carlo.

Nun ziehen wir n (iid) Zufallsstichproben aus Π_0 und berechnen den empirischen p- Wert mit der Formel p_emp = 1 / (n + 1) * (Σ_i = 1-n I (t_i> = t) + 1)

Die Zufallsauswahl kann durch Swap-Randomisierung erfolgen. In einfachen Worten wird ein Quadrat mit an zwei gegenüberliegenden Ecken einer 1 und an den anderen beiden Ecken einer 0 gesucht. Dann werden die Ecken umgedreht. Dadurch bleiben die Spalten- und Zeilenränder erhalten. Der Vorgang wird so oft wiederholt, bis der Datensatz ausreichend randomisiert ist (dies erfordert einige Experimente). Weitere Informationen hierzu finden Sie unter Bewertung der Data Mining-Ergebnisse mittels Swap-Randomisierung von Gionis et. al.

Eine Methode, um dies zu tun, besteht darin, die Verteilung Ihrer Daten zu definieren und den Clusterfehler als Teststatistik t zu verwenden.

Wenn wir beispielsweise alle Datensätze mit denselben Zeilen- und Spaltenrändern als unsere Datenverteilung betrachten, können wir aus dieser Verteilung n Zufallsmatrizen Xi nehmen und den Clusterfehler für sie berechnen. Dann können wir den kaiserlichen p-Wert nach der Formel berechnen


4

Es gibt so etwas wie eine Silhouette , die bis zu einem gewissen Grad eine Statistik definiert, die die Clusterqualität bestimmt (zum Beispiel wird sie zur Optimierung von k verwendet). Nun würde ein möglicher Monte-Carlo wie folgt aussehen: Sie generieren eine Menge zufälliger Datensätze, die Ihrem Original ähnlich sind (z. B. indem Sie Werte zwischen Zeilen in jeder Spalte mischen), gruppieren und erhalten eine Verteilung der mittleren Silhouette, die dann zum Testen der Signifikanz verwendet werden kann der Silhouette in realen Daten. Trotzdem verwalte ich, dass ich diese Idee noch nie ausprobiert habe.


1
Dies erinnert mich an ein Poster, das ich auf der Human Brain Mapping 2010-Konferenz gesehen habe. Tom Nichols verwendete einen parametrischen Bootstrap, um die Stabilität der kophenetischen Korrelation und Silhouette in hierarchischen Clustern zu bewerten . Siehe jedoch sein Poster: j.mp/9yXObA .
Chl

@chl Danke; In der Tat habe ich kürzlich in meinem Labor Ähnliches gesehen. Das Ergebnis war, dass die Cluster nicht signifikant sind: - /

Ich bin damit einverstanden, dass dies nach Bootstrapping klingt.
Vass

(FYI: Interpretation des Silhouette-Werts ). Beachten Sie auch, dass der Silhouette-Wert für den k = 1-Cluster nicht definiert ist, sodass wir die Hypothese k = 1 (dh der Datensatz ist nicht gruppiert) mit k> 1 (der Datensatz ist gruppiert) unter Verwendung des Silhouette-Werts nicht vergleichen können.
Franck Dernoncourt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.