matlab中的linkage和cluster函数
Linkage:
Agglomerative hierarchical cluster tree(凝聚成层次聚类树)
语法:

解释:
Z=linkage(x),返回Z,是一个X矩阵中行的分层聚类树(用最短距离算法生成具有层次结构的聚类树)。输入的X为pdist函数输出的距离向量矩阵(pdist函数参考上篇文章)
Z=linkage(x,method),使用指定的method创建树
Z=linkage(x,method,metric)利用度量来计算
Z=linkage(x,method,pdist_input)将参数传递给pdist函数。。。。
Z=linkage(x,method,metric,’savememory’,value)当value为true时使用一种内存保存算法,当value为false时使用标准算法。
Z=linkage(Y),用距离矩阵Y表示,Y可以是由pdist函数计算出的,也可以是一个更一般的矩阵
Z=linkage(Y,method)用指定的method创建树,method描述了 如何测量集群之间的距离。

Single:最短距离(缺省)
Complete:最大距离
Average:平均距离
Centroid:重心距离
Ward:离差平方和
输出Z:
Z是一个(m-1)-乘3矩阵,m是原始数据中行的数量。Z的第1和2列包含成对的集群索引,以形成一个二叉树。叶节点从1到m.叶节点是由所有更高的集群组成的单例集群。每一个新形成的集群,对应于第Z行(I,:),被分配索引m+I。Z(I,1:2)包含构成集群m+I的两个组件集群的索引。有m-1更高的集群,对应于集群树的内部节点。Z(I,3)包含在第Z行(I::)中合并的两个簇之间的链接距离。
例如,假设有30个初始节点,第12步集群5和集群7合并。假设它们的距离是1。5。然后Z(12,:)是5 7 1。5。新形成的集群将有索引12+30=42。如果集群42出现在后面一行中,则意味着第12步中创建的集群将被合并到更大的集群中。
比如:

根据结果画出二叉树如下:

第一列,第二列为类的表示,叶子节点为原始数据的行数,1,2之间最短距离为2.2061,聚类为6(原始行数累加所得)
Cluters:
Construct agglomerative clusters from linkages(从聚类树结构中构建聚类)
语法:

解释:
T=cluster(Z,’cutoff’,c): 从聚集的层次化集群树Z中构造集群。Z是一个大小的矩阵(m-1)-乘3(由linkage函数生成),m是原始数据中行的数量。c是将Z切割成集群的阈值。当一个节点及其所有子节点的值都小于c时,集群就会形成,所有节点在节点或下面的所有叶子都被分组到一个集群中。t是一个大小为m的向量,包含每个观察的群集分配。如果c是一个向量,那么T是一个集群分配的矩阵,每个截止值都有一个列
T=cluster(Z,’cutoff’,c,’depth’,d): 通过观察每个节点下面的深度d来评估不一致的值。默认的深度是2。
T=cluster(Z,’cutoff’,c,’criterion’,criterion): 使用指定的标准来形成集群,其中标准是字符串“inconsistent”(默认)或“depth”。“depth”标准使用在节点上合并的两个子节点之间的距离来测量节点高度。在一个节点的高度小于c的节点的所有叶节点都被分组到一个集群中。
T=cluster(Z,’maxclust’,n): 用“depth”准则构造一个最大的n个集群。集群找到最小的高度,通过树的水平切割留下n个或更少的集群。
如果n是一个向量,那么T是一个集群分配矩阵,每个最大值是一个列。
如;


从上边的聚类树和结果的比较中可以得出,当分为5类时,每个节点单独是一类,聚成4类时,标号1和标号2聚成第4,其他单独为一类;当聚成3类时,更具聚类树,原始数据的标号3和标号5又聚成一类,一次类推。
matlab中的linkage和cluster函数的更多相关文章
- MATLAB中提高fwrite和fprintf函数的I/O性能
提高fwrite和fprintf函数的I/O性能 http://www.matlabsky.com/thread-34861-1-1.html 今天我们将讨论下著名的fwrite(fprint ...
- matlab中求解线性方程组的rref函数
摘自:http://www.maybe520.net/blog/987/ matlab中怎么求解线性方程组呢? matlab中求解线性方程组可应用克拉默法则(Cramer's Rule)即通过det( ...
- Matlab中常见的神经网络训练函数和学习函数
一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a networ ...
- matlab中m文件与m函数的学习与理解
1. m文件与m函数的区别 所谓 MATLAB 程序,大致分为两类: M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件. M 脚本 ...
- MATLAB中导入数据:importdata函数
用load函数导入mat文件大家都会.可是今天我拿到一个数据,文件后缀名竟然是'.data'.该怎么读呢? 我仅仅好用matlab界面Workspace区域的"import data&quo ...
- matlab中的size(),length(),ndims()函数的使用方法
1.size()使用方法: size(a)表示矩阵每一个维度的长度 比方size([1 2 3;4 5 6]) 等于[2 3]: 表示他有2行3列. size([1 2 3]) 等于[1 3]: 表示 ...
- Matlab中的cell、size函数
参考网址:http://blog.sina.com.cn/s/blog_5efed5800100exmj.html Cell函数 如果p为一个数,那么h(1)=p,是没有问题的. 如果p为一个向量,那 ...
- matlab中fix, floor, ceil, round 函数的使用方法
转载: https://www.ilovematlab.cn/thread-91895-1-1.html Matlab取整函数有: fix, floor, ceil, round.具体应用方法如下: ...
- MATLAB中产生随机数的那些函数
1.产生从imin~imax的m*n矩阵 randi([imin,imax],m,n); 2.产生1~n的无重复随机整数 randperm(n);
随机推荐
- 解决nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx先监听了ipv4的80端口之后又监听了ipv6的80端口,于是就重复占用了.更加坑人的是你去看了端口占用它又把80端口释放了,是不是很囧. 解决方案是编辑nginx的配置文件 修改这一段:
- hp警告Creating default object from empty value 问题的解决方法
hp警告Creating default object from empty value 问题的解决方法 解决方法是找到报错的位置然后看哪个变量是没有初始化而直接使用的,将这个变量先实例化一个空类.如 ...
- 如何学习MySQL
转自高手的帖子 1.坚持阅读官方手册,看MySQL书籍作用不会特别大:(挑选跟工作相关的内容优先阅读,例如InnoDB存储引擎,MySQL复制,查询优化) 2.阅读官方手册,同时对阅读的内容做对应的测 ...
- lucene 第二天
Lucene/Solr 第二天 1. 课程计划 Lucene的Field Lucene的索引库维护 lucene的查询 a) Query子对象 b) QueryParser Lucene相关度排序 ...
- Entity Framework 6.0 Tutorials(10):Index Attribute
Index Attribute: Entity Framework 6 provides Index attribute to create Index on a particular column ...
- zend studio中安装Emmet插件后迅速编写html的方法
table>tr*3>th*1+td*3h1{hello} <h1>hello</h1>a[href="xx.xxx.xxx(网址) ...
- BBS后台发送邮件&修改文章
一:Django发送邮件 在setting中配置 # EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST ...
- git之创建版本库
好吧,你知道了git既然有这么多好处,那么我们接下来就可以使用git命令来创建我们的仓库.这一节我们来学习一下如何在windows下面建立自己的仓库.首先我们先在本地创建一个主目录,比如文件名字叫le ...
- yum 安装telnet
检测是否安装 rpm -qa |grep telnet 安装 yum install xinetd yum install telnet-server yum -y install telnet 再次 ...
- AD对象DirectoryEntry本地开发
DirectoryEntry类如果需要在本地计算机开发需要满足以下条件: 1.本地计算机dns解析必须和AD域控制器的dns保持一致,如图: 2.必须模拟身份验证,才能操作查询AD用户 /// < ...