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

lavramulavramu Member Posts: 16 Contributor II
edited November 2018 in Help
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.

Answers

  • lavramulavramu Member Posts: 16 Contributor II
    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
  • lavramulavramu Member Posts: 16 Contributor II
    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
  • MariusHelfMariusHelf RapidMiner Certified Expert, Member Posts: 1,869 Unicorn
    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
Sign In or Register to comment.