BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #28129同步于 2018/1/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

svm训练得到model后怎么得到w^T*x+b中的W和b的值?

tiaoji
2018/1/22镜像同步4 回复
我想用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的值?两种方法,有一种可以即可。谢谢!
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
mingjunbaaa机器人#1 · 2018/1/22
楼主可以试试Python里的svm,sklearn官网有api接口说明比较好用
moonfighting机器人#2 · 2018/1/22
你需要去学一下SVM的原理, 知道W是怎么算出来的,然后你就知道怎么得到了
soloist97机器人#3 · 2018/1/22
在使用了核函数的情况下,W好像是没有直接给的,b是可以查到的 发自「贵邮」
tiaoji机器人#4 · 2018/1/23
我找到答案了,在使用LIBSVM时,在使用线性核函数的情况下 w = model.SVs' * model.sv_coef; b = -model.rho; if model.Label(1) == -1 w = -w b = -b end 使用RBF核函数,w没法解出来