⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 knnr.html

📁 一个关于数据聚类和模式识别的程序,在生物化学,化学中因该都可以用到.希望对大家有用,谢谢支持
💻 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 knnr</title>  <meta name="keywords" content="knnr">  <meta name="description" content="knnr: K-nearest neighbor rule for classification">  <meta http-equiv="Content-Type" content="text/html; charset=big5">  <meta name="generator" content="m2html &copy; 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> &gt;  <a href="index.html">dcpr</a> &gt; knnr.m</div><!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png">&nbsp;Master index</a></td><td align="right"><a href="index.html">Index for dcpr&nbsp;<img alt=">" border="0" src="../right.png"></a></td></tr></table>--><h1>knnr</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>knnr: K-nearest neighbor rule for classification</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 [computedOutput, combinedComputedOutput, nearestIndex, knnrMat] = knnr(DS, TS, k) </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"> knnr: K-nearest neighbor rule for classification
    Usage:
    [computedOutput, combinedComputedOutput, nearestIndex, knnrMat] = knnr(DS, TS, k)

    DS: design set
        DS.input: input part (each column is a feature vector)
        DS.output: output part (integers ranging from 1 to N.)
    TS: test set
        TS.input: input part (each column is a feature vector)
    k: the &quot;k&quot; in &quot;k nearest neighbor&quot;
    computedOutput: output vector by KNNR
    combinedComputedOutput: a single output by KNNR, assuming all TS are of the same class
        (A voting mechanism is invoked to determine a scalar value between 1 and N.)
    nearestIndex: Index of DS.input that are closest to TS.input
    knnrMat(i,j) = class of i-th nearest point of j-th test input vector</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="prData.html" class="code" title="function [DS, TS]=prData(dataName)">prData</a>	prData: Various data set for PR</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="knnrLoo.html" class="code" title="function [recogRate, computed, nearestIndex] = knnrLoo(DS, k, plotOpt)">knnrLoo</a>	knnrLoo: Leave-one-out recognition rate of KNNR</li><li><a href="knnrWrtK.html" class="code" title="function [misclassify, elapsed_time] = knnrWrtK(DS, TS, kMax, plotOpt)">knnrWrtK</a>	knnrWrtK: Try various values of K in leave-one-out K-NNR.</li></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 [computedOutput, combinedComputedOutput, nearestIndex, knnrMat] = knnr(DS, TS, k)</a>0002 <span class="comment">% knnr: K-nearest neighbor rule for classification</span>0003 <span class="comment">%    Usage:</span>0004 <span class="comment">%    [computedOutput, combinedComputedOutput, nearestIndex, knnrMat] = knnr(DS, TS, k)</span>0005 <span class="comment">%</span>0006 <span class="comment">%    DS: design set</span>0007 <span class="comment">%        DS.input: input part (each column is a feature vector)</span>0008 <span class="comment">%        DS.output: output part (integers ranging from 1 to N.)</span>0009 <span class="comment">%    TS: test set</span>0010 <span class="comment">%        TS.input: input part (each column is a feature vector)</span>0011 <span class="comment">%    k: the &quot;k&quot; in &quot;k nearest neighbor&quot;</span>0012 <span class="comment">%    computedOutput: output vector by KNNR</span>0013 <span class="comment">%    combinedComputedOutput: a single output by KNNR, assuming all TS are of the same class</span>0014 <span class="comment">%        (A voting mechanism is invoked to determine a scalar value between 1 and N.)</span>0015 <span class="comment">%    nearestIndex: Index of DS.input that are closest to TS.input</span>0016 <span class="comment">%    knnrMat(i,j) = class of i-th nearest point of j-th test input vector</span>0017 0018 <span class="comment">%    Roger Jang, 19970331, 20040928</span>0019 0020 <span class="keyword">if</span> nargin&lt;1, <a href="#_sub1" class="code" title="subfunction selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0021 <span class="keyword">if</span> nargin&lt;3, k=1; <span class="keyword">end</span>0022 0023 [dim, designNum]=size(DS.input);0024 classLabel=elementCount(DS.output);        <span class="comment">% possible output class</span>0025 classNum=length(classLabel);0026 [dim, testNum]=size(TS.input);0027 0028 <span class="comment">% Squared Euclidean distance matrix between sampleInput and testInput</span>0029 distMat = pairwiseSqrDistance(DS.input, TS.input);0030 0031 <span class="comment">% knnrMat(i,j) = class of i-th nearest point of j-th test input vector (size = k by testNum.)</span>0032 [junk, nearestIndex] = sort(distMat, 1);0033 <span class="comment">%knnrMat=DS.output(nearestIndex(1:k,:));    % This causes an error when k&gt;1</span>0034 knnrMat=reshape(DS.output(nearestIndex(1:k,:)), k, testNum);0035 0036 0037 <span class="comment">% classCount(i,j) = number of class-i points in j-th test input's neighborhood</span>0038 classCount = zeros(classNum, testNum);0039 <span class="keyword">for</span> i=1:testNum,0040     [sortedElement, elementCnt]=elementCount(knnrMat(:,i));0041     classCount(sortedElement, i)=elementCnt;0042 <span class="keyword">end</span>0043 0044 [junk, combinedComputedOutput]=max(sum(classCount, 2));0045 [junk, computedOutput]=max(classCount, [], 1);0046 0047 <span class="comment">% ====== Self demo</span>0048 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0049 [DS, TS]=<a href="prData.html" class="code" title="function [DS, TS]=prData(dataName)">prData</a>(<span class="string">'iris'</span>);0050 designNum=size(DS.input, 2);0051 testNum  =size(TS.input, 2);0052 fprintf(<span class="string">'Use of KNNR for Iris data:\n'</span>);0053 fprintf(<span class="string">'\tSize of design set (odd-indexed data)= %d\n'</span>, designNum);0054 fprintf(<span class="string">'\tSize of test set (even-indexed data) = %d\n'</span>, testNum);0055 fprintf(<span class="string">'\tRecognition rates as K varies:\n'</span>);0056 kMax=15;0057 <span class="keyword">for</span> k=1:kMax,0058     computed=feval(mfilename, DS, TS, k);0059     correctCount=sum(TS.output==computed);0060     recog(k)=correctCount/testNum;0061     fprintf(<span class="string">'\t%d-NNR ===&gt; 1-%d/%d = %.2f%%.\n'</span>, k, testNum-correctCount, testNum, recog(k)*100);0062 <span class="keyword">end</span>0063 plot(1:kMax, recog*100, <span class="string">'b-o'</span>); grid on;0064 title(<span class="string">'Recognition rates of Iris data using K-NNR'</span>);0065 xlabel(<span class="string">'K'</span>); ylabel(<span class="string">'Recognition rates (%)'</span>);</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> &copy; 2003</address></body></html>

⌨️ 快捷键说明

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