Ich habe einen Datensatz, ich möchte Cluster auf diesen Daten basierend auf nur einer Variablen erstellen (es fehlen keine Werte). Ich möchte 3 Cluster basierend auf dieser einen Variablen erstellen.
Welcher Clustering-Algorithmus soll verwendet werden, k-means, EM, DBSCAN usw.?
Meine Hauptfrage ist, unter welchen Umständen sollte ich k-means über EM oder EM über k-means verwenden?
clustering
Ali
quelle
quelle
Antworten:
Der K-Means-Algorithmus und der EM-Algorithmus werden für 1D-Clustering ziemlich ähnlich sein.
In K-means beginnen Sie mit einer Vermutung, wo sich die Mittelwerte befinden, und ordnen jeden Punkt dem Cluster mit dem nächstgelegenen Mittelwert zu. Anschließend berechnen Sie die Mittelwerte (und Varianzen) basierend auf den aktuellen Zuweisungen von Punkten neu und aktualisieren dann die Zuweisung von Punkten die Mittel ...
In EM würden Sie auch mit einer Vermutung beginnen, wo sich die Mittelwerte befinden, dann den erwarteten Wert der Zuweisungen berechnen (im Wesentlichen die Wahrscheinlichkeit, dass sich jeder Punkt in jedem Cluster befindet) und dann die geschätzten Mittelwerte (und Abweichungen) unter Verwendung der erwarteten Werte aktualisieren als Gewichte, dann neue Erwartungswerte berechnen, dann neue Mittelwerte berechnen, ...
Der Hauptunterschied besteht darin, dass die Zuweisung von Punkten zu Clustern in K-Means ein Alles oder Nichts ist, wobei EM die Proportionen / Wahrscheinlichkeit einer Gruppenzugehörigkeit angibt (ein Punkt kann mit einer Wahrscheinlichkeit von 80% in Gruppe A angesehen werden, mit einer Wahrscheinlichkeit von 18% in Gruppe B zu sein, und 2% Wahrscheinlichkeit, in Gruppe C zu sein). Wenn es eine große Trennung zwischen den Gruppen gibt, werden die beiden Methoden ziemlich ähnliche Ergebnisse liefern. Wenn es jedoch eine ausreichende Überlappung gibt, liefert die EM wahrscheinlich aussagekräftigere Ergebnisse (noch mehr, wenn die Varianz / Standardabweichung von Interesse ist). Wenn Sie jedoch nur eine Gruppenmitgliedschaft zuweisen möchten, ohne sich um die Parameter zu kümmern, ist K-means wahrscheinlich einfacher.
Warum nicht beides und sehen, wie unterschiedlich die Antworten sind? Wenn sie ähnlich sind, entscheiden Sie sich für den Vergleich der Gruppierung mit den Daten und dem Fremdwissen.
quelle
EM ist in Bezug auf die Ergebnisse besser als k-means.
K-means hat jedoch eine schnellere Laufzeit.
Sie führen zu ähnlichen Ergebnissen, wenn die Standardabweichungs- / Kovarianzmatrizen ungefähr gleich sind. Wenn Sie vermuten, dass dies zutrifft, verwenden Sie k-means.
DBSCAN wird verwendet, wenn die Daten nicht gaußsch sind. Wenn Sie eindimensionale Daten verwenden, gilt dies in der Regel nicht, da eine Gauß-Näherung in der Regel in einer Dimension gültig ist.
quelle
Eine andere einfache Möglichkeit besteht darin, das 1D-Array grundsätzlich zu sortieren: dh über jeden Punkt iterieren und die Werte abrufen, die sowohl in positiver als auch in negativer Richtung einen Mindestabstand dazu haben. Beispielsweise:
wird geben:
Welche Punkte, dass die Objekte in der Nähe eines bestimmten Punktes sind grundsätzlich unter seiner Gruppe. Das einzige, worüber man bei dieser Technik nachdenken muss, ist die Variable k, die die feste Größe des Clusters ist :-).
quelle
Wenn es nur eine Variable gibt, ist kein Clustering erforderlich. Sie können Ihre Beobachtungen einfach anhand der Verteilung der Variablen gruppieren.
Oder fehle ich hier ein paar Punkte?
quelle