selforgmap
, and then I train it using train(net, trainingSet)
. I don't understand what to do next. I know that it's clustered the data I gave it into (hopefully) 10 clusters (one for each letter).P = load('-ascii', 'pattern'); T = load('-ascii', 'target'); % data needs to be translated P = P'; T = T'; T = T(find(sum(T')), :); mynet = selforgmap([10 10]); mynet.trainparam.epochs = 5000; mynet = train(mynet, P); P = load('-ascii', 'testpattern'); T = load('-ascii', 'testtarget'); P = P'; T = T'; T = T(find(sum(T')), :); Y = sim(mynet,P); Z = compet(Y); % this gives me a confusion matrix for supervised techniques: C = T*Z'
"How can I then label the clusters (given that I have a comparison pattern)?"
"Am I trying to turn this into a supervised learning problem when I do this?"
"How can I create a confusion matrix on (another) testing set to compare to the supervised algorithm?"
C <= 5)
, you could essentially create C!
matrices, and keep the one that minimizes your average classification error. In your case however, with C = 10,
this is, obviously, impractical and a grave overhead!Could this video be of any help? It doesn't answer your question but it shows that human interaction may be required to even select number of clusters. Automatically labeling clusters is even harder.
If you think about it there's no guarantee that clustering will be done based on the depicted number. Network might group digits based on width of the line or on the smoothing of the font, etc.