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'); 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); C = T*Z'