🎉Community Raffle - Win $25

An exclusive raffle opportunity for active members like you! Complete your profile, answer questions and get your first accepted badge to enter the raffle.
Join and Win

regarding the kernel weight output of libsvm operator

User: "winecoding"
New Altair Community Member
Updated by Jocelyn
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?

Find more posts tagged with

Sort by:
1 - 3 of 31
    User: "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
    User: "winecoding"
    New Altair Community Member
    OP
    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
    User: "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