Wie man die Nachteile von K-means versteht


365

K-means ist eine weit verbreitete Methode in der Clusteranalyse. Nach meinem Verständnis erfordert diese Methode KEINE Annahmen, dh, Sie geben mir einen Datensatz und eine vorgegebene Anzahl von Clustern, k, und ich wende nur diesen Algorithmus an, der die Summe der Fehlerquadrate (SSE) im Quadrat des Clusters minimiert Error.

K-means ist also im Wesentlichen ein Optimierungsproblem.

Ich habe Material über die Nachteile von k-means gelesen. Die meisten von ihnen sagen, dass:

  • k-means nimmt an, dass die Varianz der Verteilung jedes Attributs (jeder Variablen) sphärisch ist;
  • Alle Variablen haben die gleiche Varianz.
  • die vorherige Wahrscheinlichkeit ist für alle k Cluster gleich, dh jeder Cluster hat ungefähr die gleiche Anzahl von Beobachtungen;

Wenn eine dieser drei Annahmen verletzt wird, schlägt k-means fehl.

Ich konnte die Logik hinter dieser Aussage nicht verstehen. Ich denke, dass die k-means-Methode im Wesentlichen keine Annahmen macht, sondern nur die SSE minimiert, sodass ich den Zusammenhang zwischen der Minimierung der SSE und diesen 3 "Annahmen" nicht erkennen kann.


49
Ich würde sagen, dass die Anzahl der Cluster bereits eine ziemliche Annahme ist.
njzk2

30
Die Hauptannahmen von k-means sind: 1. Es gibt k Cluster. 2. SSE ist das richtige Ziel, um zu minimieren. 3. Alle Cluster haben dieselbe SSE. 4. Alle Variablen haben für jeden Cluster die gleiche Bedeutung. Dies sind ziemlich starke Annahmen ...
Anony-Mousse

2
k

2
kk

1
Ich habe meiner Antwort unten eine Illustration eines Datensatzes hinzugefügt, in der man annehmen könnte, dass k-means wirklich gut funktioniert (alle Cluster der gleichen Form), aber immer noch in lokalen Minima steckt; und sogar 1000 Iterationen fanden nicht das optimale Ergebnis.
Anony-Mousse

Antworten:


273

Während ich die Antwort von David Robinson hier sehr mag , hier eine zusätzliche Kritik an k-means.

Clustering von nicht geclusterten Daten

Wenn Sie k-means mit einheitlichen Daten ausführen, erhalten Sie dennoch Cluster! Es sagt Ihnen nicht, wann die Daten nicht gruppiert werden, und kann Ihre Forschung auf diese Weise in eine Sackgasse führen.

K-bedeutet auf einheitlichen Daten

Empfindlich im Maßstab

d

Dies ist wahrscheinlich das, was Sie als "alle Variablen haben die gleiche Varianz" bezeichnet haben. Abgesehen davon würden Sie im Idealfall auch eine nichtlineare Skalierung in Betracht ziehen.

Beachten Sie auch, dass es nur heuristisch ist, jede Achse so zu skalieren, dass sie eine Einheitsvarianz aufweist . Dies stellt nicht sicher, dass k-means funktioniert. Die Skalierung hängt von der Bedeutung Ihres Datensatzes ab. Und wenn Sie mehr als einen Cluster haben, möchten Sie, dass jeder Cluster (unabhängig) auch in jeder Variablen die gleiche Varianz aufweist.

Hier ist ein klassisches Gegenbeispiel von Datensätzen, die k-means nicht gruppieren kann. Beide Achsen befinden sich in jedem Cluster, es wäre also ausreichend, dies in einer Dimension zu tun. Die Cluster haben jedoch unterschiedliche Varianzen, und k-means teilt sie daher falsch auf.

K-means kann diesen Datensatz nicht gruppieren

Ich denke nicht, dass dieses Gegenbeispiel für k-means durch Ihre Punkte abgedeckt wird:

  • Alle Cluster sind kugelförmig (iid Gauß).
  • Alle Achsen haben die gleiche Verteilung und damit Varianz.
  • Beide Cluster haben jeweils 500 Elemente.

K-means fällt immer noch schlecht aus (und es wird schlimmer, wenn ich die Varianz für den größeren Cluster auf über 0,5 erhöhe). Aber: Es ist nicht der Algorithmus, der fehlgeschlagen ist. Es sind die Annahmen, die nicht stimmen . K-means funktioniert perfekt, es optimiert nur das falsche Kriterium.

Selbst bei perfekten Datensätzen kann es in einem lokalen Minimum stecken bleiben

Nachfolgend finden Sie die besten 10 Läufe von k-means für den klassischen A3-Datensatz. Dies ist ein synthetischer Datensatz, der für k-means entwickelt wurde . 50 Cluster, jeder in Gaußscher Form, ziemlich gut voneinander getrennt. Allerdings habe ich nur mit k-means ++ und 100 Iterationen das erwartete Ergebnis erhalten ... (unten sind zur Veranschaulichung 10 Iterationen mit regulären k-means angegeben).

k-bedeutet auf A3-Datensatz

Sie werden schnell viele Cluster in diesem Datensatz finden, bei denen k-means nicht die richtige Struktur gefunden hat. Beispielsweise wurde rechts unten ein Cluster in drei Teile aufgeteilt. Aber es gibt keine Möglichkeit, k-means wird einen dieser Schwerpunkte an einen völlig anderen Ort des Datensatzes verschieben - er ist in einem lokalen Minimum gefangen (und dies war bereits der beste von 10 Läufen!).

Und es gibt viele solcher lokalen Minima in diesem Datensatz. Sehr oft, wenn Sie zwei Samples von demselben Cluster erhalten, bleibt dieser mindestens dort hängen, wo dieser Cluster aufgeteilt bleibt, und stattdessen werden zwei andere Cluster zusammengeführt. Nicht immer, aber sehr oft. Sie brauchen also viele Iterationen, um eine glückliche Wahl zu treffen. Mit 100 Iterationen von k-means zählte ich immer noch 6 Fehler und mit 1000 Iterationen brachte ich dies auf 4 Fehler. K-means ++ funktioniert durch die Art und Weise, wie die Zufallsstichproben gewichtet werden, viel besser mit diesem Datensatz.

Mittel sind ununterbrochen

Während Sie k-means für binäre Daten (oder One-Hot-codierte kategoriale Daten) ausführen können, sind die Ergebnisse nicht mehr binär. Sie erhalten zwar ein Ergebnis, können es jedoch möglicherweise nicht interpretieren, da es einen anderen Datentyp als Ihre ursprünglichen Daten hat.

Versteckte Annahme: SSE ist es wert, minimiert zu werden

Dies ist im Wesentlichen bereits in der obigen Antwort vorhanden, die mit linearer Regression gut demonstriert wird. Es gibt einige Anwendungsfälle, in denen k-means absolut sinnvoll ist. Als Lloyd PCM-Signale dekodieren musste, kannte er die Anzahl der verschiedenen Töne, und Fehler im kleinsten Fehlerquadrat minimieren die Wahrscheinlichkeit von Dekodierungsfehlern. Und bei der Farbquantisierung von Bildern minimieren Sie Farbfehler, wenn Sie die Palette verkleinern. Aber ist die Summe der quadratischen Abweichungen in Ihren Daten ein aussagekräftiges Kriterium zur Minimierung?

Im obigen Gegenbeispiel lohnt es sich nicht , die Varianz zu minimieren, da sie vom Cluster abhängt. Stattdessen sollte ein Gaußsches Mischungsmodell an die Daten angepasst werden, wie in der folgenden Abbildung dargestellt:

Modellierung von Gaußschen Gemischen

(Dies ist jedoch auch nicht die ultimative Methode. Es ist genauso einfach, Daten zu konstruieren, die nicht den Annahmen einer "Mischung aus k-Gauß-Verteilungen" entsprechen, z. B. durch Hinzufügen einer Menge Hintergrundrauschen.)

Zu einfach, schlecht zu benutzen

Alles in allem ist es zu einfach, k-means auf Ihre Daten zu werfen und trotzdem ein Ergebnis zu erzielen (das ist ziemlich zufällig, aber Sie werden es nicht bemerken). Ich denke, es wäre besser, eine Methode zu haben, die scheitern kann, wenn Sie Ihre Daten nicht verstanden haben ...

K-bedeutet als Quantisierung

Wenn Sie ein theoretisches Modell dessen wollen, was k-means bewirkt, betrachten Sie es als Quantisierungsansatz , nicht als Clustering-Algorithmus.

Das Ziel von k-means - die Minimierung des quadratischen Fehlers - ist eine vernünftige Wahl, wenn Sie jedes Objekt durch seinen nächsten Schwerpunkt ersetzen. (Es ist viel weniger sinnvoll, wenn Sie die ursprünglichen Daten der Gruppe IMHO überprüfen.)

k

Diese Quantisierung ähnelt wahrscheinlich dem Beispiel der linearen Regression. Die lineare Regression findet das beste lineare Modell . Und k-means findet (manchmal) die beste Reduktion auf k-Werte eines mehrdimensionalen Datensatzes. Wobei "am besten" der Fehler im kleinsten Quadrat ist.

IMHO, k-means ist ein guter Quantisierungsalgorithmus (siehe das erste Bild in diesem Beitrag - wenn Sie den Datensatz auf zwei Punkte approximieren möchten, ist dies eine vernünftige Wahl!). Wenn Sie eine Clusteranalyse wie in der Discovery-Struktur durchführen möchten, ist k-means meiner Meinung nach nicht die beste Wahl. Es neigt dazu, Cluster zu bilden, wenn es keine Cluster gibt, und es kann verschiedene Strukturen nicht erkennen, die Sie häufig in Daten sehen.


Kleingedrucktes: Alle Bilder wurden mit ELKI erstellt . Daten wurden im .xmlDatengenerierungsformat generiert, sind jedoch so einfach, dass es sich nicht lohnt, sie weiterzugeben.


17
(Nur zur Kenntnisnahme - es ist wahrscheinlich keine gute Idee, über die "obige Antwort" zu sprechen, da die Antwortreihenfolge, die ein Leser sieht, variabel sein kann. Wenn er beispielsweise die Anzeigereihenfolge auf "aktiv" setzt, lautet Ihre Antwort eigentlich die oben!)
Silverfish

1
@ Anony-Mousse Diese Antwort ist wirklich genial. Aber bis jetzt vergesse ich irgendwie, was wir normalerweise mit "k-means wird unter bestimmten Bedingungen funktionieren und unter anderen Bedingungen scheitern" meinen. Was bedeutet in diesem Zusammenhang das Wort "arbeiten" oder "scheitern"? Bedeutet "Arbeit", dass die von k-means generierte Lösung visuell "vernünftig" aussieht? Das ist irgendwie vage. Oder 'arbeiten' bedeutet, wenn k-means eine Lösung bereitstellt, die der 'Standardlösung' entspricht, dh, wir generieren einen Datensatz vor und verwenden k-means. In diesem Zusammenhang ist „Arbeit“ sinnvoll, aber in der Realität werden Daten durch eine bestimmte Verteilung nicht vorab generiert.
KevinKim

Normalerweise beziehen sich die Leute auf eine Grundwahrheit, dh wie die Daten erzeugt wurden, oder auf ein Etikett, das vor dem Algorithmus verborgen ist. Der Vergleich mit generierten Daten wird Algorithmen vorziehen, die das für die Generierung verwendete Modell optimieren (z. B. GMM und k-means für Gaußsche). Und selbst bei realen und gekennzeichneten Daten handelt es sich bei dieser Auswertung um die Reproduktion eines bekannten Ergebnisses. Wenn Sie den explorativen / wissensbasierten Aspekt betrachten, in dem Sie etwas Neues lernen möchten . Aber es ist alles was wir haben.
Anony-Mousse

k

@TMOTTM Dies ist mit k nach Vorkenntnissen gewählt. Best of 10 läuft alle mit dem "richtigen" k von vornherein gewählt.
Anony-Mousse

450

Was für eine großartige Frage - es ist eine Chance zu zeigen, wie man die Nachteile und Annahmen jeder statistischen Methode untersuchen würde. Nämlich: Machen Sie einige Daten und probieren Sie den Algorithmus aus!

Wir werden zwei Ihrer Annahmen berücksichtigen und sehen, was mit dem k-means-Algorithmus passiert, wenn diese Annahmen verletzt werden. Wir werden uns an zweidimensionale Daten halten, da diese einfach zu visualisieren sind. (Aufgrund des Fluchs der Dimensionalität werden diese Probleme durch Hinzufügen zusätzlicher Dimensionen wahrscheinlich größer und nicht kleiner). Wir werden mit der statistischen Programmiersprache R arbeiten: Den vollständigen Code finden Sie hier (und den Beitrag in Blog-Form hier ).

Abwechslung: Anscombes Quartett

Erstens eine Analogie. Stellen Sie sich vor, jemand argumentiert Folgendes:

Ich habe einiges über die Nachteile der linearen Regression gelesen - dass sie einen linearen Trend erwartet, dass die Residuen normal verteilt sind und dass es keine Ausreißer gibt. Aber jede lineare Regression minimiert die Summe der quadratischen Fehler (SSE) aus der vorhergesagten Linie. Dies ist ein Optimierungsproblem, das unabhängig von der Form der Kurve oder der Verteilung der Residuen gelöst werden kann. Für die lineare Regression sind daher keine Annahmen erforderlich.

Nun ja, die lineare Regression minimiert die Summe der quadratischen Residuen. Dies allein ist jedoch nicht das Ziel einer Regression: Wir versuchen , eine Linie zu ziehen, die als zuverlässiger, unvoreingenommener Prädiktor für y auf der Basis von x dient . Das Gauß-Markov-Theorem sagt uns, dass die Minimierung der SSE dieses Ziel erreicht - aber dass das Theorem auf einigen sehr spezifischen Annahmen beruht. Wenn diese Annahmen nicht zutreffen, können Sie die SSE trotzdem minimieren, dies ist jedoch möglicherweise nicht der Falletwas. Stellen Sie sich vor, Sie fahren ein Auto, indem Sie auf das Pedal treten: Fahren ist im Wesentlichen ein Vorgang, bei dem Sie auf das Pedal treten. Das Pedal kann gedrückt werden, egal wie viel Benzin sich im Tank befindet. Selbst wenn der Tank leer ist, können Sie trotzdem das Pedal drücken und das Auto fahren. "

Aber reden ist billig. Schauen wir uns die kalten, harten Daten an. Oder eigentlich erfundene Daten.

Bildbeschreibung hier eingeben

R2

Man könnte sagen " In diesen Fällen funktioniert die lineare Regression immer noch , weil sie die Summe der Quadrate der Residuen minimiert." Aber was für ein Pyrrhussieg ! Lineare Regression zieht immer eine Linie, aber wenn es eine bedeutungslose Linie ist, wen interessiert das dann?

Jetzt sehen wir, dass eine Optimierung noch lange nicht das Erreichen unseres Ziels bedeutet. Und wir sehen, dass das Erstellen und Visualisieren von Daten eine gute Möglichkeit ist, die Annahmen eines Modells zu überprüfen. Haltet an dieser Intuition fest, wir werden sie in einer Minute brauchen.

Unterbrochene Annahme: Nicht kugelförmige Daten

Sie argumentieren, dass der k-means-Algorithmus bei nicht-sphärischen Clustern gut funktioniert. Nicht-sphärische Cluster wie ... diese?

Bildbeschreibung hier eingeben

Vielleicht haben Sie das nicht erwartet - aber es ist eine vernünftige Methode, Cluster zu konstruieren. Wenn wir dieses Bild betrachten, erkennen wir Menschen sofort zwei natürliche Gruppen von Punkten - wir können sie nicht verwechseln. Schauen wir uns also an, wie sich k-means verhält: Zuweisungen werden in Farbe angezeigt, unterstellte Zentren werden als X angezeigt.

Bildbeschreibung hier eingeben

Nun, das ist nicht richtig. K-means versuchte, einen quadratischen Stift in ein rundes Loch zu stecken - und versuchte, schöne Zentren mit sauberen Kugeln zu finden - und es schlug fehl. Ja, es wird immer noch die Summe der Quadrate innerhalb des Clusters minimiert - aber genau wie im obigen Anscombe-Quartett ist es ein Pyrrhussieg!

Sie könnten sagen: "Das ist kein faires Beispiel. Keine Cluster-Methode kann so seltsame Cluster korrekt finden." Nicht wahr! Versuchen Sie es mit einem einzelnen Linkage Hierachical Clustering :

Bildbeschreibung hier eingeben

Geschafft! Dies liegt daran, dass bei hierarchischem Clustering mit einfacher Verknüpfung die richtigen Annahmen für dieses Dataset getroffen werden. (Es gibt eine ganze andere Klasse von Situationen, in denen es versagt).

Sie könnten sagen "Das ist ein einziger, extremer, pathologischer Fall." Aber es ist nicht! Beispielsweise können Sie die äußere Gruppe zu einem Halbkreis anstatt zu einem Kreis machen, und Sie werden sehen, dass k-means immer noch furchtbar funktioniert (und hierarchisches Clustering immer noch gut funktioniert). Ich könnte mir leicht andere problematische Situationen einfallen lassen, und das nur in zwei Dimensionen. Beim Clustering von 16-dimensionalen Daten können alle möglichen Pathologien auftreten.

Zum Schluss sollte ich noch erwähnen, dass k-means immer noch rentabel ist! Wenn Sie Ihre Daten zunächst in Polarkoordinaten umwandeln , funktioniert das Clustering jetzt wie folgt:

Bildbeschreibung hier eingeben

Aus diesem Grund ist es wichtig, die einer Methode zugrunde liegenden Annahmen zu verstehen: Sie erfahren nicht nur, wann eine Methode Nachteile aufweist, sondern auch, wie Sie diese beheben können.

Unterbrochene Annahme: Cluster mit ungleicher Größe

Was ist, wenn die Cluster eine ungerade Anzahl von Punkten aufweisen - bedeutet dies auch, dass k-Cluster zerstört werden? Betrachten Sie diese Gruppe von Clustern mit den Größen 20, 100 und 500. Ich habe jeden aus einem multivariaten Gaußschen Wert generiert:

Bildbeschreibung hier eingeben

Das sieht so aus, als ob k-means diese Cluster wahrscheinlich finden könnte, oder? Alles scheint in ordentlichen Gruppen zusammenzufassen. Versuchen wir also k-means:

Bildbeschreibung hier eingeben

Autsch. Was hier passiert ist, ist etwas subtiler. Bei der Suche nach einer Minimierung der Quadratsumme innerhalb eines Clusters verleiht der k-means-Algorithmus größeren Clustern mehr "Gewicht". In der Praxis bedeutet dies, dass es glücklich ist, zuzulassen, dass dieser kleine Cluster weit von einem Zentrum entfernt ist, während er diese Zentren verwendet, um einen viel größeren Cluster zu "teilen".

Wenn Sie ein wenig mit diesen Beispielen spielen ( R-Code hier! ), Werden Sie sehen, dass Sie viel mehr Szenarien konstruieren können, in denen k-means es peinlich falsch macht.

Fazit: Kein kostenloses Mittagessen

Es gibt eine bezaubernde Konstruktion in der mathematischen Folklore, die von Wolpert und Macready formalisiert wurde und als "Theorem ohne freies Mittagessen" bezeichnet wird. Es ist wahrscheinlich mein Lieblingssatz in Maschinelles Lernen Philosophie, und ich genießen eine Chance , es zu bringen (habe ich erwähnt , dass ich diese Frage lieben?) Die Grundidee ist angegeben (nicht rigoros) wie folgt aus : „Wenn in allen möglichen Situationen gemittelt, Jeder Algorithmus funktioniert gleich gut. "

Hört sich das nicht intuitiv an? Bedenken Sie, dass ich für jeden Fall, in dem ein Algorithmus funktioniert, eine Situation konstruieren könnte, in der er fürchterlich ausfällt. Bei der linearen Regression wird davon ausgegangen, dass Ihre Daten entlang einer Linie fallen - aber was ist, wenn sie einer Sinuswelle folgen? Bei einem T-Test wird davon ausgegangen, dass jede Probe aus einer Normalverteilung stammt: Was passiert, wenn Sie einen Ausreißer einwerfen? Jeder Algorithmus für den Gradientenanstieg kann in lokalen Maxima gefangen werden, und jede überwachte Klassifizierung kann zur Überanpassung verleitet werden.

Was bedeutet das? Es bedeutet, dass Annahmen sind, wo Ihre Macht herkommt! Wenn Netflix Ihnen Filme empfiehlt, wird davon ausgegangen, dass Sie ähnliche Filme mögen, wenn Sie einen mögen (und umgekehrt). Stellen Sie sich eine Welt vor, in der das nicht stimmt und Ihre Vorlieben vollkommen zufällig auf Genres, Schauspieler und Regisseure verteilt sind. Ihr Empfehlungsalgorithmus würde schrecklich scheitern. Würde es Sinn machen zu sagen "Nun, es minimiert immer noch einen erwarteten quadratischen Fehler, so dass der Algorithmus immer noch funktioniert"? Sie können keinen Empfehlungsalgorithmus erstellen, ohne einige Annahmen über den Geschmack der Benutzer zu treffen - genau wie Sie keinen Cluster-Algorithmus erstellen können, ohne einige Annahmen über die Art dieser Cluster zu treffen.

Akzeptieren Sie also nicht nur diese Nachteile. Kennen Sie sie, damit sie Ihre Wahl der Algorithmen informieren können. Verstehen Sie sie, damit Sie Ihren Algorithmus optimieren und Ihre Daten transformieren können, um sie zu lösen. Und liebe sie, denn wenn dein Modell niemals falsch sein könnte, bedeutet das, dass es niemals richtig sein wird.



50
+1 für diese leidenschaftliche Antwort. Besonders gut hat mir das Beispiel der Polartransformation gefallen, bei dem diese cleveren Tricks mein mathematisch ignorantes Gehirn immer wieder in Erstaunen versetzen.
mugen

20
+ 1, dies ist eine absolut schöne Antwort, die hervorragend zeigt, wie die Annahmen zusammenbrechen, ohne in den Details der Analyse hängen zu bleiben.
Louis Cialdella

15
+1 Eines der häufigsten Dinge, über die sich die Leute immer wieder beschweren, ist, dass theoretische Dinge in der Praxis nicht funktionieren. Aber wenn ich frage "Passen Ihre Daten zu den Annahmen des Modells?" Ich bekomme einfach einen leeren Blick von ihren Gesichtern. Ihre Antwort und vor allem der letzte Abschnitt haben mich sehr gefreut.
TenaliRaman

9
+1 Wow, ich bin schon eine Weile hier, aber ich glaube, ich habe noch nie eine Antwort gefunden, um an einem Tag mehr als 50 Upvotes zu erhalten. Dies ist eine wirklich beeindruckende Leistung.
Amöbe

7
Wie ich sehe, ist die Polartransformation hier hauptsächlich als erstes und umgangssprachliches Beispiel für Kernel-Clustering-Techniken nützlich - wobei diese Art der Vortransformation dazu dient, lineare Lernmethoden zum Funktionieren zu bringen.
Mikael Vejdemo-Johansson

7

Ich möchte nur zu @ DavidRobinsons Antwort hinzufügen, dass das Clustering auf minimale Gesamtvarianz des Clusters tatsächlich ein kombinatorisches Optimierungsproblem ist, von dem k-Means nur eine Technik ist - und wenn man dessen "one shot", lokale "steilste Abfahrt" -Natur zugrunde legt , auch eine ziemlich schlechte . Es ist von Anfang an zum Scheitern verurteilt, zu versuchen, die "nackten Knochen" k-Means durch eine (aber schnelle) Ermittlung der Position der Cluster-Samen wesentlich zu verbessern: Da die Samen die endgültigen Cluster (drastisch!) Beeinflussen, beträgt sie zu "wissen", was das Optimum ist ... bevor es tatsächlich berechnet wird.

Wie die meisten Optimierungsprobleme kann es jedoch zu ernsthaften Optimierungstechniken kommen . Einer von ihnen passt sehr gut zur Struktur des Problems (wie es die NFL verlangt!) Und zeigt sich zweifellos in ihren Ergebnissen. Ich möchte hier keine Werbung machen (das wäre - und das zu Recht - gegen die Etikette). Wenn Sie also interessiert sind, lesen Sie es einfach hier und machen Sie Ihr eigenes Urteil.

Aber sagen, dass ich stimme @ttnphns dass k-Means sicherlich nicht nicht ein Gaussian Mixture identifizieren - die Kostenfunktionen der beiden Probleme sind völlig verschieden. Es stellt sich heraus, dass das Finden der (in Bezug auf die Wahrscheinlichkeit des Modells bei gegebenen Daten) am besten passenden Gaußschen Mischung auch ein kombinatorisches Optimierungsproblem ist - und für das es auch eine ernsthafte Optimierungstechnik gibt. Wieder einmal, keine Werbung: können Sie Ihre eigenen Abschluss erreichen hier - ich will nur sagen , dass der Algorithmus diskutiert kann es zwar richtig Cluster identifizieren , wie das letzte Bild in @ David Maurice Robinson den Pfosten . Es löst sogar richtig (dh auf mathematisch gut definierte Weise) das Mehrjahresproblem von Ausreißerndh Datenpunkte, die keinem der Cluster angehören , weil sie nur völlig zufällig sind (notorischerweise entgleisen sie beispielsweise k-Means vollständig ). Dies geschieht , indem eine zusätzliche, eine gleichmäßige Verteilung im Wettbewerb mit dem Gaussians ... und dem herrlichen Ergebnis ist , dass auf gleichmäßig verteilen Daten, es in der Tat berichtet , gibt es nichts drin (ich habe nie irgendwo anders gesehen).

Nun, laut NFL und wie Sie zu Recht bemerkt haben, beruhen selbst global optimale Gauß-Gemische mit Ausreißeridentifikation auf einer vorherigen Annahme - nämlich, dass die Daten tatsächlich normal verteilt sind. Glücklicherweise stimmen dank des Gesetzes der großen Zahlen zahlreiche Naturphänomene mit dieser Annahme überein.

HAFTUNGSAUSSCHLUSS: Mit meiner tiefsten Entschuldigung habe ich sowohl die oben genannten Artikel als auch die darin diskutierten Algorithmen geschrieben.

PS Ich habe Macready einmal auf einer Konferenz getroffen - ein extrem kluger und netter Kerl!


Dies soll eine Antwort auf die Frage sein.
Michael Chernick

3
Es ist tatsächlich eine Antwort, Michael: k-Means GIBT VOR, ein tatsächlich kombinatorisches Optimierungsproblem zu lösen ... aber es ist definitiv NICHT (in keiner Weise ernsthaft)! Außerdem geht k-Means von (beabsichtigten) kugelförmigen Verteilungen aus, die so lahm sind, dass Sie weinen (multiplizieren Sie eine der Dimensionen mit zwei und erhalten Sie etwas völlig anderes, unabhängig von Ihren "intelligenten" Samen!). Und die Frage der Ausreißer (die in JEDEN realen Daten, die ich gesehen habe, enthalten sind!) Wird in k-Means einfach nicht einmal angesprochen, obwohl sie den Anspruch von k-Means auf "ernsthafte" Clusterbildung vollständig zerstören.
Emanuel Falkenauer

1
@EmanuelFalkenauer, willkommen auf der Seite. Ich stimme (+1) für deine Antwort, aber es ist nur ein bisschen anmaßend. Wie kann K-mean etwas für etwas vortäuschen , das kein Mensch ist? Für eine einfache / schnelle Methode macht es das, was es macht und nicht schlecht.
TTNPHNS

@ttnphns: Danke für die Begrüßung und die positive Bewertung! Natürlich gibt k-Means nichts vor (es ist nur ein Teil des Codes - mein Schlechtes!), Aber die Leute, die es bewerben, tun es - wie das OP herausfand. Ich stimme Ihrer Feststellung zu, dass es sich um eine "einfache / schnelle" Methode handelt. Das große Problem besteht jedoch darin, dass es nah am Selbstmord liegt, sich auf die Ausgabe der einfachsten Daten zu verlassen: Es werden nicht nur Annahmen getroffen, die den meisten nicht entsprechen der Zeit, aber auch wenn sie es sind, macht es einen schrecklichen Job. Sie lösen ein kombinatorisches Problem einfach nicht mit einer steilsten Abfahrt. ;-)
Emanuel Falkenauer

6

Die Nachteile von K-means sind logischerweise:

  • benötigt lineare Trennbarkeit der Cluster
  • müssen die Anzahl der Cluster angeben
  • Algorithmus: Die Loyds-Prozedur konvergiert auch bei einer guten Initialisierung bei vielen Punkten oder Dimensionen nicht zum wahren globalen Maximum

Aber K-means ist besser als wir normalerweise denken. Ich bin ziemlich begeistert davon geworden, nachdem ich es mit anderen Clustering-Methoden (Spektral, Dichte ...) und LDA in der realen Textklassifizierung von einer Million Texten getestet habe: K-means hatte eine weitaus bessere Genauigkeit als LDA zum Beispiel (88% vs 59%). Einige andere Clustering-Methoden waren gut, aber K-means war in der Nähe der Spitze ... und in Bezug auf die Komplexität erschwinglicher.

Ich habe noch nie über eine Clustering-Methode gelesen, die bei einer Vielzahl von Problemen allgemein besser ist. Nicht zu sagen, dass K-means universell besser ist, nur, dass es meines Wissens keinen universellen Clustering-Superhelden gibt. Viele Artikel, viele Methoden, keine echte Revolution (nach meiner persönlichen begrenzten Erfahrung beim Testen einiger von ihnen).

Der Hauptgrund, warum die logischen Nachteile von K-means oft nur offensichtlich sind, ist, dass Sie beim maschinellen Lernen selten Clustering-Punkte in einer 2D-Ebene machen. Viele Dinge aus der geometrischen Intuition, die in 2D, 3D ... wahr sind, sind in relativ hochdimensionalen oder abstrakten Vektorräumen (wie Wortkiste, Vektor von Variablen ...) irrelevant.

Lineare Trennbarkeit: In realen Daten müssen Sie sich selten mit kreisförmigen Clustern befassen. Es ist sogar besser anzunehmen, dass sie in diesen Fällen nicht existieren. Wenn Sie Ihrem Algorithmus erlauben, nach ihnen zu suchen, kann er ungerade kreisförmige Cluster im Rauschen finden. Die lineare Annahme in K-Mitteln macht es oft robuster.

Anzahl der Cluster: Es gibt oft keine ideale Anzahl von Clustern, die Sie sehen möchten. Zum Beispiel kann es für die Textklassifizierung 100 Kategorien geben, 105, 110 ... das ist alles eher subjektiv. Die Angabe der Anzahl der Cluster entspricht der Angabe einer globalen Granularität. Alle Clustering-Methoden benötigen ohnehin eine Granularitätsangabe.

10a lot

Alle Clustering-Algorithmen weisen jedoch solche Einschränkungen auf. Zum Beispiel in Spectral Clustering: Sie können die wahren Eigenvektoren nicht finden, nur Näherungen.

Für die gleiche Rechenzeit hat eine ziemlich optimierte LDA-Bibliothek weniger gut getan als unsere hausgemachten (nicht perfekt optimierten) K-Mittel. Seitdem denke ich ein bisschen anders.


1

Um die Nachteile von K-means zu verstehen, denke ich gerne darüber nach, welches Modell dahinter steckt.

KK

Kσ2Iσ2Kσ20

Was sagt uns das über die Nachteile von K-means?

  1. K-means führt zu Clustern, die nach multivariatem Gauß aussehen.
  2. Da die Varianz über die Variablen gleich ist, führt K-means zu kugelförmig aussehenden Clustern.
  3. K
  4. K-means tendiert zu gleich großen Gruppen.

K-means ist eigentlich ein ziemlich restriktiver Algorithmus. Der Vorteil ist, dass Sie mit den oben genannten Annahmen den Algorithmus ziemlich schnell ausführen können. Wenn jedoch die Clusterleistung Ihr Hauptanliegen ist, ist K-means in realen Situationen in der Regel viel zu restriktiv.


2
Dem kann ich nicht ganz zustimmen. Anspruch K-Mittel, um ein besonderer Fall von Gaußscher Mischung zu sein, ist eine weite Strecke. K-means nimmt keine bestimmte Art der Verteilung an, wie normal (daher ist es kein probabilistischer Grund). Es werden nicht überlappende Cluster angenommen (dh kein "Mix"). Es nimmt kugelförmige Cluster an, genauer gesagt konvexe Polygone von Voronoi-Zellen. Vielleicht ist es richtig zu sagen, dass K-means nichts "modelliert", sondern keinen direkten Bezug zu einem Datenerzeugungsprozess hat. K bedeutet "neigt zu gleich großen Gruppen [nach der Anzahl der Punkte]" - nicht unbedingt.
TTNPHNS

4
@ttnphns Es kann gezeigt werden, dass k-means tatsächlich ein Sonderfall von GMM ist: en.wikipedia.org/wiki/K-means_clustering#Gaussian_Mixture_Model
TrynnaDoStat

It can be shown that. Durch ausreichende Dehnung kann alles als Verwandtschaft über den Verstand hinaus "gezeigt" werden.
TTNPHNS

2
@ttnphns Nein, nicht alles kann mathematisch dargestellt werden.
TrynnaDoStat
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.