matlab中的linkage和cluster函数 matlab cluster

   2023-02-07 学习力0
核心提示:Linkage:Agglomerative hierarchical cluster tree(凝聚成层次聚类树)语法:  解释:Z=linkage(x),返回Z,是一个X矩阵中行的分层聚类树(用最短距离算法生成具有层次结构的聚类树)。输入的X为pdist函数输出的距离向量矩阵(pdist函数参考上篇文章) Z=

Linkage:

Agglomerative hierarchical cluster tree(凝聚成层次聚类树)

语法:

 matlab中的linkage和cluster函数

 

解释:

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描述了 如何测量集群之间的距离。

 matlab中的linkage和cluster函数

 

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步中创建的集群将被合并到更大的集群中。

比如:

 matlab中的linkage和cluster函数

 

 

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

 matlab中的linkage和cluster函数

 

第一列,第二列为类的表示,叶子节点为原始数据的行数,1,2之间最短距离为2.2061,聚类为6(原始行数累加所得)

 

Cluters:

Construct agglomerative clusters from linkages(从聚类树结构中构建聚类)

语法:

 matlab中的linkage和cluster函数

 

解释:

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是一个集群分配矩阵,每个最大值是一个列。

如;

 matlab中的linkage和cluster函数

matlab中的linkage和cluster函数          matlab中的linkage和cluster函数              matlab中的linkage和cluster函数                 matlab中的linkage和cluster函数        matlab中的linkage和cluster函数


从上边的聚类树和结果的比较中可以得出,当分为5类时,每个节点单独是一类,聚成4类时,标号1和标号2聚成第4,其他单独为一类;当聚成3类时,更具聚类树,原始数据的标号3和标号5又聚成一类,一次类推。

 

 

 

 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 如何在Abaqus的python中调用Matlab程序
    目录1. 确定版本信息2. 备份python3. 设置环境变量4. 安装程序5. 调试运行参考资料Abaqus2018操作系统Win10 64位Python版本2.7(路径C:\SIMULIA\CAE\2018\win_b64\tools\SMApy\python2.7)2. 备份python将上述的“python2.7”文件夹复制出来,避免因操作错误
    03-16
  • 如何将极坐标数据转换为笛卡尔坐标系并绘制[MATLAB]
    如何将极坐标数据转换为笛卡尔坐标系并绘制[MAT
    你想做的事考虑根据与原点的距离 $r$ 和 $xy$ 平面上的角度 $heta$ 绘制数据 $P(r, heta)$。例如,雷达获取的信号包含有关目标范围 $r$ 和方位角 $heta$ 的信息。就是下图。在本文中,$heta$ 是从 $x$ 轴测量的角度。显示示例考虑创建依赖于 $r, heta$ 的虚拟
    03-16
  • 【MATLAB与机械设计】一维优化进退法确定初始区间
    【MATLAB与机械设计】一维优化进退法确定初始区
    在讨论一维搜索时,首先保证搜索区间函数具有单峰性,也就是在区间[a,b]中函数是凸函数,对于求极小值问题,函数值具有高—低—高的特性,在区间[a,b]上有唯一的最小值。1,方法的建立2.进退法确定搜索区间的程序框图3,根据上述的程序框图,编写的MATLAB程序
    03-08
  • 用于微型四轮驱动的 6T 小齿轮原型和使用 MATLAB 的 FEM 结构分析
    用于微型四轮驱动的 6T 小齿轮原型和使用 MATLA
    介绍我使用迷你 4WD 套件使用 Raspberry Pi 制作机器人汽车。定制零件丰富且方便,因为它们在附近的商店很容易买到。但是,由于Mini 4WD的速度非常快,因此在低速时很难控制速度。因此,我使用 3D 打印机制作了自己的 6T 小齿轮,并尝试改变齿轮比。 成型小齿
    03-08
  • ROS与Matlab系列:一个简单的运动控制 基于matl
    转自:http://blog.exbot.net/archives/2594Matlab拥有强大的数据处理、可视化绘图能力以及众多成熟的算法函数,非常适合算法开发;在控制系统设计中,Simulink也是普遍使用的设计和仿真工具。而ROS系统,则是一种新的标准化机器人系统软件框架。通过ROS,你
    02-10
  • matlab 遍历结构体struc的成员
    MATLAB中专门用于对结构数组的操作的函数并不多,通过 help datatypes获取数据类型列表,可以看到其中的结构数据类型的有关的函数,主要如表4.3.1所示。表4.3.1 结构数组的操作函数函数名             功能描述 deal                 把输入处
    02-09
  • 02-09
  • schroeder reverb matlab实现
    schroeder reverb matlab实现
    原理参考:Natural sounding artificial reverberation combFilter.m:function output = combFilter(delay, gain, input)fs = 48000;delaySample = int32(delayTime * fs / 1000);B = [1 zeros(1, delaySample - 1)];A=[1 zeros(1, delaySample - 2) -gain];
    02-09
  • C/C++中调用matlab引擎计算 matlab转c
    原帖地址:http://blog.sina.com.cn/s/blog_6adcb3530101cvot.html一,在linux环境使用matlab引擎必须先进行一些必要的配置1,matlab引擎依赖/bin/csh启动,所以不管你使用何种shell,都必须安装csh。**2,matlab引擎依赖的动态库文件目录必须在系统当前的
    02-09
  • MATLAB 图像放大/缩小,双线性插值
    MATLAB 图像放大/缩小,双线性插值
    半年前写过matlab最邻近插值的图像缩放,没怎么考虑边界问题。更早之前用Opencv写过双线性插值图像放大,不过写的比较混乱。所以这里用matlab重新再清楚的写一遍。 1 close all; 2 clear all; 3 clc; 45 m=1.8;%放大或缩小的高度 6 n=2.3;%放大或缩小的宽度 7
    02-09
点击排行