I've always been fascinating by machine learning from data. I was reading about self-organizing map (SOM) and I wanted to try to implement a little program about it.
The program is based on the Kohonen maps, you create a NxM grid of neurons and trains it with a input data set. The learning process consists on find the similarities between input data and stored data from the map. After a while it will group the inputs with similar attributes together.
The program takes a CSV file as input based on numeric attributes and generate a graphical output. The workflow is quite simple as you can see in the following picture:
Data inputs come form a CSV separated by semicolon (;) where the first row is the description of the column attribute and each row is one input to the network. By default, it takes the last column as class attribute.
The following example is from the iris data set using in the video simulation:
Sepal length;Sepal width;Petal length;Petal width;Specie 5.1;3.5;1.4;0.2;0 4.9;3.0;1.4;0.2;0 4.7;3.2;1.3;0.2;0 4.6;3.1;1.5;0.2;0 ...
The following video shows a SOM generated from the iris flower data set:
Feel free to contact me using mail or contact form