This initializes the codebook as a simple, straight PCA-oriented 2-dimensional grid.
The involved changes include a slight update of the initialization logic (initialization functions return point data instead of indices). New usage:
BuildSOM( ... no arguments ...) uses the random initialization
BuildSOM(init=T) uses the original Initialize function
BuildSOM(init=T, initf=Initialize_KWSP) is the more verbose default-less version of the previous
BuildSOM(init=T, initf=Initialize_PCA) is the PCA-based initialization
There are a few tunables involved in the process which would probably deserve extra attention:
the sdev_scale default value needs to get tested on more data (but overall it works pretty good for me even in this simple form)
PCA-based initialization basically simulates the "unfolding" of the SOM, which sometimes takes first 20% of the process. It is therefore possible to lower rlen and the initial threshold parameter settings if using this initialization.
Replacing the initial part of high-plasticity high-alpha SOM training can make the training very predictable and repeatable; but testing on more datasets is needed to see whether anything isn't negatively affected by the `simplification'. I did not see any problems so far, though.
This initializes the codebook as a simple, straight PCA-oriented 2-dimensional grid.
The involved changes include a slight update of the initialization logic (initialization functions return point data instead of indices). New usage:
BuildSOM( ... no arguments ...)
uses the random initializationBuildSOM(init=T)
uses the original Initialize functionBuildSOM(init=T, initf=Initialize_KWSP)
is the more verbose default-less version of the previousBuildSOM(init=T, initf=Initialize_PCA)
is the PCA-based initializationThere are a few tunables involved in the process which would probably deserve extra attention:
sdev_scale
default value needs to get tested on more data (but overall it works pretty good for me even in this simple form)rlen
and the initialthreshold
parameter settings if using this initialization.Thanks a lot! -mk