Ich versuche, eine Anwendung zu entwickeln, die SOM bei der Analyse von Daten verwendet. Nach Abschluss des Trainings kann ich jedoch keine Möglichkeit finden, das Ergebnis zu visualisieren. Ich weiß, dass U-Matrix eine der Methoden ist, aber ich kann es nicht richtig verstehen. Daher frage ich nach einem spezifischen und detaillierten Beispiel, wie man U-Matrix konstruiert.
Ich lese auch eine Antwort in U-Matrix- und selbstorganisierenden Karten aber es bezieht sich nur auf 1 Reihe Karte, wie ungefähr 3x3 Karte? Ich weiß das für 3x3 Karte:
%Vor%muss eine 5x5 Matrix erstellt werden:
%Vor%aber ich weiß nicht, wie man u-Gewicht u (1,2,4,5), u (2,3,5,6), u (4,5,7,8) und u ( 5,6,8,9).
Schließlich, nach dem Aufbau der U-Matrix, gibt es eine Möglichkeit, sie unter Verwendung von Farbe, z.B. Heat Map?
Vielen Dank für Ihre Zeit.
Prost
Ich weiß nicht, ob Sie daran interessiert sind, aber ich habe diesen Link gefunden Ссылка was sehr genau erklärt, wie man die U-Matrix berechnet. Hoffe es hilft.
Übrigens, die Seite, auf der ich gefunden habe, dass der Link mehrere Ressourcen hat, die sich auf SOMs beziehen, lasse ich hier, falls jemand interessiert ist: Ссылка
Die wesentliche Idee einer Kohonen-Map ist, dass die Datenpunkte auf a abgebildet werden Gitter , das oft ein 2D-Rechteckgitter ist.
In den einfachsten Implementierungen wird das Gitter durch Erstellen eines 3D initialisiert Array mit diesen Dimensionen:
%Vor%Dies ist die U-Matrix .
Breite und Höhe werden vom Benutzer gewählt; number_features ist nur die Nummer von Features (Spalten oder Felder) in Ihren Daten.
Intuitiv wird hier nur ein 2D-Raster mit den Dimensionen w * h erstellt (Wenn z. B. w = 10 und h = 10 ist, dann hat dein Gitter 100 Zellen) In jede Zelle wird ein zufälliges 1D-Array platziert (manchmal auch "Referenztupel" genannt) deren Größe und Werte durch Ihre Daten eingeschränkt sind.
Die Referenztupel werden auch als Gewichte bezeichnet.
Wie wird die U-Matrix gerendert?
In meinem Beispiel unten bestehen die Daten aus rgb-Tupeln, also den Referenztupeln haben eine Länge von drei und jeder der drei Werte muss zwischen 0 und 255 liegen).
Mit diesem 3D-Array ("Gitter") beginnen Sie die Hauptiterationsschleife Der Algorithmus positioniert iterativ jeden Datenpunkt so, dass er anderen ähnlich ist.
Wenn Sie es im Zeitverlauf plotten (Iterationsnummer), können Sie den Cluster visualisieren Bildung.
Das Plotting-Tool, das ich dafür verwende, ist die brillante Python-Bibliothek, Matplotlib , welches das Gitter direkt plottet, indem es einfach in die Funktion imshow übergeben wird .
Im Folgenden finden Sie acht Momentaufnahmen des Fortschritts eines SOM-Algorithmus von der Initialisierung bis zu 700 Iterationen. Das neu initialisierte Gitter (iteration_count = 0) wird oben links angezeigt; das Ergebnis der letzten Iteration im rechten unteren Bereich.
Alternativ können Sie eine unterlagerte Bildgebungsbibliothek (in Python, z. B. PIL) verwenden und die Referenztupel nacheinander auf das 2D-Raster übertragen:
%Vor%Hier img ist eine Instanz der PIL-Klasse Image . Hier wird das Bild durch wiederholtes Iterieren über das Raster erstellt. Für jedes Pixel wird putpixel dreimal im img aufgerufen, wobei die drei Aufrufe natürlich den drei Werten in einem rgb-Tupel entsprechen.
Tags und Links neural-network machine-learning