Nhqazi
Nhqazi

Reputation: 768

How to find values of the input data in plotsommaphits

I have used SOM tool box in MATLAB or iris data set. following example and using the plotsomhits i can see that how many data values are in each neuron of my neuron grid of the SOM . However I wish to know actual data values which are grouped in every neuron of the given SOM configuration .Is there any way to do it. this is the example I used.

net = selforgmap([8 8]);
view(net)
[net,tr] = train(net,x);
nntraintool
plotsomhits(net,x)

Upvotes: 0

Views: 919

Answers (2)

user8392790
user8392790

Reputation: 31

You need to convert vector to indices first and then you can see what input values a neuron correspond to.

>> input_neuron_mapping = vec2ind(net(x))';

Now, look into the neuron's inputs.

For example, you want to see neuron input values for neuron 2.

>> neuron_2_input_indices = find(input_neuron_mapping == 2)
>> neuron_2_input_values = x(neuron_2_input_indices)

It will display all the input values from your data.

Read here for more details: https://bioinformaticsreview.com/20220603/how-to-get-input-values-from-som-sample-hits-plot-in-matlab/

Upvotes: 0

Ander Biguri
Ander Biguri

Reputation: 35525

not that hard. plotsomhits just plots "fancily" the results of the simulation of the net.

so if you simulate it and add the "hits" you have the result!

basicaly:

hits=sum(sim(net,x)');

In your net case this was my results, that coincide with the numbers in the plotsomehits

hits= 6     5     0     7    15     7     4     0     8    20     3     3     9     3     0     8     6     3    11     4     5     5     7    10     1

PD: you can learn a lot in this amazing SO answer:

MATLAB: help needed with Self-Organizing Map (SOM) clustering

Upvotes: 0

Related Questions