É correto normalizar dados e / ou vetores de peso em um SOM?
Então estou ficando perplexo com algo que (deveria) ser simples:
Eu escrevi um SOM para um simples conjunto de dados bidimensionais 'play'. Aqui estão os dados:
Você pode criar 3 clusters por conta própria.
Agora, há duas coisas que me confundem. A primeira é que o tutorial que tenho, normaliza os dados antes que o SOM trabalhe nele. Isto significa que normaliza cada vetor de dados para ter comprimento 1. (norma euclidiana). Se eu fizer isso, os dados serão assim:
(Isso ocorre porque todos os dados foram projetados no círculo da unidade).
Então, minhas perguntas são as seguintes:
1) Isso está correto? Projetar os dados no círculo unitário parece ser ruim, porque você não pode mais identificar 3 clusters ... Isso é um fato da vida dos SOMs? (isto é, eles só trabalham no círculo unitário).
2) A segunda questão relacionada é que não apenas os dados são normalizados para ter comprimento 1, como também os vetores de peso de cada unidade de saída após cada iteração. Eu entendo que eles fazem isso para que os vetores de peso não "explodam", mas parece errado para mim, já que o objetivo dos vetores de peso é reter informações de distância. Se você os normalizar, perderá a capacidade de se "agrupar" adequadamente. Por exemplo, como o SOM pode possivelmente distinguir entre o cluster no canto inferior esquerdo, do cluster no canto superior direito, uma vez que eles projetam para baixo para o círculo da unidade da mesma maneira?
Estou muito confuso com isso. Os dados devem ser normalizados para o tamanho da unidade nos SOMs? Os vetores de peso também devem ser normalizados?
Obrigado!
EDITAR
Aqui estão os dados, salvo como um arquivo .mat para o MATLAB. É um conjunto de dados bidimensional simples.