onevsalltrain.m
来自「崭新矢量机SVM源码」· M 代码 · 共 39 行
M
39 行
function [alpha,bias,svi,nsv] = onevsalltrain(samples,labels,kernel,kernelparam,lamda,epsilon,func)
% multiclass classification using one-against-all
% training function
nlabels = max(labels);
bias = [];
k = 1;
nsvvec = zeros(length(samples),1);
for i=1:nlabels
index1 = find(labels == i);
index2 = 1:length(labels);
index2 = index2(:);
index2(index1) = [];
sublabels(index1,1) = 1;
sublabels(index2,1) = -1;
switch func
case 'fsals_svm'
tic;
[subalpha,subsvi,subnsv,subbias] = fsals_svmtrain(samples',sublabels,kernel,kernelparam,lamda,epsilon);
nsvvec(subsvi) = nsvvec(subsvi)+1;
fprintf('Support Vectors : %d (%3.1f%%)\n',subnsv,100*subnsv/length(labels));
fprintf('Execution time : %4.1f seconds\n',toc);
case 'pfsals_svm'
tic;
[subalpha,subsvi,subnsv,subbias] = pfsals_svmtrain(samples',sublabels,kernel,kernelparam,lamda,epsilon);
nsvvec(subsvi) = nsvvec(subsvi)+1;
fprintf('Support Vectors : %d (%3.1f%%)\n',subnsv,100*subnsv/length(labels));
fprintf('Execution time : %4.1f seconds\n',toc);
end
alpha{i} = subalpha;
svi{i} = subsvi;
bias = [bias;subbias];
i = i+1;
end;
nsv = sum(nsvvec>0);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?