Czy należy normalizować dane i / lub wektory wagi w SOM?

Jestem więc pod wrażeniem czegoś, co (powinno) być proste:

Napisałem SOM dla prostego dwuwymiarowego zestawu danych „play”. Oto dane:

Możesz sam zobaczyć 3 klastry.

Są dwie rzeczy, które mnie mylą. Po pierwsze, samouczek, który mam, normalizuje dane, zanim SOM zacznie nad nimi pracować. Oznacza to, że normalizuje każdy wektor danych, aby mieć długość 1. (Norma euklidesowa). Jeśli to zrobię, dane będą wyglądać następująco:

(Dzieje się tak, ponieważ wszystkie dane zostały rzutowane na okrąg jednostki).

Moje pytania są następujące:

1) Czy to prawda? Wyświetlanie danych na okręgu jednostki wydaje się złe, ponieważ nie można już dostrzec 3 klastrów ... Czy to jest faktem dla SOM? (tj. że działają tylko na okręgu jednostkowym).

2) Drugie powiązane pytanie brzmi, że dane są nie tylko znormalizowane tak, aby miały długość 1, ale także wektory wagowe każdej jednostki wyjściowej po każdej iteracji. Rozumiem, że robią to tak, że wektory wagi nie „wysadzają”, ale wydaje mi się to niewłaściwe, ponieważ cała waga polega na zachowaniu informacji o odległości. Jeśli je znormalizujesz, utracisz zdolność do „klastra”. Na przykład, w jaki sposób SOM może odróżnić klaster w lewym dolnym rogu, od klastra w prawym górnym rogu, ponieważ rzutuje on w dół do okręgu jednostki w ten sam sposób?

Jestem tym bardzo zdezorientowany. Czy dane powinny być znormalizowane do długości jednostki w SOM? Czy wektory wagi również powinny być znormalizowane?

Dzięki!

EDYTOWAĆ

Oto dane, zapisane jako plik .mat dla MATLAB. Jest to prosty zestaw danych dwuwymiarowych.

questionAnswers(2)

yourAnswerToTheQuestion