• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: SVM  网格搜索  

资源简介

SVM参数优化 网格搜索法

资源截图

代码片段和文件信息

function [bestaccbestcbestg] = SVMcgForClass(train_labeltraincmincmaxgmingmaxvcstepgstepaccstep)
%SVMcg cross validation by faruto

%%
% by faruto
%Email:patrick.lee@foxmail.com QQ:516667408 http://blog.sina.com.cn/faruto BNU
%last modified 2010.01.17

%% 若转载请注明:
% faruto and liyang  LIBSVM-farutoUltimateVersion 
% a toolbox with implements for support vector machines based on libsvm 2009. 

% Chih-Chung Chang and Chih-Jen Lin LIBSVM : a library for
% support vector machines 2001. Software available at
% http://www.csie.ntu.edu.tw/~cjlin/libsvm

%% about the parameters of SVMcg 
if nargin < 10
    accstep = 4.5;
end
if nargin < 8
    cstep = 0.8;
    gstep = 0.8;
end
if nargin < 7
    v = 5;
end
if nargin < 5
    gmax = 8;
    gmin = -8;
end
if nargin < 3
    cmax = 8;
    cmin = -8;
end
%% X:c Y:g cg:CVaccuracy
[XY] = meshgrid(cmin:cstep:cmaxgmin:gstep:gmax);
[mn] = size(X);
cg = zeros(mn);

eps = 10^(-4);

%% record acc with different c & gand find the bestacc with the smallest c
bestc = 1;
bestg = 0.1;
bestacc = 0;
basenum = 2;
for i = 1:m
    for j = 1:n
        cmd = [‘-v ‘num2str(v)‘ -c ‘num2str( basenum^X(ij) )‘ -g ‘num2str( basenum^Y(ij) )];
        cg(ij) = svmtrain(train_label train cmd);
        
        if cg(ij) <= 55
            continue;
        end
        
        if cg(ij) > bestacc
            bestacc = cg(ij);
            bestc = basenum^X(ij);
            bestg = basenum^Y(ij);
        end        
        
        if abs( cg(ij)-bestacc )<=eps && bestc > basenum^X(ij) 
            bestacc = cg(ij);
            bestc = basenum^X(ij);
            bestg = basenum^Y(ij);
        end        
        
    end
end
%% to draw the acc with different c & g
figure;
[Ch] = contour(XYcg70:accstep:100);
clabel(Ch‘Color‘‘r‘);
xlabel(‘log2c‘‘FontSize‘12);
ylabel(‘log2g‘‘FontSize‘12);
firstline = ‘SVC参数选择结果图(等高线图)[GridSearchMethod]‘; 
secondline = [‘Best c=‘num2str(bestc)‘ g=‘num2str(bestg) ...
    ‘ CVAccuracy=‘num2str(bestacc)‘%‘];
title({firstline;secondline}‘Fontsize‘12);
grid on; 

figure;
meshc(XYcg);
% mesh(XYcg);
% surf(XYcg);
axis([cmincmaxgmingmax30100]);
xlabel(‘log2c‘‘FontSize‘12);
ylabel(‘log2g‘‘FontSize‘12);
zlabel(‘Accuracy(%)‘‘FontSize‘12);
firstline = ‘SVC参数选择结果图(3D视图)[GridSearchMethod]‘; 
secondline = [‘Best c=‘num2str(bestc)‘ g=‘num2str(bestg) ...
    ‘ CVAccuracy=‘num2str(bestacc)‘%‘];
title({firstline;secondline}‘Fontsize‘12);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2506  2016-03-08 22:16  网格搜索法\网格搜索法.m

     目录          0  2016-03-09 15:43  网格搜索法

----------- ---------  ---------- -----  ----

                 2506                    2


评论

共有 条评论