Ist es richtig, Daten und / oder Gewichtsvektoren in einem SOM zu normalisieren?

Also bin ich ratlos über etwas, das einfach sein sollte:

Ich habe eine SOM für einen einfachen zweidimensionalen Datensatz 'play' geschrieben. Hier sind die Daten:

Sie können selbst 3 Cluster erkennen.

Nun gibt es zwei Dinge, die mich verwirren. Das erste ist, dass das Tutorial, das ich habe, die Daten normalisiert, bevor der SOM damit beginnt, daran zu arbeiten. Dies bedeutet, dass jeder Datenvektor auf die Länge 1 normiert wird (euklidische Norm). Wenn ich das mache, sehen die Daten so aus:

(Dies liegt daran, dass alle Daten auf den Einheitskreis projiziert wurden.)

Also, meine Frage (n) lauten wie folgt:

1) Ist das richtig? Das Projizieren der Daten auf den Einheitskreis scheint schlecht zu sein, da Sie 3 Cluster nicht mehr erkennen können ... Ist dies eine Tatsache für SOMs? (dh, dass sie nur auf dem Einheitskreis arbeiten).

2) Die zweite verwandte Frage ist, dass nicht nur die Daten auf die Länge 1 normalisiert werden, sondern auch die Gewichtungsvektoren jeder Ausgabeeinheit nach jeder Iteration. Ich verstehe, dass sie dies tun, damit die Gewichtsvektoren nicht "explodieren", aber es scheint mir falsch, da der springende Punkt der Gewichtsvektoren darin besteht, Entfernungsinformationen zu speichern. Wenn Sie sie normalisieren, verlieren Sie die Fähigkeit, richtig zu "gruppieren". Wie kann die SOM beispielsweise möglicherweise zwischen dem Cluster unten links und dem Cluster oben rechts unterscheiden, da sie auf die gleiche Weise zum Einheitskreis hinunterragen?

Das verwirrt mich sehr. Sollten die Daten in SOMs auf die Einheitslänge normiert werden? Sollten die Gewichtsvektoren auch normalisiert werden?

Vielen Dank!

BEARBEITEN

Hier sind die Daten, als .mat-Datei für MATLAB gespeichert. Es ist ein einfacher zweidimensionaler Datensatz.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage