Orange Forum • View topic - problems with MultiClass one to one using an svm

problems with MultiClass one to one using an svm

A place to ask questions about methods in Orange and how they are used and other general support.

problems with MultiClass one to one using an svm

Postby herteld » Thu Mar 08, 2012 5:17

I'm having trouble trying to design a multi-class one to one classification schema using the orange widgets.
I have 3 classes (c1, c2, c3) and I want to train two svms (c1 vs c2) and (c1 vs c3). Then I want to take the output from (c1 vs c2) where the class was predicted to be c2 and combine it with the other svm's output (c1 vs c3) where the class was predicted to be c3 and input them into a third svm (c2 vs c3). In order to get only c2 and c3 class examples, I'm using two 'select' widgets to get data where both predicted and actual classes are only c2 and c3 (svm='c2' and cls='c2' for one set of data plus svm='c3' and cls='c3' for the other).
Image

I'm thinking this would eliminate the c1 class. However, when I now feed this into a 'concatenate' widget, I get the c2 class okay but the c3 class is replace by the c1 class for svm and a '?' for the cls attributes. This causes the third svm to throw an error message.
I'm not sure if I'm doing this the right way as it seems a bit complex to do it this way. Also, I'm going to need to deal with the misclassified c1 class samples somehow in the end. If someone can direct me to a help page on doing this type of multiclassification it would be helpful.

Dona

P.S. There seems to have been a MultiClass SVM Learner class somewhere but I looks like it was removed??? Why?
Or, was it folded into the SVMLearner class? If so, how do you use it for multiclass? I didn't see any help page on this.

Re: problems with MultiClass one to one using an svm

Postby Ales » Fri Mar 09, 2012 10:50

herteld wrote:I'm not sure if I'm doing this the right way as it seems a bit complex to do it this way.
The SVMLearner (LibSVM implementation - from the SVM widget) supports multi class learning (in fact it uses one-to-one scheme internally) so there is no need to do this manually in the canvas.

herteld wrote:P.S. There seems to have been a MultiClass SVM Learner class somewhere but I looks like it was removed??? Why?

It is still here http://orange.biolab.si/doc/reference/Orange.classification.svm/#Orange.classification.svm.MultiClassSVMLearner, but it is not available in the canvas (unless you use the Python Script widget)
The name the is bit confusing as it seems to indicate that the other svm learners do not support multiclass learning. This is not the case - as mentioned SVMLearner uses one-to-one scheme to learn multi class problems. Maybe this should be made more clear in the documentation.


Return to Questions & Support



cron