?? c_svc_train.m
字號:
function svm = C_SVC_Train(X,Y,C,ker)
% 輸入參數:
% X 訓練樣本,n×d的矩陣,n為樣本個數,d為樣本維數
% Y 訓練目標,n×1的矩陣,n為樣本個數,值為+1或-1
% C 拉格朗日乘子上界
% ker 核參數(結構體變量)
% the following fields:
% type - linear : k(x,y) = x'*y
% poly : k(x,y) = (x'*y+c)^d
% gauss : k(x,y) = exp(-0.5*(norm(x-y)/s)^2)
% tanh : k(x,y) = tanh(g*x'*y+c)
% degree - Degree d of polynomial kernel (positive scalar).
% offset - Offset c of polynomial and tanh kernel (scalar, negative for tanh).
% width - Width s of Gauss kernel (positive scalar).
% gamma - Slope g of the tanh kernel (positive scalar).
% 輸出參數:
% svm 支持向量機(結構體變量)
% the following fields:
% ker - 核參數
% x - 訓練樣本
% y - 訓練目標;
% a - 拉格朗日乘子
% ------------------------------------------------------------%
% 解二次優化
n = length(Y);
H = (Y*Y').*Calckernel(ker,X,X);
f = -ones(n,1);
A = [];
b = [];
Aeq = Y';
beq = 0;
lb = zeros(n,1);
ub = C*ones(n,1);
a0 = zeros(n,1);
options = optimset;
options.LargeScale = 'off';
options.Display = 'off';
[a,fval,eXitflag,output,lambda] = quadprog(H,f,A,b,Aeq,beq,lb,ub,a0,options);
eXitflag
% ------------------------------------------------------------%
% 輸出 svm
svm.ker = ker;
svm.x = X;
svm.y = Y;
svm.a = a;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -