The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here

regarding the kernel weight output of libsvm operator

huaiyanggongzihuaiyanggongzi Member Posts: 39 Contributor II
edited November 2018 in Help
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?

Answers

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