Maschinelles Lernen (ML) ist derzeit ein heißes Thema.
Und überwachtes ML erhält viel Aufmerksamkeit. Sie verfügen über auffällige neuronale Netze, den Naive Bayes-Klassifikator und viele andere nette Methoden (von denen einige bereits behandelt wurden). Unser JMP-Blog finden Sie hier ).
Aber überwachtes ML erfordert Etiketten oder Wahrheitsdaten. Wir können einen Computer nicht bitten, zu lernen, was eine Katze ist, wenn wir ihm nicht sagen können, wann es richtig oder falsch ist. Leider sind Beschriftungen in bestimmten Datensätzen schwer zu finden. Die Leute haben sich geniale Methoden ausgedacht, um kostengünstig an beschriftete Daten zu gelangen, etwa CAPTCHAs, die Sie auffordern, auf jedes Foto zu klicken, auf dem sich ein Stoppschild befindet, oder Googles berühmte Quick Draw-Anwendung; Es kann jedoch teuer sein, große Datenmengen zu kennzeichnen.
Oft haben wir keine Etiketten oder die Wahrheit, aber wir haben Daten. In diesen Fällen müssen wir verwenden un überwachtes maschinelles Lernen. Unüberwachtes ML wird so genannt, weil wir nicht sagen können, was richtig oder falsch ist. Genau wie ein neuer Babysitter, der die Hausregeln nicht kennt, haben unbeaufsichtigte ML-Algorithmen nicht die richtigen Antworten. Wir können den Algorithmus nicht „korrigieren“, wenn er etwas falsch macht, da es keine eindeutige richtige oder falsche Antwort gibt.
Obwohl es nicht die einzige Art von unbeaufsichtigtem ML ist, ist Clustering eine sehr beliebte Variante. Wenn wir keine vorab festgelegten Gruppen für unsere Daten haben, besteht unser natürlicher Instinkt oft darin, diese Gruppen selbst zu erstellen. Im Allgemeinen zielt Clustering darauf ab, nahe beieinander liegende Datenpunkte in derselben Gruppe und weit voneinander entfernte Datenpunkte in verschiedenen Gruppen zu gruppieren. Das nennt man Zusammenhalt (Ähnliche Punkte sind zusammen) und Trennung (Ungleiche Punkte gibt es nicht). Da wir keine Vergleichsbezeichnungen haben, beurteilen wir den „Erfolg“ unserer Cluster/Gruppen oft danach, wie zusammenhängend und getrennt sie sind.
K-bedeutet
Werfen wir einen Blick auf diesen kleinen Datensatz aus einem großen Kaufhaus namens RA Fischer . Fisher's möchte ein neues dreistufiges Prämienprogramm einführen, aber die Mitarbeiter müssen wissen, welche Angebote sie für jede der drei Stufen machen müssen.
Sie sammelten Pilotdaten über die durchschnittliche Anzahl der Einkäufe und die durchschnittliche Anzahl der Artikel bei jedem Einkauf für 30 Kunden. Die Daten sind unten grafisch dargestellt.
Wir möchten unsere Kunden in drei Gruppen einteilen, damit wir für jeden Kunden eine passende Stufe haben können. Daher entscheiden wir uns für die Verwendung von k-means, um die Kunden basierend auf der durchschnittlichen Anzahl ihrer Reisen pro Jahr und der Anzahl der im Durchschnitt pro Reise gekauften Artikel in drei Gruppen einzuteilen.
Der erste Schritt von k-means besteht darin, k auszuwählen. Wir haben drei ausgewählt. Dann wählen wir k zufällige Punkte aus unseren Daten aus. Wir werden diese Datenpunkte als Zentren unserer drei Cluster behandeln.
Dann weisen wir jedem Datenpunkt zu, dass er sich im Cluster des Punkts befindet, dem er am nächsten liegt. Beispielsweise liegt dieser Punkt oben am nächsten am blauen Punkt und befindet sich daher im blauen Cluster.
Auf diese Weise ordnen wir jeden unserer Punkte einem Cluster zu.
Da wir nun drei Cluster haben, können wir die neuen Zentren jedes Clusters neu berechnen.
Und dann jeden Punkt seinem neuen nächstgelegenen Cluster neu zuweisen.
Anschließend wiederholen wir diese Schritte, bis sich die Clustermitgliedschaft (oder die Zentren) nicht ändert:
- Zentren berechnen
- Punkte neu zuweisen
Sobald dieser Zustand erreicht ist, hat unser Modell dies erreicht konvergierte , und wir verwenden diese Clustermitgliedschaften als unsere endgültigen Clusterzuweisungen.
Wir können unsere Cluster jetzt nutzen, um unsere drei Kundenstufen für Fisher's zu erstellen. Es sieht so aus, als hätten wir eine eindeutige Gruppe in Rot, die nur wenige Fahrten unternimmt und nicht viele Artikel kauft. Um sie häufiger im Laden zu haben, bieten wir dienstags 15 % Rabatt an.
Die grüne Gruppe unternimmt mäßig viele Fahrten, kauft dabei aber eine große Menge an Gegenständen. Um ihnen gerecht zu werden, enthält unsere Silber-Stufe Gutscheine für 60 % Rabatt auf einen Artikel pro Woche, um diese Kunden häufiger in die Tür zu locken.
Und schließlich richtet sich unsere Gold-Stufe an die blaue Gruppe, die regelmäßig in den Laden kommt, aber nur wenige Artikel kauft. Diese Stufe umfasst alle zwei Jahre stattfindende Veranstaltungen mit „Kaufe eins, erhalte eins – 50 % Rabatt“, um diese Kunden zum Kauf weiterer Artikel zu verleiten.
K-means ist eine großartige Möglichkeit, Ihre Daten in Gruppen zu unterteilen. Und obwohl unser Beispiel nur zwei Dimensionen hatte (Fahrten und Artikel), kann k-means gut für höherdimensionale Daten funktionieren. Es ist nur schwieriger, die Ergebnisse in einem Blogbeitrag darzustellen.
Ich habe bereits erwähnt, dass es beim unbeaufsichtigten Lernen keine „richtigen“ Antworten gibt, mit denen wir unsere Ergebnisse vergleichen könnten. Wir können die Genauigkeit oder Empfindlichkeit nicht berechnen. Aber wir können ein Maß für Zusammenhalt und Trennung berechnen. Das häufigste ist ein Silhouettenpartitur . Die Silhouette-Werte liegen zwischen -1 und 1, wobei höhere Werte besser sind. a(i) ist der durchschnittliche Abstand zwischen einem Datenpunkt, und jeder andere Datenpunkt in seinem Cluster. Dies misst die Kohäsion, also wie nahe Datenpunkte in einem Cluster beieinander liegen. Eng verbundene Cluster werden klein sein a(i)s .
Bi) ist der kleinste durchschnittliche Abstand zwischen ich und jeder Punkt in einem anderen Cluster. Dies misst die Trennung, also wie weit die Cluster voneinander entfernt sind. Gut definierte Cluster weisen hohe Werte für auf Bi) .
Insgesamt ergibt die Silhouettenbewertung für einen Punkt, der weit entfernt von Punkten anderer Cluster, aber nahe an Punkten in seinem eigenen Cluster liegt, eine hohe, positive Silhouettenbewertung. Punkte, die näher an Punkten in anderen Clustern als an Punkten in ihrem eigenen Cluster liegen, weisen kleine, sogar negative Silhouettenwerte auf.
Wir können ein Gefühl dafür bekommen, wie „gut“ unsere Cluster zu den Daten passen, indem wir einen Durchschnitt der Silhouettenwerte für jeden Datenpunkt bilden. Der Silhouette-Score für unsere Kundencluster (sagen wir mal 10-mal schnell…) beträgt 0,614, was bedeutet, dass unsere Cluster relativ zusammenhängend und getrennt sind.
Wenn wir hohe Durchschnittswerte für Silhouetten erzielen, glauben wir, dass wir etwas entdeckt haben latente Struktur in den Daten. Wenn Cluster sich selbst ähneln und sich von anderen unterscheiden, scheint es, als ob diese Gruppen natürlich vorkommen und nicht etwas, was wir den Daten aufgezwungen haben.
Erwartungsmaximierung (mit Mischungen von Gaußschen Gleichungen)
K-means ist ein relativ schneller und einfacher Algorithmus zum Clustering von Daten. Es ist schnell zu erlernen und oft schnell umzusetzen. Aber es hat zwei potenzielle Nachteile: Erstens geht es von Sphärizität aus, was bedeutet, dass die Cluster wie mehrdimensionale Kugeln geformt sind. In der Praxis bedeutet dies ungefähr, dass wir davon ausgehen, dass alle unsere Merkmale die gleiche Varianz aufweisen, was oft nicht stimmt. Denken Sie darüber nach, Katzen anhand der durchschnittlichen Häufigkeit, mit der sie pro Tag miauen, und ihrer Länge in Zentimetern in Gruppen einzuteilen. Es ist sehr unwahrscheinlich, dass diese beiden Dinge die gleiche Varianz aufweisen.
Das zweite Problem besteht darin, dass k-means gibt hart Clusterzuweisungen. Jeder Punkt gehört zu genau einem Cluster. Manchmal, insbesondere an den Rändern unserer Cluster, möchten wir möglicherweise die Tatsache berücksichtigen, dass ein Punkt Teil eines von zwei Clustern sein kann. Wie dieser Punkt hier. Es könnte blau sein oder Grün.
Wenn wir also denken ... oder wissen ..., dass unsere verschiedenen Merkmale nicht die gleiche Varianz aufweisen, oder wir wollen weich Clusterzuweisungen können wir auf eine beliebte Verallgemeinerung von k-Mitteln zurückgreifen: Erwartungsmaximierung oder kurz EM.
Die Erwartungsmaximierung wird häufig mit Mischungen von Gaußschen Verteilungen, also mehrdimensionalen Normalverteilungen, implementiert. Da das ein bisschen aufwendig ist, nennen wir diese Technik „Normale Mischungen“, weil JMP sie so nennt. Wir gehen davon aus, dass alle Daten, die wir beobachten, von stammen k mehrdimensionale Normalverteilungen, und wir wollen herausfinden, was diese Verteilungen sind.
Genau wie bei k-Mitteln verwendet Normal Mixtures zufällige Startpunkte, aber anstatt nur Zentren auszuwählen, wählt es einen zufälligen Mittelwert und eine Kovarianz für jede der k-Verteilungen. Auf den ersten Blick sehen diese vielleicht etwas verrückt aus, aber bleiben Sie bei uns.
Dies ist der Erwartungs- oder E-Schritt. Dann berechnen wir die Wahrscheinlichkeit, dass jeder Punkt zu jeder Verteilung gehört. Anstatt jedem Datenpunkt eine feste Zuordnung zu einem Cluster zu geben, sagen wir, dass er dazu gehört jeden Cluster mit bestimmten Wahrscheinlichkeiten.
Als nächstes folgt der M-Schritt. Wir berechnen die Verteilungsparameter neu, genau wie wir die neuen Zentren in k-Mitteln berechnet haben. Da jeder Datenpunkt mit einer gewissen Wahrscheinlichkeit zu jedem Cluster gehört, verwenden wir jeden Punkt, um die neuen Verteilungsparameter zu berechnen und sie anhand ihrer jeweiligen Wahrscheinlichkeiten, zu dieser Gruppe zu gehören, zu gewichten. Ein Punkt, der nur mit einer Wahrscheinlichkeit von 0,01 % zu Cluster A gehört, hat keinen großen Einfluss auf die Berechnung des Mittelwerts und der Kovarianz von Cluster A. Zumindest nicht im Vergleich zu einem Punkt, der mit einer Wahrscheinlichkeit von 75 % zum Cluster A gehört.
Wenn Sie sich für Mathematik interessieren, finden Sie unten die Formel für den neuen Mittelwert und die neue Kovarianz.



Diese Formeln sind im Wesentlichen die gleichen wie die, die wir normalerweise zur Berechnung von Mittelwerten und Kovarianz verwenden – jedoch mit dem Zusatz eins Dabei wird der Beitrag eines Datenpunkts zur Berechnung danach gewichtet, wie wahrscheinlich es ist, dass der Datenpunkt zur k-ten Verteilung gehört.
Sobald wir die neuen Parameter für jede unserer k Verteilungen haben, führen wir unseren E-Schritt erneut durch und berechnen die Wahrscheinlichkeit neu, dass jeder Punkt zu jeder Verteilung gehört.
Dann kommt natürlich der M-Schritt, dann ein weiterer E-Schritt … so lange, bis unsere Verteilungen „konvergieren“. Das bedeutet entweder, dass sich bei jeder Iteration eines E- und M-Schritts NICHTS ändert, oder dass sich zumindest nicht allzu viel ändert. Normalerweise schauen wir uns die Log-Likelihood an und stellen sicher, dass sie relativ stabil ist.
Jetzt haben wir die Wahrscheinlichkeit, dass jeder Datenpunkt zu jedem Cluster gehört. Wenn wir harte Clusterzuweisungen benötigen, können wir einfach für jeden Datenpunkt auswählen, dass er zu dem Cluster mit der höchsten Wahrscheinlichkeit gehört. Aber das Schöne an EM ist, dass wir die Unschärfe der Clustermitgliedschaft akzeptieren können. Wir können uns einen Datenpunkt ansehen und die Tatsache berücksichtigen, dass er zwar höchstwahrscheinlich zu Cluster B, aber auch sehr wahrscheinlich zu Cluster D gehört. Dabei wird auch die Tatsache berücksichtigt, dass es möglicherweise keine klaren Grenzen zwischen unseren Clustern gibt. Diese Gruppen bestehen aus überlappenden mehrdimensionalen Verteilungen, daher ist das Zeichnen klarer Linien möglicherweise nicht immer die beste Lösung.
Clustering in JMP
JMP hat das Clustering unglaublich einfach gemacht. Sie müssen lediglich zum Menü „Analysieren“ > „Clustering“ gehen. Es werden sowohl K-Mittel als auch EM mit Gaußschen Mischungen (im Menü „Normale Mischungen“ genannt) angeboten.


Wählen Sie einfach eines aus K-bedeutet oder Normale Mischungen , wählen Sie die Spalten aus, die Sie gruppieren möchten, und wählen Sie die Anzahl der Cluster aus, die Sie finden möchten. Klicken Gehen , und Sie werden Ihre Ausgabe haben! Wenn Sie die Clusterzuweisungen speichern möchten, klicken Sie einfach auf das rote Dreieck neben Ihrer Clusteranalyse und wählen Sie Cluster speichern !
Um eine Darstellung Ihrer Cluster anzuzeigen, klicken Sie auf das rote Dreieck und Wählen Sie Biplot .
Wenn Sie mehrere K's gleichzeitig ausprobieren möchten, fügen Sie diese einfach hinzu Reichweite Feld in der K-Mittel- oder Normalmischungsplattform. Ihre Ausgabe zeigt Ihnen nun die Informationen für jedes k! JMP wählt das beste k für Sie aus. Angezeigt unter Clustervergleich Speisekarte.
Für k-Mittel verwendet JMP (wie SAS) das kubische Clusterkriterium (dafür steht CCC), um auszuwählen, welches k am besten zu Ihren Daten passt. Höhere CCC-Werte sind besser und zeigen an, dass Ihre Cluster gut zu den Daten passen, ähnlich wie dies bei Silhouette-Scores der Fall ist. JMP wählt das k mit dem höchsten CCC-Wert als Ihren optimalen Cluster aus. Weitere Informationen zu CCC finden Sie unter Hier .

Für normale Mischungen verwendet JMP das AICc (Corrected Akaike Information Criteron) und das BIC (Bayesian Information Criterion), um das beste k auszuwählen. Sowohl AIC als auch BIC (wie Silhouette Scores und CCC) messen, wie gut ein Modell (hier Ihre Cluster) zu den Daten passt. Kleine AIC- und BIC-Werte weisen auf eine gute Modellanpassung hin, daher wählt JMP das k aus, das das ergibt am niedrigsten AIC/BIC-Werte (beachten Sie, dass einige AICc-Werte fehlen, da der Datensatz klein ist).
Abschluss
Jetzt wissen Sie, wie man es verwendet JMP um Ihre Daten mit k-means und Gaußschen Mischungsmodellen (oder Normalmischungen in JMP) zu gruppieren! Wenn Sie also einen supercoolen Datensatz erhalten, der keine Labels oder Wahrheitsdaten enthält, können Sie mit unbeaufsichtigtem ML immer noch einige ziemlich coole Erkenntnisse gewinnen.