grid_rbf.m

来自「CU SVM Classifier Matlab Toolbox」· M 代码 · 共 55 行

M
55
字号
function [C, gamma, Accuracy]=grid_Rbf(data, nr_fold, filename, lowC, highC, stepC, lowgamma, highgamma, stepgamma)
%Usage: [C, gamma, Accuracy]=grid_Rbf(data, nr_fold, lowC, highC, stepC, lowgamma, highgamma, stepgamma)

if (nargin < 3) || (nargin > 9)
   disp(' Incorrect number of input variables.\n');
   help grid_Rbf;
   return;
end

if ~isfield(data, 'X')
    disp(' Error: invalid data structure.\n');
    return; 
end
if ~isfield(data, 'y')
    disp(' Error: invalid data structure.\n');
    return; 
end
if isempty(data.X)
    disp(' Error: sample field is empty.\n');
    return; 
end
if size(data.X,2) ~= size(data.y,2)
    disp(' Error: sample and label do not match.\n');
    return; 
end

if nargin<9, stepgamma=1; end
if nargin<8, highgamma=3; end
if nargin<7, lowgamma=-15; end
if nargin<6, stepC=1; end
if nargin<5, highC=15; end
if nargin<4, lowC=-5; end

Accuracy=0;
if nr_fold<2
    disp(' Parameter:nr_fold must greater or equal to 2.\n');
    return;
else
    options.crossvalidation=nr_fold;
end
fid=fopen(filename,'w');
for I=lowC:stepC:highC
    for J=lowgamma:stepgamma:highgamma
        testC=2^I;
        testgamma=2^J;
        output=RbfSVC_Train(data, 0, testC, testgamma, options);
        if output.Accuracy>Accuracy
            C=testC
            gamma=testgamma
            Accuracy=output.Accuracy
        end
        fprintf(fid, '%f %f %f\n', I, J, output.Accuracy);
    end
end
fclose(fid);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?