Wie erhält man die Wahrscheinlichkeit, zu Clustern für k-Mittel zu gehören?


8

Ich muss die Wahrscheinlichkeit für jeden Punkt in meinem Datensatz ermitteln. Die Idee ist, die Abstandsmatrix zu berechnen (Abstände der ersten Spalte zum ersten Cluster, Abstände der zweiten Spalte zum zweiten Cluster usw.). Der nächstgelegene Punkt hat die Wahrscheinlichkeit = 1, der entfernteste hat die Wahrscheinlichkeit = 0. Das Problem ist, dass lineare Funktionen (wie MinMaxScaller) ausgegeben werden, bei denen fast alle Punkte fast die gleiche Wahrscheinlichkeit haben.

Wie wähle ich die Nichtlinearität für diese Aufgabe? Wie automatisiere ich diesen Prozess auf Python? Zum Beispiel ist für den am nächsten gelegenen Punkt p=1, für den am weitesten entfernten Punkt, der zum Cluster gehört p=0.5, für den am weitesten entfernten Punkt p Almol 0.

Oder Sie können andere Methoden zur Berechnung dieser Wahrscheinlichkeit vorschlagen.

Antworten:


12

Lassen Sie uns kurz über eine probabilistische Verallgemeinerung von k- Mitteln sprechen: das Gaußsche Mischungsmodell (GMM).

In k- Mitteln führen Sie das folgende Verfahren aus:
- Geben Sie k Schwerpunkte an, initialisieren Sie ihre Koordinaten zufällig
- Berechnen Sie den Abstand jedes Datenpunkts zu jedem Schwerpunkt
- Weisen Sie jeden Datenpunkt seinem nächsten Schwerpunkt zu
- Aktualisieren Sie die Koordinaten des Schwerpunkts zum Mittelwert aller ihm zugewiesenen Punkte
- bis zur Konvergenz iterieren.

In einem GMM führen Sie das folgende Verfahren aus:
- Geben Sie k multivariate Gaußsche (als Komponenten bezeichnete ) an, initialisieren Sie ihren Mittelwert und ihre Varianz zufällig.
- Berechnen Sie die Wahrscheinlichkeit, dass jeder Datenpunkt von jeder Komponente erzeugt wird (manchmal als die Verantwortung bezeichnet, die jede Komponente für die übernimmt Datenpunkt)
- Ordnen Sie jeden Datenpunkt mit der höchsten Wahrscheinlichkeit
der Komponente zu, zu der er gehört. Aktualisieren Sie den Mittelwert und die Varianz der Komponente auf den Mittelwert und die Varianz aller ihm zugewiesenen Datenpunkte.
Iterieren Sie bis zur Konvergenz

Möglicherweise stellen Sie die Ähnlichkeit zwischen diesen beiden Verfahren fest. Tatsächlich ist k- means ein GMM mit Komponenten mit fester Varianz. Unter einem GMM sind die Wahrscheinlichkeiten (glaube ich), nach denen Sie suchen, die Verantwortlichkeiten, die jede Komponente für jeden Datenpunkt übernimmt.

Es gibt eine Scikit-Learn-Implementierung von GMM , wenn Sie dies untersuchen möchten, aber ich vermute, Sie möchten nur eine schnelle Möglichkeit, Ihren vorhandenen Code zu ändern. In diesem Fall, wenn Sie davon ausgehen möchten, dass Ihre Cluster repariert sind -varianz Gaußsche, Sie könnten Ihre Distanzmatrix elementweise als transformieren (was Ihnen einen exponentiellen Abfall gibt) und dann den Softmax über Ihre Spalten berechnen (Ihre Verteilung so normalisieren, dass ).y=exP(Y=1)+P(Y=2)+...+P(Y=k)=1

Es sei darauf hingewiesen, dass die Annahme, dass Ihre Cluster Gaußsche Werte mit fester Varianz sind, nicht unbedingt gültig ist. Wenn Ihre Dimensionen sehr unterschiedliche Maßstäbe haben, kann dies zu seltsamen Ergebnissen führen, da Dimensionen mit Einheiten kleinerer Größe "wahrscheinlicher" erscheinen. Die Standardisierung Ihrer Daten vor dem Ausführen des Clustering-Verfahrens sollte Abhilfe schaffen.


1

Per Definition sollten km-Werte sicherstellen, dass der Cluster, dem ein Punkt zugewiesen ist, den nächsten Schwerpunkt hat. Die Wahrscheinlichkeit, im Cluster zu sein, ist also nicht genau definiert.

Wie bereits erwähnt, gibt Ihnen GMM-EM-Clustering eine Wahrscheinlichkeitsschätzung für die Zugehörigkeit zu jedem Cluster und ist eindeutig eine Option.

Wenn Sie jedoch im sphärischen Konstrukt von k-means bleiben möchten, könnten Sie wahrscheinlich eine einfachere Annahme / Formulierung verwenden, wenn Sie der Clusterbildung jedes Punktes eine "Gütebewertung" zuweisen möchten. Dies kann nützlich sein, wenn Sie eine Teilmenge der Grundgesamtheit abtasten und bestimmen möchten, wie sehr Sie dem Cluster vertrauen sollen, der jedem Punkt in der Stichprobe zugewiesen ist.

Ein einfaches "Bewertungsschema" könnte darin bestehen, zuerst den SQRT-Z-Bewertungsabstand über alle Dimensionen zu berechnen, die beim Clustering zu jedem der k Zentroide verwendet werden. Dann unter der Annahme zu für jeden k-Zentroide, könnten Sie die Punktzahl vergebend1dk

score=1di(n1)/i=1k1di(n1)

Dabei ist die Anzahl der Dimensionen, die für das Clustering verwendet werden.n

Warum dieses -te Einschalten von ? Denken Sie darüber nach, was im dreidimensionalen Raum mit Schwerkraft oder Elektromagnetismus passiert, wo sich die Intensität um den quadratischen Abstand verringert. In ähnlicher Weise erzeugt k-means sphärische Cluster in n Dimensionen. Wenn Sie also jedes der Cluster-Schwerpunkte als Punktquellen für "Energie" betrachten, löst es sich auf, wenn d um d auf die -te Potenz ansteigt . Infolgedessen ist an jedem zufälligen Punkt die Intensität der "Energie", die von einem beliebigen Clusterschwerpunkt kommt, proportional zu wobei(n1)1d(n1)1di(n1)diist der Abstand zum Schwerpunkt. Sie können also diesen Gütefaktor berechnen, der zwischen 0 und 1 skaliert, und ein Gefühl dafür bekommen, wie "verwirrt" der k-Mittelwert-Algorithmus für jeden Punkt ist, basierend auf den Dimensionen und der Struktur Ihres vorliegenden Problems.


0

Sie können eine Wahrscheinlichkeit finden, dass ein Datenpunkt in einem bestimmten Cluster , gruppiert wird , indem Sie k-means hunderte Male und zählen, wie oft der Datenpunkt dem Cluster zugewiesen wurde .dikjP(kj|di)dikj

Da Cluster-IDs im wirklichen Leben nichts bedeuten, können Sie Cluster über k-Mittelwert-Iterationen hinweg identifizieren, indem Sie den Wert der Zentroide verwenden. Das heißt, nach jeder Konvergenz von k-means werden die Cluster-IDs basierend auf einer Liste von IDs neu zugeordnet, die durch Schwerpunktwerte indiziert sind.


1
Für jeden, der mich herabgestimmt hat, wäre es hilfreich zu hören, warum. Dies wird als iteratives k-Mittel definiert und an Universitäten gelehrt.
Ulad Kasach
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.