在libsvm的源代码中,为什么要把支持向量表示成二维数组[][]svm_node的形式?琢磨了很久还是没想明白
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/06/05 12:19:09
在libsvm的源代码中,为什么要把支持向量表示成二维数组[][]svm_node的形式?琢磨了很久还是没想明白
还有,其中关于梯度、关于SV_coef[][]这两部分也没看明白,求大神一语道破哈!拜谢!
还有,其中关于梯度、关于SV_coef[][]这两部分也没看明白,求大神一语道破哈!拜谢!
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必然要是一个数组,你细想应该可以理解!
再问: 但是程序中是nr_class-1,不是(nr_class-1)[(nr_class-1)-1]/2啊???
再答: 不是单纯[nr_class-1]吧 后面还有个*[L],具体到它内部怎么内部怎么处理“一对一”机制。请参考这里http://www.ilovematlab.cn/thread-80099-1-1.html 汗 水平有限啊!
既然是二分类,肯定有属于第一类-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必然要是一个数组,你细想应该可以理解!
再问: 但是程序中是nr_class-1,不是(nr_class-1)[(nr_class-1)-1]/2啊???
再答: 不是单纯[nr_class-1]吧 后面还有个*[L],具体到它内部怎么内部怎么处理“一对一”机制。请参考这里http://www.ilovematlab.cn/thread-80099-1-1.html 汗 水平有限啊!
在libsvm的源代码中,为什么要把支持向量表示成二维数组[][]svm_node的形式?琢磨了很久还是没想明白
人的价值观到底体现在哪?我想了很久,还是没明白.
在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?
【动态二维数组】 p[i*n+j]为什么表示数组元素的值
下列程序定义了N×N的二维数组,并在主函数中赋值.
MATLAB如何把二维数组的值依次赋值给一个列向量?
英语翻译想了很久,没想明白.
找出一个二维数组中 的鞍点
vfp 在VFP中定义了一个二维数组,如何测知该数组的行数与列数?另:如何查询出一个二维数组某一行或某一列的值?注意题意
将一个3*2的二维数组A表示矩阵(如下图)转置存入B中,再按矩阵的形式输出A和B
为什么back 在英语中表示支持的意思
java中求二维数组第二维的长度用什么?另外,一个二维array, array.length默认的是第一维的长度么,有没