RapidMiner

RapidMiner

does rapidminer allow a 6 class (mutually exculsive) SVM classification

Regular Contributor

does rapidminer allow a 6 class (mutually exculsive) SVM classification

Hi,

I would like to train SVM to classify texts/sentences into 6 classes (multi class). I read somewhere that libSVM supports multiple classes. Basically I want to classify sentences only to one of the classes (not more than one). You see the difference. The sentence can belong to only one of the SIX classes. Will rapidminer allow this? which is the best SVM operator for this. I hope it is not restricted to a two class problem only. Please help.
3 REPLIES
Regular Contributor

Re: does rapidminer allow a 6 class (mutually exculsive) SVM classification

I tried libSVM as the description mentions multiclass but it dint seem to do anythign with 5 of my classes :

PerformanceVector:
accuracy: 24.81% +/- 3.03% (mikro: 24.81%)
ConfusionMatrix:
True: low mediumhigh verylow mediumlow high veryhigh
low: 0 0 0 0 0 0
mediumhigh: 0 0 0 0 0 0
verylow: 0 0 0 0 0 0
mediumlow: 0 0 0 0 0 0
high: 27 26 9 20 32 15
veryhigh: 0 0 0 0 0 0
kappa: 0.000 +/- 0.000 (mikro: 0.000)
ConfusionMatrix:
True: low mediumhigh verylow mediumlow high veryhigh
low: 0 0 0 0 0 0
mediumhigh: 0 0 0 0 0 0
verylow: 0 0 0 0 0 0
mediumlow: 0 0 0 0 0 0
high: 27 26 9 20 32 15
veryhigh: 0 0 0 0 0 0
Regular Contributor

Re: does rapidminer allow a 6 class (mutually exculsive) SVM classification

In the results it also says


Kernel Model
Total number of Support Vectors: 129
Bias (offset): -0.037

Feature weight calculation only possible for two class learning problems.
Please use the operator SVMWeighting instead.

can someone help? thanks
Super Contributor

Re: does rapidminer allow a 6 class (mutually exculsive) SVM classification

Did you optimize the SVM?
For text classification in most cases a linear SVM works quite well, but you should try different values for the C parameter (e.g. from 1E-6 to 100 on a logarithmic scale). You can use the Optimize Parameters for this.

To get more control on how the multi-class SVM works you can also use the Polynominal by Binominal Classification operator. It trains and combines several SVM models that each separate one class from all the others. On application, all models are applied, and the class with the highest confidence is predicted. Internally the libSVM does the same, but you never know what exactly is happening (unless you read a lot of documentation and/or source code).

Best regards,
Marius