Warum verwenden wir k-means anstelle anderer Algorithmen?


14

Ich habe über k-means recherchiert und das habe ich: k-means ist einer der einfachsten Algorithmen, der unbeaufsichtigte Lernmethoden verwendet, um bekannte Clustering-Probleme zu lösen. Es funktioniert sehr gut mit großen Datenmengen.

Es gibt jedoch auch Nachteile von K-Mitteln, die sind:

  • Starke Empfindlichkeit gegenüber Ausreißern und Lärm
  • Funktioniert nicht gut mit unrunden Clusterformen - Anzahl der Cluster und anfänglicher Startwert müssen vorher festgelegt werden
  • Geringe Fähigkeit, das lokale Optimum zu erreichen.

Gibt es etwas Gutes an k-means, weil es den Anschein hat, dass die Nachteile jenseits der guten Dinge an k-means liegen.

Bitte unterrichte mich.


3
Es gibt keine gute Methode oder einen guten Algorithmus ohne den Kontext eines Problems, in dem es verwendet wird. Daher verwenden wir k-means, weil es Probleme gibt, für die k-means eine optimale Lösung ist (;

Antworten:


8

Andere Clustering-Algorithmen mit besseren Funktionen sind tendenziell teurer. In diesem Fall wird k-means eine großartige Lösung für das Pre-Clustering, indem der Raum in disjunkte kleinere Unterräume reduziert wird, in denen andere Clustering-Algorithmen angewendet werden können.


Teurer als in den Kosten des Programms? oder ?
Goldschädel mit Muster

5
Teurer als langsam und speicherintensiv.
Martin O'Leary

Oh ich verstehe. Gibt es andere Vorteile als schnell, robust und einfacher zu verstehen? Und trotzdem danke für die Antworten @ MartinO'Leary und @ zeferino
Gold Skull mit Pattern

6

K-means ist das einfachste. Umsetzen und ausführen. Alles was Sie tun müssen, ist "k" zu wählen und es mehrmals auszuführen.

Die meisten cleveren Algorithmen (insbesondere die guten) sind viel schwieriger effizient zu implementieren (Sie werden 100-fache Laufzeitunterschiede feststellen) und es müssen viel mehr Parameter festgelegt werden.

Außerdem benötigen die meisten Menschen keine Qualitätscluster . Sie sind tatsächlich mit irgendetwas glücklich, das für sie aus der Ferne arbeitet. Außerdem wissen sie nicht wirklich, was sie tun sollen, wenn sie komplexere Cluster haben. K-means, das Cluster mit dem einfachsten Modell aller Zeiten modelliert - einem Schwerpunkt -, ist genau das, was sie benötigen: massive Datenreduktion auf Zentroide .


0

K-means ist wie der Exchange Sort-Algorithmus. Leicht zu verstehen, hilft beim Einstieg in das Thema, sollte aber niemals für etwas Reales verwendet werden. Bei der Exchange-Sortierung ist sogar die Blasensortierung besser, da sie vorzeitig beendet werden kann, wenn das Array teilweise sortiert ist. Im Fall von K-means ist der EM-Algorithmus derselbe Algorithmus, nimmt jedoch anstelle der Annahme einer gleichmäßigen Verteilung von K-means Gauß-Verteilungen für Cluster an. K-means ist ein Kantenfall von EM, wenn alle Cluster diagonale Kovarianzmatrizen haben. Die Gaußsche Struktur bedeutet, dass sich die Cluster auf sehr schöne Weise in die Daten einschrumpfen. Dies umgeht die schwerwiegenden Einwände, die Sie in der Frage richtig ansprechen. Und EM ist eigentlich nicht viel teurer als K-means. (Ich kann beides in einer Excel-Tabelle implementieren.) Aber für ernsthafte Clustering-Anwendungen

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.