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.
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?
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.
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 :
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:
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:
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:
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.