regarding the kernel weight output of libsvm operator

Unknown
edited November 5 in Community Q&A
I applied libsvm operator for several data sets, and found that the kernel weight values of the built model tend to be always positive. For instance, I  can have
i 1.9108829072778841
cp 1.762460806463015
medimmune 1.630318586802012
However, according to SVM theory, the weight vector should satisfy equation of
wx+b =0
The x is the points located on the decision hyperplane. The entries in the weight vector cannot always be larger than zero. Does the weight vector output by Rapidminer has a different physical meaning than the SVM theory?
Tagged:

Answers

  • MariusHelf
    MariusHelf New Altair Community Member
    Well, if you have negative values in x, then w does not necessarily need negative values.
    E.g. w=(1,1,1), b = 0 specifies a plane where x1 + x2 + x3 = 0, which is perfectly realizable.

    Best regards,
    Marius
  • Marius, thanks.

    With respect to the data set, the feature vectors are constructed using binary occurrence for text files, which cannot have any negative x values. However, all of the weight values are still bigger than zero. I tried several data sets and observed the same scenario. Thanks.
    Marius wrote:

    Well, if you have negative values in x, then w does not necessarily need negative values.
    E.g. w=(1,1,1), b = 0 specifies a plane where x1 + x2 + x3 = 0, which is perfectly realizable.

    Best regards,
    Marius
  • MariusHelf
    MariusHelf New Altair Community Member
    Well, good point. Without any further investigation I can only guess: maybe the libSVM operator only outputs the absolute values of the weights.
    But despite of the weight representation, the libSVM obviously does quite a good job. However, if you need signed weights, you should try the Support Vector Machine operator (without any additions to the name).

    Best regards,
    Marius