问题
I am also working on a project that requires clustering of time series data. I am using the SOM toolbox that works in MATLAB for clustering purpose and stuck with the following problem:
"How can we determine which data belongs to which cluster?" SOM randomly chooses data sample from dataset and finds BMU for each data sample. As far as I know, data sample identifier is not regarded as dimension of data in SOM algorithm. If it is the case then how can we track the samples? I don't think that som_bmus
solves this issue. Any idea how you do it without changing any functions included in SOM toolbox?
回答1:
y=vec2ind(output)
will give you the index number for the output generated by MATLAB.With this information,you can see which input data belongs to which neuron#.
Just use the above code directly in your script, it will do the rest.
回答2:
I know this is an old topic, but maybe still usefull for others.
Is your question on determining a what should be a cluster or is it which data belongs to which neuron? If it is the last I believe GulshanS has answered correctly but if it is on the question how you determine what is a cluster and what not it is still unanswered. You can do this with neighbor connections, dark regions mostly show 'walls' which is a break line for a cluster.
Cluster analysis is something different than what SOM does. SOM determines connections and assigns BMU which end up being a pre-determined grid with neurons. Multiple data inputs can belong to a neuron. Multiple neurons can belong to a cluster but these are not the output of SOM.
来源:https://stackoverflow.com/questions/19128859/determining-cluster-membership-in-som-self-organizing-map-for-time-series-data