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

📄 initkm2.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 initkm2</title>  <meta name="keywords" content="initkm2">  <meta name="description" content="INITKM2 Find the initial centers for a K-means clustering algorithm.">  <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; initkm2.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>initkm2</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>INITKM2 Find the initial centers for a K-means clustering algorithm.</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 center_index = initkm2(distmat, cluster_n, method) </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"> INITKM2 Find the initial centers for a K-means clustering algorithm. 
    This function is used in kmeans2.m.</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="vecdist.html" class="code" title="function distmat = vecdist(mat1, mat2)">vecdist</a>	VECDIST Distance between two set of vectors</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="kmeans2.html" class="code" title="function [center_index, U, obj_fcn] = kmeans2(distmat, cluster_n, options)">kmeans2</a>	KMEANS Find clusters with Forgy's batch-mode k-means clustering.</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 center_index = initkm2(distmat, cluster_n, method)</a>0002 <span class="comment">% INITKM2 Find the initial centers for a K-means clustering algorithm.</span>0003 <span class="comment">%    This function is used in kmeans2.m.</span>0004 0005 <span class="comment">% Roger Jang, 20000206</span>0006 0007 <span class="keyword">if</span> nargin==0, <a href="#_sub1" class="code" title="subfunction selfdemo">selfdemo</a>; <span class="keyword">return</span>; <span class="keyword">end</span>0008 0009 <span class="keyword">switch</span> method0010 <span class="keyword">case</span> 10011 <span class="comment">% ====== Method 1: Randomly pick cluster_n data points as cluster centers</span>0012 data_n = size(distmat, 1);0013 tmp = randperm(data_n);0014 center_index = tmp(1:cluster_n);0015 0016 <span class="keyword">case</span> 20017 <span class="comment">% ====== Method 2: Choose cluster_n data points closest to the mean vector</span>0018 [junk, mean_index] = min(sum(distmat));0019 [a,b] = sort(distmat(mean_index, :));0020 center_index = b(1:cluster_n);0021 0022 <span class="keyword">case</span> 30023 <span class="comment">% ====== Method 3: Choose cluster_n data points furthest to the mean vector</span>0024 [junk, mean_index] = min(sum(distmat));0025 [a,b] = sort(distmat(mean_index, :));0026 b = fliplr(b);0027 center_index = b(1:cluster_n);0028 0029 <span class="keyword">otherwise</span>0030 disp([<span class="string">'Unknown method in '</span>, mfilename, <span class="string">'!'</span>]);0031 0032 <span class="keyword">end</span>0033 0034 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0035     data_n = 100;0036     data1 = ones(data_n, 1)*[0 0] + randn(data_n, 2)/5;0037     data2 = ones(data_n, 1)*[0 1] + randn(data_n, 2)/5;0038     data3 = ones(data_n, 1)*[1 0] + randn(data_n, 2)/5;0039     data = [data1; data2; data3];0040     distmat = <a href="vecdist.html" class="code" title="function distmat = vecdist(mat1, mat2)">vecdist</a>(data);0041     cluster_n = 10;0042 0043     method = 1;0044     center_index = feval(mfilename, distmat, cluster_n, method);0045     subplot(2,2,1);0046     plot(data(:, 1), data(:, 2), <span class="string">'o'</span>);0047     <span class="keyword">for</span> i = 1:cluster_n,0048         line(data(center_index(i), 1), data(center_index(i), 2), <span class="keyword">...</span>0049             <span class="string">'linestyle'</span>, <span class="string">'none'</span>, <span class="string">'marker'</span>, <span class="string">'*'</span>, <span class="string">'color'</span>, <span class="string">'r'</span>);0050     <span class="keyword">end</span>0051     axis equal;0052     title(<span class="string">'Random method'</span>);0053 0054     method = 2;0055     center_index = feval(mfilename, distmat, cluster_n, method);0056     subplot(2,2,2);0057     plot(data(:, 1), data(:, 2), <span class="string">'o'</span>);0058     <span class="keyword">for</span> i = 1:cluster_n,0059         line(data(center_index(i), 1), data(center_index(i), 2), <span class="keyword">...</span>0060             <span class="string">'linestyle'</span>, <span class="string">'none'</span>, <span class="string">'marker'</span>, <span class="string">'*'</span>, <span class="string">'color'</span>, <span class="string">'r'</span>);0061     <span class="keyword">end</span>0062     axis equal;0063     title(<span class="string">'Centers nearest to the mean'</span>);0064 0065     method = 3;0066     center_index = feval(mfilename, distmat, cluster_n, method);0067     subplot(2,2,3);0068     plot(data(:, 1), data(:, 2), <span class="string">'o'</span>);0069     <span class="keyword">for</span> i = 1:cluster_n,0070         line(data(center_index(i), 1), data(center_index(i), 2), <span class="keyword">...</span>0071             <span class="string">'linestyle'</span>, <span class="string">'none'</span>, <span class="string">'marker'</span>, <span class="string">'*'</span>, <span class="string">'color'</span>, <span class="string">'r'</span>);0072     <span class="keyword">end</span>0073     axis equal;0074     title(<span class="string">'Centers farthest to the mean'</span>);0075</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 + -