Selbstorganisierende Karten
Selbstorganisierende Karten (SOMs) sind eine unbeaufsichtigte Form des maschinellen Lernens, die zum Clustern von Daten mit vielen Funktionen verwendet werden kann. Das SOM gruppiert Ihre Daten nicht nur, sondern ordnet sie auch einer niedrigeren Dimension (normalerweise zwei Dimensionen) zu, sodass Sie die Cluster einfacher visualisieren können.
Traditionell werden SOMs als eine Form eines künstlichen neuronalen Netzwerks erklärt, bei dem Merkmale Eingaben und Cluster Ausgaben sind. Aber so ziemlich alles an der Ausbildung und Struktur eines SOM ist anders von traditionellen Feedforward-Neuronalen Netzen, auch wenn einige der Begriffe gleich sind. Wenn Sie also in Bezug auf das neuronale Netzwerk mit einer leeren Tafel beginnen, können Sie dies trotzdem befolgen. 
Zur Vereinfachung definiere ich vorab einige Begriffe und deren Bedeutung:
Knoten . Wir nennen sie Knoten, weil wir Begriffe aus neuronalen Netzen übernehmen, aber die Knoten in SOMs repräsentieren die Zentren jedes unserer Cluster. Die Anzahl der Knoten, die Sie haben, ist die Anzahl der Cluster, die Sie haben werden.
Gewicht . Wir entlehnen auch den Begriff „Gewicht“ von Neural Networks, aber die Gewichte in SOMs sind unterschiedlich. Gewichte stellen die räumliche Position des Knotens dar (wie bei K-Means haben wir Clusterzentren). Die Gewichte haben die gleiche Dimension wie unsere Datenvektoren.
Nachbarschaft . Die Nachbarschaft eines Knotens umfasst alle Knoten, die ihm ausreichend nahe sind. Wie nah „ausreichend“ nah ist, wird sich ändern, wenn wir unser SOM trainieren.
Lernrate . Die Lernrate spiegelt wider, wie stark wir unsere Knotengewichte bei jeder Iteration ändern. Große Lernraten bedeuten, dass unsere Gewichte stark schwanken können. Sehr kleine Lernraten bedeuten, dass sich unsere Gewichte gegenüber ihren Anfangswerten kaum ändern.
Gitter/Karte. Die Anordnung/das Raster der Knoten in unserer Karte.

Inkrementelles Lernen SOM
Um Ihnen eine bessere allgemeine Vorstellung davon zu geben, was SOMs tun, schauen wir uns zunächst die trainierten SOMs an iterativ, Dadurch können wir jeden Schritt bei der SOM-Erstellung einzeln sehen. Dies ist nicht die Methode, die JMP implementiert. Um recheneffizient zu sein, trainiert JMP seine SOMs mit dem Batch-Methode, was wir weiter unten sehen werden.
Überblick . Es gibt fünf Hauptschritte, um ein SOM iterativ zu trainieren:
- Initialisieren die Gewichte der SOM-Knoten. Dies kann entweder zufällig erfolgen oder es können bestimmte Startgewichte ausgewählt werden, sodass sie effizient über alle möglichen Eingabewerte verteilt werden (was JMP tut).
- Wählen ein zufälliger Datenpunkt aus Ihrem Datensatz.
- Berechnen Sie, welchem Knoten der Datenpunkt am nächsten liegt . Wir können dies tun, indem wir den Abstand zwischen unserem Datenpunkt und jedem Knotengewicht berechnen. Der nächstgelegene Knoten wird als Knoten bezeichnet Am besten passende Einheit ( BMU kurz gesagt).
- Sobald wir die BMU kennen, Wir berechnen, welche Knoten sich in der Nähe der BMU befinden . Mit anderen Worten, welche Knoten in der Karte ausreichend nah an der BMU liegen.
- Wir Aktualisieren Sie das Gewicht des BMU und alle seine Nachbarn, damit ihre Gewichte unserem Datenpunkt ähnlicher sind. Im Wesentlichen sorgen wir dafür, dass unsere Cluster besser zu unseren Daten passen. Knoten, die weiter von der BMU entfernt sind, werden weniger verändert als Knoten in der Nähe der BMU (und der BMU selbst).
Wir wiederholen die Schritte 2–5, bis wir unsere maximale Anzahl an Iterationen erreicht haben oder sich unsere Knotengewichte nicht mehr ändern.
Im Detail . Schauen wir uns die Schritte 3 bis 5 genauer an, um intuitiver zu verstehen, was vor sich geht.
Bevor wir anfangen, Lassen Sie sich nicht von der Mathematik davon abhalten, diesen Abschnitt zu lesen . Ich werde Ihnen Formeln zeigen, aber es ist in Ordnung, wenn Sie nicht die gesamte Mathematik verstehen, solange Sie die allgemeine Idee dahinter kennen Warum Wir verwenden diese Mathematik.
Die BMU finden . Es gibt viele Möglichkeiten, den Abstand zwischen zwei n-dimensionalen Vektoren zu berechnen; Bei SOMs werden häufig Maße wie die euklidische Distanz oder die Kosinusdistanz angezeigt.


In diesem Fall verwenden wir die euklidische Distanz. Um die BMU zu berechnen, berechnen wir den euklidischen Abstand zwischen unserem ausgewählten Datenvektor und jedem der Gewichtsvektoren für unsere Knoten. Die BMU hat den geringsten Abstand.
Nachbarschaften berechnen . Durch die Aktualisierung mehrerer Knoten/Clusterzentren werden SOMs von einfacheren Methoden wie K-Means getrennt. Wir werden nicht nur das Gewicht unserer BMU ändern, um näher am Datenvektor zu sein, sondern wir werden auch Knoten ändern, die unserer Meinung nach ausreichend nahe an der BMU liegen.
Knoten werden als in der Nachbarschaft einer BMU betrachtet, wenn sie sich innerhalb eines bestimmten Radius um die BMU befinden. Mit anderen Worten, wenn ein Knoten innerhalb eines Kreises mit Radius liegt, R , zentriert bei der BMU, gilt es als Nachbar.
Zunächst möchten wir eine größere Nachbarschaft nutzen und viele Knoten ändern. Aber mit der Zeit möchten wir, dass unsere Nachbarschaften kleiner werden, damit wir unser SOM noch weiter „feinabstimmen“ können. Denken Sie darüber nach, wie wir beim Schleifen oft mit Schleifpapier mit großer Körnung beginnen und uns dann zu Schleifpapier mit feinerer Körnung vorarbeiten.
Mathematisch können wir dies erreichen, indem wir eine Formel für unseren Nachbarschaftsradius verwenden: R , das hängt von der Zeit ab und wird kleiner, je weiter wir unser SOM trainieren. Irgendwann wird das Viertel so klein sein, dass es nur noch die BMU enthalten wird.
Knotengewichte werden aktualisiert . Sobald wir wissen, welche Knotengewichte wir aktualisieren möchten, berechnen wir, wie stark sie geändert werden müssen. Die Gewichte der Knoten, die der BMU am nächsten liegen, werden sich am *größten* ändern, und die Knoten, die sich am äußersten Rand unserer Nachbarschaft befinden, werden sich nur sehr wenig ändern. Alle Knotengewichte werden jedoch näher an den aktuellen Datenvektor herangezogen.
Wir tun dies mit dieser Formel (keine Sorge, ich werde Sie gleich durch die verschiedenen Teile führen):

Die Ws stellen das Knotengewicht dar. W(t+1) ist unser Aktualisiert Gewicht, W(t) ist unser aktuell Gewicht. Wenn wir den letzten Teil der rechten Seite für einen Moment vereinfachen, können wir sehen, dass das neue, aktualisierte Gewicht unser altes Gewicht multipliziert mit etwas ist Einstellung .

(V(t) - W(t)) ist der Abstand zwischen unserem Datenvektor und dem aktuellen Knotengewicht. Dies zeigt, dass unsere Anpassung davon abhängt, wie weit der Datenvektor und der Knoten voneinander entfernt sind.

L(t) ist die Lernrate. Genau wie unsere Nachbarschaftsfunktion (eigentlich GENAU wie unsere Nachbarschaftsradiusfunktion…) beginnt unsere Lernrate bei einem relativ großen Wert. und wird mit der Zeit kleiner (der exponentielle Teil erledigt das für uns).

Wenn wir zum ersten Mal mit dem Training unseres SOM beginnen, ist unsere Lernrate hoch, aber mit der Zeit möchten wir, dass unsere Knotengewichte stabiler werden, also verringern wir unsere Lernrate.

Nicht nur, dass die Lernrate im Laufe der Zeit abnimmt Zeit , aber die Änderung unserer Knotengewichte nimmt auch mit zunehmender Knotengröße ab weiter von unserer BMU.
ist ein Gaußscher Kern, der diesen Zerfall mathematisch darstellt. ( dist ist der Abstand zwischen dem Knoten, den wir ändern, und der BMU in der Karte.)

Für einen gegebenen Radius r(t) hat der Gaußsche Kern die folgende Form:
Wenn der Abstand zwischen dem Knoten, den wir aktualisieren, und der BMU groß ist, wird klein sein. Wenn sich der Knoten, den wir aktualisieren, umgekehrt in der Nähe der BMU befindet, wird größer sein.
Wir haben endlich die ganze Formel dekonstruiert!

Zur Rezension:
W(t) ist das aktuelle Gewicht eines Knotens.

bewirkt, dass Knoten, die weiter von der BMU entfernt sind, geändert werden weniger als Knoten in der Nähe der BMU (und der BMU selbst).
L(t) ist unsere abnehmende Lernrate. Mit der Zeit nehmen wir „Feinabstimmungen“ vor und nehmen kleinere Änderungen vor als zu Beginn des Trainings.
V(t) – W(t) ist der Abstand zwischen dem Datenvektor und dem Knotengewicht (beide n-dimensional). Je größer der Abstand, desto mehr Dinge werden sich ändern.
Wenn Sie es bis hierher geschafft haben, haben Sie sich eine Pause verdient! Wir haben die Art und Weise überprüft, wie SOMs iterativ trainiert werden. Dies zeigte uns die allgemeinen Ideen, die SOMs einzigartig machen: nämlich die Art und Weise, wie wir je nach Bedarf mehrere Knotengewichte aktualisieren Zeit, Abstand von der BMU und Abstand zwischen dem Datenvektor und dem Knotengewicht.
Wenn Sie jemals anderswo über SOMs gelesen haben, sind die Leute begeistert, dass SOMs „die Topologie bewahren“, was nur eine schicke Art ist zu sagen, dass Knoten, die im mehrdimensionalen Raum nahe beieinander liegen, in unserem SOM auch nahe beieinander liegen Gitter, sobald wir es trainiert haben. Dies hilft uns, unsere Daten mithilfe des SOM-Rasters zu visualisieren, da es einfach ist, Dinge in zwei Dimensionen grafisch darzustellen, in mehreren Dimensionen jedoch viel schwieriger.
Das Erlernen des iterativen SOM-Trainings ist hilfreich, um diese Eigenschaften zu verstehen, aber es ist nicht recheneffizient. Aus diesem Grund verwendet JMP das Charge Trainingsmethode, um die SOM-Berechnungen tatsächlich durchzuführen.
Batch-Lernen von SOM
Dieser Algorithmus ist der auf der JMP-Website beschriebene. Anstatt unseren SOM jeweils einen Datenvektor zu trainieren, können wir alle Datenvektoren gleichzeitig verwenden!
Hier sind die Schritte:
- Initialisieren die Gewichte der SOM-Knoten (dies gilt auch für die iterative Methode)
- Alles auf einmal, Berechnen Sie die BMUs für jeden Datenvektor in unserem Trainingssatz.
- Berechnen Sie die neuen Knotengewichte indem Sie diese Formel verwenden:

ist die Anzahl der Datenvektoren, deren BMU Knoten j ist,
ist der Mittelwert aller dieser Datenvektoren und ist die Nachbarschaftsfunktion, die entscheidet, welche Knoten geändert werden und um wie viel. Es ähnelt dem
in unserem inkrementellen Trainingsalgorithmus.
4. Wiederholen Sie 2 und 3, bis unser SOM konvergiert ist.
Die Mathematik kann schwieriger zu verstehen sein, wenn alles auf einmal geschieht, aber die Grundvoraussetzung des Batch-Learning-Algorithmus besteht darin, dass wir unsere Knoten nicht als Reaktion darauf aktualisieren eins Datenvektor, wir aktualisieren sie als Reaktion darauf alle die Datenvektoren auf einmal (so ähnlich wie K-Means…). Und zum Glück verkürzt diese Methode häufig die Zeit, die JMP zum Trainieren Ihres SOM benötigt.
Im JMP
In JMP befindet sich die SOM-Option im K-Means-Menü. Lassen Sie uns ein SOM verwenden, um einige Fast-Food-Hamburger aus verschiedenen amerikanischen Restaurants zu gruppieren. Gehe zu Analysieren > Clustering > K-Mittel . Das K-Means-Cluster-Fenster wird geöffnet. Klicken Sie auf alle Variablen, die Sie verwenden möchten, und ziehen Sie sie in die Y Feld und klicken Sie OK .
In der Systemsteuerung gibt es ein Dropdown-Menü für Methode. Wählen Selbstorganisierende Karte . Von hier aus können Sie die Größe Ihres Rasters auswählen. Wir machen 2x2, was uns vier rechteckig angeordnete Knoten ergibt. Klicken GEHEN .
Unsere Ausgabe zeigt uns automatisch die Mittelwerte jedes unserer vier Cluster. Wir können diese Clusterzuweisungen speichern, indem wir zum roten Dreieck in unserem SOM-Grid-Menü gehen und „ Cluster speichern “. Im selben Menü können wir auch „ Biplot ” um eine visuelle Darstellung unseres SOM zu sehen. JMP zeichnet die Knoten/Cluster nach den ersten beiden Hauptkomponenten auf. Hier sieht es so aus, als ob Cluster 1 (oben) ziemlich weit von den anderen drei entfernt ist. Wir können das später im Graph Builder überprüfen.

Selbst wenn wir einige unserer Variablen untersuchen, können wir erkennen, warum Cluster 1 so anders war. Es enthält absolut KEIN Protein. Wenn wir uns unseren Datensatz ansehen, können wir erkennen, dass es sich bei den Artikeln in Cluster 1 tendenziell um Desserts handelt. 
Cluster 2 hingegen ist reich an Kalorien, Eiweiß und Fett! Wenn Sie nach dem Verzehr noch lange wach bleiben möchten, sollten Sie auf diese Lebensmittel achten.
Abschluss
Selbstorganisierende Karten sind ein nützliches Werkzeug zum Gruppieren Ihrer Daten, indem Sie eine Karte erstellen, die potenziell hochdimensionale Daten aufnimmt und sie in eine viel besser verwaltbare 2D-Form umwandelt. In JMP , SOMs sind genauso einfach zu implementieren wie K-Means (auch wenn die Mathematik dahinter viel komplizierter ist), was haben Sie also zu verlieren, wenn Sie sie ausprobieren?
Selbstorganisierende Karten (SOMs) sind eine unbeaufsichtigte Form des maschinellen Lernens, die zum Clustern von Daten mit vielen Funktionen verwendet werden kann. Das SOM gruppiert Ihre Daten nicht nur, sondern ordnet sie auch einer niedrigeren Dimension (normalerweise zwei Dimensionen) zu, sodass Sie die Cluster einfacher visualisieren können.
Betreff: Selbstorganisierende KartenHallo Chelsea
Haben Sie ein Beispiel für die Verwendung des SOM in JMP zur Dimensionsreduzierung?
Normalerweise verwende ich SOM zum Clustering, aber ich weiß, dass es auch zur Reduzierung der Anzahl von Prädiktoren verwendet werden kann.
Danke
Felice