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函数的更多相关文章

  1. MATLAB中提高fwrite和fprintf函数的I/O性能

    提高fwrite和fprintf函数的I/O性能 http://www.matlabsky.com/thread-34861-1-1.html     今天我们将讨论下著名的fwrite(fprint ...

  2. matlab中求解线性方程组的rref函数

    摘自:http://www.maybe520.net/blog/987/ matlab中怎么求解线性方程组呢? matlab中求解线性方程组可应用克拉默法则(Cramer's Rule)即通过det( ...

  3. Matlab中常见的神经网络训练函数和学习函数

    一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a networ ...

  4. matlab中m文件与m函数的学习与理解

    1. m文件与m函数的区别 所谓 MATLAB 程序,大致分为两类: M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件. M 脚本 ...

  5. MATLAB中导入数据:importdata函数

    用load函数导入mat文件大家都会.可是今天我拿到一个数据,文件后缀名竟然是'.data'.该怎么读呢? 我仅仅好用matlab界面Workspace区域的"import data&quo ...

  6. 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]: 表示 ...

  7. Matlab中的cell、size函数

    参考网址:http://blog.sina.com.cn/s/blog_5efed5800100exmj.html Cell函数 如果p为一个数,那么h(1)=p,是没有问题的. 如果p为一个向量,那 ...

  8. matlab中fix, floor, ceil, round 函数的使用方法

    转载: https://www.ilovematlab.cn/thread-91895-1-1.html Matlab取整函数有: fix, floor, ceil, round.具体应用方法如下: ...

  9. MATLAB中产生随机数的那些函数

    1.产生从imin~imax的m*n矩阵 randi([imin,imax],m,n); 2.产生1~n的无重复随机整数 randperm(n);

随机推荐

  1. codeforce 459DIV2 C题

    题意 一串括号字符串,里面存在一些‘?’,其中‘?’既可以当作 '(' 又可以当作 ')' ,计算有多少对(l,r),在s中[sl,s(l+1),s(l+2),.....sr],内的括号是匹配的.n= ...

  2. sql语句查询中exists中为什么要用select 1?

    select * from call_cdr_xz_200609 a where and a.ori_charge<>0 and exists(select 1 from special ...

  3. javascript nonono

    javascript实现的点击元素实现当前轮换展现效果 javascript实现的点击元素实现当前轮换展现效果:本章节分享一段代码实例,它实现了点击元素实现当前展现效果,并且具有比较人性化的变换效果. ...

  4. 实践作业3:白盒测试---细化明确任务DAY5

    收到老师给我写的评论,感觉老师真的太认真,每个博客都有仔细的,参考了老师发给我的博客,我才明白老师想要的博客内容原来是具体实际的进展记录.我们组其实这些东西早就确定了,会议也开了,但是我之前不明白博客 ...

  5. jQuery提供的存储接口

    jQuery.data( element, key, value ) //静态接口,存数据jQuery.data( element, key ) //静态接口,取数据 .data( key, valu ...

  6. http请求和返回的head字段

    一,http请求分请求首部字段,通用首部字段,实体首部字段.http响应包含响应首部字段,通用首部字段,实体首部字段. 二,http1.1定义了47种首部字段.1,通用首部字段:cache-contr ...

  7. Mac10.9下的libtiff编译

    libtiff介绍 libtiff下载 libtiff编译 libtiff介绍? 参考:http://en.wikipedia.org/wiki/Tiff libtiff下载 直接到官网下载:http ...

  8. 问渠那得清如许?为有源头活水来。——java面向对象的思想

    20169205 2016-2017-2 <移动平台应用开发实践>第2周学习总结 教材学习内容总结 本次作业要求的部分主要是Java高级语言实现面向对象编程的基本方法,其中所介绍的面向对象 ...

  9. LibreOJ 6002 最小路径覆盖(最大流)

    题解:最小路径覆盖=总点数减去最大匹配数,拆点,按照每条边前一个点连源点,后一个点连汇点跑最大流,即可跑出最大匹配数,然后减一减就可以了~ 代码如下: #include<queue> #i ...

  10. try catch finally的用法

    http://hi.baidu.com/vincentwen/blog/item/b92d0923f1e4c64793580757.html try catch finally 1.将预见可能引发异常 ...