返回信息流我想用SVM将数据集进行划分,然后得到划分的超平面。方便的用法是使用MATLAB2017上的classification learner中的linear svm进行划分,然后我怎么得到w^T*x+b中的W和b的值呢?我之前试过用LIBSVM包进行划分,得到一个model的结构体,里面有
The 'svmtrain' function returns a model which can be used for future
prediction. It is a structure and is organized as [Parameters, nr_class,
totalSV, rho, Label, ProbA, ProbB, nSV, sv_coef, SVs]:
-Parameters: parameters
-nr_class: number of classes; = 2 for regression/one-class svm
-totalSV: total #SV
-rho: -b of the decision function(s) wx+b
-Label: label of each class; empty for regression/one-class SVM
-ProbA: pairwise probability information; empty if -b 0 or in one-class SVM
-ProbB: pairwise probability information; empty if -b 0 or in one-class SVM
-nSV: number of SVs for each class; empty for regression/one-class SVM
-sv_coef: coefficients for SVs in decision functions
-SVs: support vectors
根据这些我该怎么得到w^T*x+b中的W和b的值?两种方法,有一种可以即可。谢谢!
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #28129同步于 2018/1/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
svm训练得到model后怎么得到w^T*x+b中的W和b的值?
tiaoji
2018/1/22镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
我找到答案了,在使用LIBSVM时,在使用线性核函数的情况下
w = model.SVs' * model.sv_coef;
b = -model.rho;
if model.Label(1) == -1
w = -w
b = -b
end
使用RBF核函数,w没法解出来