First up, this is most certainly homework (so no full code samples please). That said...
I need to test an unsupervised algorithm next to a supervised algorithm, using the Neural Network toolbox in Matlab. The data set is the UCI Artificial Characters Database. The problem is, I've had a good tutorial on supervised algorithms, and been left to sink on unsupervised.
So I know how to create a self organising map using 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).
Two questions then:
- 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?
I think I'm missing something conceptual or jargon-based here - all my searches come up with supervised learning techniques. A point in the right direction would be much appreciated. My existing code is below:
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'