📄 demo_svm.html
字号:
<span class=quotes>'HorizontalAlignment'</span>,<span class=quotes>'center'</span>,...<br> <span class=quotes>'FontUnits'</span>,<span class=quotes>'normalized'</span>,...<br> <span class=quotes>'Clipping'</span>,<span class=quotes>'on'</span>,...<br> <span class=quotes>'FontSize'</span>,fsize);<br> <span class=keyword>end</span><br><br> <span class=comment>% show comment</span><br> <span class=graph>set</span>( data.console,<span class=quotes>'String'</span>,consoletext );<br><br> <span class=comment>% print title</span><br> pos=<span class=graph>get</span>( data.<span class=graph>axes</span>,<span class=quotes>'Position'</span>);<br> fsize=(1-pos(2)-pos(4))*1;<br> title(titletext,...<br> <span class=quotes>'Parent'</span>, data.<span class=graph>axes</span>,...<br> <span class=quotes>'VerticalAlignment'</span>,<span class=quotes>'bottom'</span>,...<br> <span class=quotes>'HorizontalAlignment'</span>,<span class=quotes>'left'</span>,...<br> <span class=quotes>'FontUnits'</span>,<span class=quotes>'normalized'</span>,...<br> <span class=quotes>'Units'</span>,<span class=quotes>'normalized'</span>,...<br> <span class=quotes>'Position'</span>,[0 1 0],...<br> <span class=quotes>'FontSize'</span>,fsize);<br><br><br><span class=comment>% == Calls Matlab`s info box ==================================</span><br><span class=label>case</span> <span class=quotes>'info'</span><br> helpwin(mfilename);<br><span class=keyword>end</span><br><br><span class=jump>return</span>;<br><br><span class=comment>%===============================================================</span><br><span class=defun_kw>function</span> <span class=defun_out>[Alpha,bias] </span>= <span class=defun_name>svm_train</span>(<span class=defun_in> data, trn, ker, arg, C </span>)<br><br><span class=keyword>if</span> strcmpi( ker, <span class=quotes>'linear'</span>),<br> strarg = <span class=quotes>'-'</span>;<br><span class=keyword>else</span><br> strarg = num2str( arg);<br><span class=keyword>end</span><br><br>param = str2num( <span class=graph>get</span>( data.ed_param,<span class=quotes>'String'</span>));<br><br><span class=keyword>switch</span> <span class=graph>get</span>( data.pu_algo, <span class=quotes>'Value'</span> ),<br> <span class=label>case</span> 1 <span class=comment>% Sequential Minimal Optimizer</span><br><br><span class=comment>% if length(param) ~= length( str2num(DEF_SMO_PARAM)),</span><br><span class=comment>% param = str2num(DEF_SMO_PARAM);</span><br><span class=comment>% end</span><br> <br><span class=comment>% [Alpha,bias,nsv,kercnt,trn_err,margin]=...</span><br><span class=comment>% smo(trn.X,trn.I,ker,arg,C, param(1),param(2) );</span><br> options.ker = ker;<br> options.arg = arg;<br> options.C = C;<br> options.eps = param(1);<br> options.tol = param(2);<br> <br> model = smo( trn, options);<br> <br> Alpha = zeros(1,size(trn.X,2));<br> Alpha(model.sv.inx) = model.Alpha(:)';<br> bias = model.b;<br> nsv = model.nsv;<br> kercnt=model.kercnt;<br> trn_err = model.trnerr;<br> margin = model.margin;<br> <br> text = <span class=io>sprintf</span>(...<br> [<span class=quotes>'SVM (L1) by Sequential Minimal Optimizer\n'</span>,...<br> <span class=quotes>'Kernel: %s (%s), C: %.4f\n'</span>,...<br> <span class=quotes>'Kernel evaluations: %d\n'</span>,...<br> <span class=quotes>'Number of Support Vectors: %d\n'</span>,...<br> <span class=quotes>'Margin: %.4f\n'</span>,...<br> <span class=quotes>'Training error: %.2f%%'</span>],...<br> ker, strarg, C, kercnt, nsv, margin, 100*trn_err );<br><br><span class=comment>% case 2 % Matlab Optimization toolbox (L1)</span><br><span class=comment>% model=svmmot(trn, {'ker',ker,'arg',arg,'C',C,'norm',1});</span><br><span class=comment>%</span><br><span class=comment>% Alpha = zeros(1,size(trn.X,2));</span><br><span class=comment>% Alpha(model.sv.inx) = model.Alpha;</span><br><span class=comment>% bias = model.b;</span><br><span class=comment>% nsv = model.nsv;</span><br><span class=comment>% kercnt=model.kercnt;</span><br><span class=comment>% trn_err = model.trnerr;</span><br><span class=comment>% margin = model.margin;</span><br><span class=comment>% exitflag=model.exitflag;</span><br><span class=comment>% </span><br><span class=comment>% text = sprintf(...</span><br><span class=comment>% ['SVM (L1) using QUADPROG of the Optimization Toolbox\n',...</span><br><span class=comment>% 'Kernel: %s (%s), C: %.4f\n',...</span><br><span class=comment>% 'Exitflag: %d\n',...</span><br><span class=comment>% 'Kernel evaluations: %d\n',...</span><br><span class=comment>% 'Number of Support Vectors: %d\n',...</span><br><span class=comment>% 'Margin: %.4f\n',...</span><br><span class=comment>% 'Training error: %.2f%%'],...</span><br><span class=comment>% ker, strarg, C, exitflag, kercnt, nsv, margin,100*trn_err);</span><br><span class=comment>%</span><br><span class=comment>% case 3 % Kernel Schlesinger-Kozinec's algorithm (L2)</span><br> <span class=label>case</span> 2 <span class=comment>% Kernel Schlesinger-Kozinec's algorithm (L2)</span><br><br> model=svmquadprog(trn, {<span class=quotes>'ker'</span>,ker,<span class=quotes>'arg'</span>,arg,<span class=quotes>'C'</span>,C,...<br> <span class=quotes>'tolabs'</span>,param(1),<span class=quotes>'tolrel'</span>,0,<span class=quotes>'tmax'</span>,param(2) });<br><br> Alpha = zeros(1,size(trn.X,2));<br> Alpha(model.sv.inx) = model.Alpha(:)';<br> bias = model.b;<br> nsv = model.nsv;<br> kercnt=model.kercnt;<br> trn_err = model.trnerr;<br> margin = model.margin;<br> exitflag=model.exitflag;<br> <br> <span class=keyword>if</span>( exitflag == 1), exitflag = <span class=quotes>'found'</span>; <span class=keyword>else</span> exitflag = <span class=quotes>'not found'</span>; <span class=keyword>end</span><br> <br> text = <span class=io>sprintf</span>(...<br> [<span class=quotes>'SVM (L2) by Kernel Schlesinger-Kozinec`s algorithm\n'</span>,...<br> <span class=quotes>'Kernel: %s (%s), C: %.4f\n'</span>,...<br> <span class=quotes>'Solution: %s\n'</span>, ...<br> <span class=quotes>'Number of Support Vectors: %d\n'</span>,...<br> <span class=quotes>'Kernel evaluations: %d\n'</span>,...<br> <span class=quotes>'Margin: %.4f\n'</span>,...<br> <span class=quotes>'Training error: %.2f%%'</span>],...<br> ker, strarg, C, exitflag, nsv, kercnt, margin, trn_err*100 );<br><br><span class=comment>% case 4 % Matlab Optimization toolbox (L2)</span><br><span class=comment>% [Alpha,bias,nsv,exitflag,flps,margin,trn_err]=...</span><br><span class=comment>% svm2mot(trn.X,trn.I,ker,arg,C);</span><br><span class=comment>%</span><br><span class=comment>% model=svmmot(trn, {'ker',ker,'arg',arg,'C',C,'norm',2});</span><br><span class=comment>%</span><br><span class=comment>% Alpha = zeros(1,size(trn.X,2));</span><br><span class=comment>% Alpha(model.sv.inx) = model.Alpha;</span><br><span class=comment>% bias = model.b;</span><br><span class=comment>% nsv = model.nsv;</span><br><span class=comment>% kercnt=model.kercnt;</span><br><span class=comment>% trn_err = model.trnerr;</span><br><span class=comment>% margin = model.margin;</span><br><span class=comment>% exitflag=model.exitflag;</span><br><span class=comment>%</span><br><span class=comment>% text = sprintf(...</span><br><span class=comment>% ['SVM (L2) using QUADPROG of the Optimization Toolbox\n',...</span><br><span class=comment>% 'Kernel: %s (%s), C: %.4f\n',...</span><br><span class=comment>% 'Exitflag: %d\n',...</span><br><span class=comment>% &nb
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -