陆振波的SVM的MATLAB代码的解释
%Lambda为在解a处的值Lagrange乘子
%支持向量机的数学表达式:
1l
minW i yiyj i jK Xi,Xj 2i,j 1i 1st: yi i 0
i 1l
l
0 i C
(i=1 to L)
Quadprog函数:
min
1T
xHx cx 2
Ax b 不等式约束
St:A1x b1等式约束
LB x UB 有界约束
l
因此,H = (Y'*Y).*kernel(ker,X,X)
支持向量机的数学表达式中的最优解为
* ( ,..., ),W* i*yixi,
*1
*Tl
i 1
B* (W* i*xi)/(2 i*)
i 1
yi 1
l
%寻找支持向量
a = svm.a;
epsilon = 1e-8;
i_sv = find(abs(a)>epsilon); %0
%构造测试数本
[x1,x2] = meshgrid(-2:0.05:7,-2:0.05:7); %x1和x2都是181*181的矩阵 [rows,cols] = size(x1); %M=size(x1,1):返回x数组的行数181
%N=size(x1,2):返回x数组的列数181
nt = rows*cols;
Xt = [reshape(x1,1,nt);reshape(x2,1,nt)];
%reshape(x1,1,nt)是将x1转成1*(181*181)的矩阵;所以Xt是一个2*(181*181)的矩阵
%测试输出