在libsvm的源代码中,为什么要把支持向量表示成二维数组[][]svm_node的形式???琢磨了很久还是没想明白

还有,其中关于梯度、关于SV_coef[][]这两部分也没看明白,求大神一语道破哈!拜谢!!!!!... 还有,其中关于梯度、关于SV_coef[][]这两部分也没看明白,求大神一语道破哈!拜谢!!!!! 展开
 我来答
南冥未央
2013-06-24 · TA获得超过224个赞
知道答主
回答量:70
采纳率:0%
帮助的人:26.7万
展开全部

       libsvm虽然支持多类分类,但是其本质是基于“一对一”法的多类分类,因此究其其本质其实是个二分类svm。

       既然是二分类,肯定有属于第一类-1的支持向量,属于第二类+1的支持向量,它肯定应该是个二维数组。

        libsvm训练输出model中的参数有一个是sv_coef,它表示的是支持向量在决策函数中:

                     

的系数a,而b是model里的rho。

         最后说下model里全有啥参数:

         model = 
             Parameters: svm的类型参数
             nr_class: 有多少个类别
             totalSV: 支持向量总个数
             rho: 就是决策函数里那个b
             Label: 类标
             ProbA: 
             ProbB: 这两个是但svm 选-b是用到的参数

             nSV: 每类有多少个支持向量
             sv_coef: 决策函数那个a
             SVs: 里面装的是所以支持向量


菜鸟个人愚见,如有错误望指正!共同学习

更多追问追答
追问
但是SV_coef[][]在程序中表示为SV_coef[nr_class-1][l]的形式,这个怎么理解???我觉得不是nr_class-1,而应该是(nr_class-1)[(nr_class-1)-1]/2啊???
追答
SV_coef[][]是个数组吧,因为它是支持多类分类的,n类就要构建n(n-1)/2 个支持向量机,采用一对一法的话,这个SV_coef必然要是一个数组,你细想应该可以理解!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式