📄 linctrainwidro0.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 lincTrainWidro0</title> <meta name="keywords" content="lincTrainWidro0"> <meta name="description" content="linClassifier: Linear classifier (Perceptron) using on-line learning"> <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> > lincTrainWidro0.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>lincTrainWidro0</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>linClassifier: Linear classifier (Perceptron) using on-line learning</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 coef=linClassifier(DS, trainParam, 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"> linClassifier: Linear classifier (Perceptron) using on-line learning
Type "linClassifier" for a demo.</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="dcprDataPlot.html" class="code" title="function dcprDataPlot(DS, plotTitle, displayAnnotation)">dcprDataPlot</a> dcprDataPlot: Plot of 2D data for data clustering or pattern recognition</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 coef=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 coef=linClassifier(DS, trainParam, plotOpt)</a>0002 <span class="comment">% linClassifier: Linear classifier (Perceptron) using on-line learning</span>0003 <span class="comment">%</span>0004 <span class="comment">% Type "linClassifier" for a demo.</span>0005 0006 <span class="comment">% Roger Jang, 20040910</span>0007 0008 <span class="keyword">if</span> nargin<1, <a href="#_sub1" class="code" title="subfunction coef=selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0009 <span class="keyword">if</span> nargin<2 | isempty(trainParam),0010 trainParam.eta=0.0002;0011 trainParam.maxIter=3000;0012 <span class="keyword">end</span>0013 <span class="keyword">if</span> nargin<3, plotOpt=0; <span class="keyword">end</span>0014 0015 [dim, dataNum]=size(DS.input);0016 0017 <span class="keyword">if</span> plotOpt==1 & dim==2,0018 <a href="dcprDataPlot.html" class="code" title="function dcprDataPlot(DS, plotTitle, displayAnnotation)">dcprDataPlot</a>(DS);0019 axis image0020 lineH = line([-1 1], [-1 1], <span class="string">'linewidth'</span>, 2, <span class="string">'erase'</span>, <span class="string">'xor'</span>, <span class="string">'color'</span>, <span class="string">'m'</span>);0021 r = 0.1;0022 theta = linspace(0, 2*pi);0023 circleX = r*cos(theta); 0024 circleY = r*sin(theta); 0025 circleH = line(nan, nan, <span class="string">'color'</span>, <span class="string">'k'</span>, <span class="string">'erase'</span>, <span class="string">'xor'</span>);0026 <span class="keyword">end</span>0027 0028 uniqueOutput=unique(DS.output);0029 <span class="keyword">if</span> length(uniqueOutput)~=2, error(<span class="string">'Must be 2-class problem!'</span>); <span class="keyword">end</span>0030 <span class="comment">% ∮N DS.output ”??? -1 ?? 1</span>0031 index=find(DS.output==max(uniqueOutput));0032 DS.output=-ones(1, size(DS.output,2));0033 DS.output(index)=1;0034 0035 <span class="comment">% The main loop</span>0036 coef=randn(dim+1,1);0037 0038 <span class="keyword">for</span> i=1:trainParam.maxIter0039 picked = ceil(rand*dataNum);0040 input = DS.input(:, picked);0041 target = DS.output(:, picked);0042 computed = sign(dot(coef, [input; 1]));0043 coef=coef+trainParam.eta*(target-computed)*[input; 1];0044 <span class="keyword">if</span> plotOpt==1 & dim==2,0045 set(circleH, <span class="string">'xdata'</span>, circleX+DS.input(1, picked), <span class="string">'ydata'</span>, circleY+DS.input(2, picked));0046 set(lineH, <span class="string">'ydata'</span>, [coef(1)-coef(3), -coef(1)-coef(3)]/coef(2));0047 fprintf(<span class="string">'iteration = %d\n'</span>, i);0048 drawnow0049 <span class="keyword">end</span>0050 <span class="keyword">end</span>0051 0052 <span class="comment">% ====== Self demo</span>0053 <a name="_sub1" href="#_subfunctions" class="code">function coef=selfdemo</a>0054 0055 dataNum = 2000;0056 DS.input = rand(2, dataNum)*2-1;0057 DS.output = -ones(1, dataNum);0058 index = find(DS.input(1, :)+DS.input(2, :)>0);0059 DS.output(index)=1;0060 plotOpt=1;0061 coef=feval(mfilename, DS, [], plotOpt);</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 + -