📄 crossctrain.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"><html><head> <title>Description of crosscTrain</title> <meta name="keywords" content="crosscTrain"> <meta name="description" content="crosscTrain: Cross classifier training"> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <meta name="generator" content="m2html © 2003 Guillaume Flandin"> <meta name="robots" content="index, follow"> <link type="text/css" rel="stylesheet" href="../m2html.css"></head><body><a name="_top"></a><div><a href="../index.html">Home</a> > <a href="index.html">dcpr</a> > crosscTrain.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td><td align="right"><a href="index.html">Index for dcpr <img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>crosscTrain</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>crosscTrain: Cross classifier training</strong></div><h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>function [recogRate, coef]=crosscTrain(DS, CParam, plotOpt) </strong></div><h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre class="comment"> crosscTrain: Cross classifier training
Usage: [recogRate, coef]=crosscTrain(DS, CParam, plotOpt)</pre></div><!-- crossreference --><h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>This function calls:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a> crosscEval: Evaluation of cross classifier</li><li><a href="dcprDataPlot.html" class="code" title="function dcprDataPlot(DS, plotTitle, displayAnnotation)">dcprDataPlot</a> dcprDataPlot: Plot of 2D data for data clustering or pattern recognition</li><li><a href="lincTrainMre.html" class="code" title="function [recogRate, coef, regError]=lincTrainMre(DS, CParam, plotOpt)">lincTrainMre</a> lincTrainMre: Linear classifier training for min. regression error</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"></ul><!-- crossreference --><h2><a name="_subfunctions"></a>SUBFUNCTIONS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><ul style="list-style-image:url(../matlabicon.gif)"><li><a href="#_sub1" class="code">function selfdemo</a></li></ul><h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [recogRate, coef]=crosscTrain(DS, CParam, plotOpt)</a>0002 <span class="comment">% crosscTrain: Cross classifier training</span>0003 <span class="comment">% Usage: [recogRate, coef]=crosscTrain(DS, CParam, plotOpt)</span>0004 0005 <span class="comment">% Roger Jang, 20041216</span>0006 0007 <span class="keyword">if</span> nargin<1, <a href="#_sub1" class="code" title="subfunction selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0008 <span class="keyword">if</span> nargin<2, CParam=[]; <span class="keyword">end</span>0009 <span class="keyword">if</span> nargin<3, plotOpt=0; <span class="keyword">end</span>0010 0011 [dim, dataNum]=size(DS.input);0012 <span class="comment">% Preapre A matrix for A*x=desired</span>0013 A=[DS.input', ones(dataNum,1)];0014 uniqueOutput=unique(DS.output);0015 <span class="keyword">if</span> length(uniqueOutput)~=2, error(<span class="string">'Must be 2-class problem!'</span>); <span class="keyword">end</span>0016 <span class="keyword">if</span> size(DS.input, 1)==10017 [recogRate, coef]=<a href="lincTrainMre.html" class="code" title="function [recogRate, coef, regError]=lincTrainMre(DS, CParam, plotOpt)">lincTrainMre</a>(DS, CParam, plotOpt);0018 <span class="keyword">return</span>;0019 <span class="keyword">end</span>0020 <span class="keyword">if</span> size(DS.input, 1)>2, error(<span class="string">'Must be 1D or 2D problem!'</span>); <span class="keyword">end</span>0021 0022 <span class="comment">% ∮N DS.output ”??? -1 ?? 1</span>0023 index=find(DS.output==max(uniqueOutput));0024 DS.output=-ones(1, size(DS.output,2));0025 DS.output(index)=1;0026 0027 xMin=min(DS.input(1,:));0028 xMax=max(DS.input(1,:));0029 yMin=min(DS.input(2,:));0030 yMax=max(DS.input(2,:));0031 0032 n=21;0033 x=linspace(xMin, xMax, n);0034 y=linspace(yMin, yMax, n);0035 allRecogRate=zeros(n);0036 <span class="keyword">for</span> i=1:n0037 <span class="keyword">for</span> j=1:n0038 coef0{1}=[x(i), y(j), 0, 0, 0];0039 [output, tmp(1)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{1});0040 coef0{2}=[x(i), y(j), 0, 0, 1];0041 [output, tmp(2)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{2});0042 coef0{3}=[x(i), y(j), 0, 1, 0];0043 [output, tmp(3)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{3});0044 coef0{4}=[x(i), y(j), 0, 1, 1];0045 [output, tmp(4)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{4});0046 coef0{5}=[x(i), y(j), 1, 0, 0];0047 [output, tmp(5)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{5});0048 coef0{6}=[x(i), y(j), 1, 0, 1];0049 [output, tmp(6)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{6});0050 coef0{7}=[x(i), y(j), 1, 1, 0];0051 [output, tmp(7)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{7});0052 coef0{8}=[x(i), y(j), 1, 1, 1];0053 [output, tmp(8)]=<a href="crosscEval.html" class="code" title="function [output, recogRate]=crosscEval(DS, coef)">crosscEval</a>(DS, coef0{8});0054 [allRecogRate(i,j), index]=max(tmp);0055 allCoef{i,j}=coef0{index};0056 <span class="keyword">end</span>0057 <span class="keyword">end</span>0058 0059 <span class="comment">% Find the best recog. rate</span>0060 recogRate=max(max(allRecogRate));0061 [i,j]=find(allRecogRate==recogRate);0062 i=i(1); j=j(1); <span class="comment">% ?u?????@??</span>0063 coef=allCoef{i,j};0064 0065 <span class="keyword">if</span> plotOpt & dim==20066 <a href="dcprDataPlot.html" class="code" title="function dcprDataPlot(DS, plotTitle, displayAnnotation)">dcprDataPlot</a>(DS); axis image0067 axisLimit=axis;0068 line(coef(1)*[1, 1], axisLimit(3:4), <span class="string">'color'</span>, <span class="string">'k'</span>);0069 line(axisLimit(1:2), coef(2)*[1, 1], <span class="string">'color'</span>, <span class="string">'k'</span>);0070 <span class="keyword">end</span>0071 0072 <span class="comment">% ====== Self demo</span>0073 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0074 dataNum=100;0075 DS.input=2*rand(2, dataNum)-1;0076 DS.output=DS.input(1,:)+DS.input(2,:)>0;0077 plotOpt=1;0078 [recogRate, coef]=feval(mfilename, DS, [], plotOpt);0079 fprintf(<span class="string">'Recognition rate = %f%%\n'</span>, recogRate*100);0080 fprintf(<span class="string">'Coef = %s\n'</span>, mat2str(coef));</pre></div><hr><address>Generated on Thu 30-Oct-2008 12:53:56 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> © 2003</address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -