📄 dendro.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 dendro</title> <meta name="keywords" content="dendro"> <meta name="description" content="DENDRO Dendrogrma plot for the result from hierarchical clustering."> <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> > dendro.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>dendro</h1><h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2><div class="box"><strong>DENDRO Dendrogrma plot for the result from hierarchical clustering.</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 dendro(level) </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"> DENDRO Dendrogrma plot for the result from hierarchical clustering.
Usage: dendro(level)
level: the hierarchical clustering output from AGGCLUST
Type "dendro" to see a demo of a hierarchical clustering
(single-linkage) of 50 random patterns of dimensionality 2.
See also <a href="aggclust.html" class="code" title="function level = aggclust(distance, method)">AGGCLUST</a>, HCLUSTDM.</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="aggclust.html" class="code" title="function level = aggclust(distance, method)">aggclust</a> aggClust: Hierarchical (agglomerative) clustering</li><li><a href="dendro.html" class="code" title="function dendro(level)">dendro</a> DENDRO Dendrogrma plot for the result from hierarchical clustering.</li></ul>This function is called by:<ul style="list-style-image:url(../matlabicon.gif)"><li><a href="aggclust.html" class="code" title="function level = aggclust(distance, method)">aggclust</a> aggClust: Hierarchical (agglomerative) clustering</li><li><a href="dendro.html" class="code" title="function dendro(level)">dendro</a> DENDRO Dendrogrma plot for the result from hierarchical clustering.</li><li><a href="hclusteringDemo.html" class="code" title="function hClusteringDemo(pattern_mat, distance, level)">hclusteringDemo</a> LINKCLU Display the formation of hierarchical clustering step by step</li><li><a href="linkclu.html" class="code" title="function hclustdm(pattern_mat, distance, level)">linkclu</a> LINKCLU Display the formation of hierarchical clustering step by step</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 dendro(level)</a>0002 <span class="comment">% DENDRO Dendrogrma plot for the result from hierarchical clustering.</span>0003 <span class="comment">%</span>0004 <span class="comment">% Usage: dendro(level)</span>0005 <span class="comment">% level: the hierarchical clustering output from AGGCLUST</span>0006 <span class="comment">%</span>0007 <span class="comment">% Type "dendro" to see a demo of a hierarchical clustering</span>0008 <span class="comment">% (single-linkage) of 50 random patterns of dimensionality 2.</span>0009 <span class="comment">%</span>0010 <span class="comment">% See also AGGCLUST, HCLUSTDM.</span>0011 0012 <span class="comment">% Roger Jang, 981027</span>0013 0014 <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>0015 0016 set(gca, <span class="string">'xticklabel'</span>, []);0017 xticklabel = level(end).cluster{1};0018 data_n = length(level);0019 axis([1, data_n, 0, level(end).height]); 0020 xlabel(<span class="string">'Data index'</span>);0021 ylabel(<span class="string">'Distance'</span>);0022 title(<span class="string">'Dendrogram'</span>);0023 <span class="keyword">for</span> i=1:data_n,0024 h = text(i, 0, num2str(level(end).cluster{1}(i)));0025 set(h, <span class="string">'rot'</span>, 90, <span class="string">'fontsize'</span>, 8, <span class="string">'hori'</span>, <span class="string">'right'</span>);0026 <span class="keyword">end</span>0027 0028 <span class="comment">% Generate necessary information for plotting dendrogram</span>0029 <span class="comment">% cap_center is the leg position for future cluster</span>0030 cap_center(xticklabel) = 1:data_n;0031 levelinfo(1).cap_center = cap_center; 0032 <span class="comment">% cap_height is the height for each cap</span>0033 levelinfo(1).cap_height = zeros(1, data_n);0034 <span class="keyword">for</span> i = 2:data_n,0035 m = level(i).merged(1);0036 n = level(i).merged(2);0037 <span class="comment">% Find cap_center</span>0038 levelinfo(i).cap_center = levelinfo(i-1).cap_center;0039 levelinfo(i).cap_center(m) = <span class="keyword">...</span>0040 (levelinfo(i).cap_center(m)+levelinfo(i).cap_center(n))/2; 0041 levelinfo(i).cap_center(n) = [];0042 <span class="comment">% Find cap_height</span>0043 levelinfo(i).cap_height = levelinfo(i-1).cap_height;0044 levelinfo(i).cap_height(m) = level(i).height;0045 levelinfo(i).cap_height(n) = [];0046 <span class="keyword">end</span>0047 0048 <span class="comment">% Plot caps for the dendrogram</span>0049 center = 1:data_n; <span class="comment">% center for each cluster</span>0050 <span class="keyword">for</span> i = 2:data_n,0051 height = level(i).height;0052 m = level(i).merged(1);0053 n = level(i).merged(2);0054 cluster1 = level(i-1).cluster{m};0055 cluster2 = level(i-1).cluster{n};0056 left_point = cluster1(end);0057 right_point = cluster2(1);0058 left = find(xticklabel==left_point);0059 right = find(xticklabel==right_point);0060 0061 left_x = levelinfo(i-1).cap_center(m);0062 left_y = levelinfo(i-1).cap_height(m);0063 right_x = levelinfo(i-1).cap_center(n);0064 right_y = levelinfo(i-1).cap_height(n);0065 line([left_x left_x], [left_y, height]);0066 line([right_x right_x], [right_y, height]);0067 line([left_x right_x], [height, height]);0068 <span class="keyword">end</span>0069 0070 <span class="comment">% Plot level lines for the dendrogram</span>0071 <span class="comment">%for i = 1:data_n,</span>0072 <span class="comment">% line([1 data_n], [level(i).height level(i).height], ...</span>0073 <span class="comment">% 'color', 'c', 'linestyle', ':');</span>0074 <span class="comment">%end</span>0075 0076 <span class="comment">% ====== Self demo ======</span>0077 <a name="_sub1" href="#_subfunctions" class="code">function selfdemo</a>0078 data_n = 50;0079 dimension = 2;0080 points = rand(data_n, dimension);0081 <span class="comment">% Compute the distance matrix</span>0082 <span class="keyword">for</span> i = 1:data_n,0083 <span class="keyword">for</span> j = 1:data_n,0084 distance(i, j) = norm(points(i,:)-points(j,:));0085 <span class="keyword">end</span>0086 <span class="keyword">end</span>0087 <span class="comment">% Diagonal elements should always be inf.</span>0088 <span class="keyword">for</span> i = 1:data_n, distance(i, i) = inf; <span class="keyword">end</span>0089 0090 level = <a href="aggclust.html" class="code" title="function level = aggclust(distance, method)">aggclust</a>(distance);0091 0092 <span class="comment">% Plot the dendrogram</span>0093 figure;0094 <a href="dendro.html" class="code" title="function dendro(level)">dendro</a>(level);0095 fprintf(<span class="string">'The figure is a dendrogram (single-linkage) of 50 random points in 2D\n'</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> © 2003</address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -