Matlab libsvm - how to find the w coefficients

后端 未结 1 1208
眼角桃花
眼角桃花 2020-12-24 07:58

How can find what the vector w is, i.e. the perpendicular to the separation plane?

相关标签:
1条回答
  • 2020-12-24 08:51

    This is how I did it here. If I remember correctly, this is based on how the dual form of the SVM optimisation works out.

    model = svmtrain(...);
    w = (model.sv_coef' * full(model.SVs));
    

    And the bias is (and I don't really remember why its negative):

    bias = -model.rho;
    

    Then to do the classification (for a linear SVM), for a N-by-M dataset 'features' with N instances and M features,

    predictions = sign(features * w' + bias);
    

    If the kernel is not linear, then this won't give you the right answer.

    For more information see How could I generate the primal variable w of linear SVM? , from the manual of libsvm.

    0 讨论(0)
提交回复
热议问题