主要内容

clusterdata.

从数据构建聚类

描述

例子

T= ClusterData(X截止返回输入数据矩阵的每个观察(行)的群集索引X给定阈值截止用于切割凝聚层次树链接函数生成X

clusterdata.金宝app支持群集聚类并包含该群集pdist链接, 和功能,您可以单独使用以进行更详细的分析。看算法描述为更多的细节。

例子

T= ClusterData(X名称,值使用一个或多个名称值对参数指定群集选项。您必须指定截止要么maxclust..例如,指定'maxclust',5找到最多五个群集。

例子

全部折叠

使用两种不同的方法查找并在随机生成的数据集中可视化三个集群:

  1. 指定值的值截止输入参数。

  2. 指定值的值'maxclust'名称-值对的论点。

创建由三个标准均匀分布的随机生成的数据组成的示例数据集。

RNG('默认');重复性的%X =[画廊(“uniformdata”,[10 3],12);......画廊(“uniformdata”3 [10] 13) + 1.2;......画廊(“uniformdata”,[10 3],14)+2.5];y = [α(10,1); 2 *(10,1)); 3 *(10,1))];%的实际类

创建数据的散点图。

散射3(x(:,1),x(:,2),x(:,3),100,y,“填充”) 标题('三个集群中的随机生成的数据);

图中包含一个坐标轴。标题为“三簇随机生成数据”的轴包含一个散点类型的对象。

通过指定值3,在数据中找到最多三个群集截止输入参数。

t1 = clusterdata(x,3);

因为截止大于2,clusterdata.解释截止作为最大群集数。

用生成的群集分配绘制数据。

scatter3 (X (: 1) X (:, 2), X(:, 3), 100年,T1,“填充”) 标题('聚类结果');

图中包含一个坐标轴。具有群集标题结果的轴包含类型分散的对象。

通过指定值3来找到最多三个集群'maxclust'名称-值对的论点。

t2 = clusterdata(x,“Maxclust”3);

用生成的群集分配绘制数据。

scatter3 (X (: 1) X (:, 2), X(:, 3), 100年,T2,“填充”) 标题('聚类结果');

图中包含一个坐标轴。具有群集标题结果的轴包含类型分散的对象。

使用两种方法,clusterdata.识别数据中的三个不同群集。

创建分层群集树并在一步中查找群集。使用3-D散点图可视化簇。

创建一个由标准均匀分布生成的样本数据的20,000 × 3矩阵。

RNG('默认');重复性的%x =兰特(20000,3);

方法创建的分层集群树中最多可以找到四个集群ward联动方法。指定“SaveMemory”作为“上”在不计算距离矩阵的情况下构造簇。否则,如果您的机器没有足够的内存以保持距离矩阵,则可以收到内存up-Memory错误。

t = clusterdata(x,'连锁'“病房”“SaveMemory”“上”“Maxclust”4);

绘制数据以不同颜色显示的每个群集。

散射3(x(:,1),x(:,2),x(:,3),10,t)

图中包含一个坐标轴。轴包含类型散射的对象。

clusterdata.识别数据中的四个群集。

输入参数

全部折叠

输入数据,指定为具有两行或多行的数字矩阵。行表示观察结果,列表示类别或维度。

数据类型:单身的|双倍的

定义的层次树切割阈值链接,指定为之间的正标量02或一个正整数≥2clusterdata.根据指定的值表现不同截止

  • 如果0 <截止< 2,然后clusterdata.形成群集时不一致值大于截止

  • 如果截止是一个整数≥2,然后clusterdata.形成最多截止集群。

当您指定时截止,您无法指定任何名称值对参数。

例子:clusterdata(x,3)

数据类型:单身的|双倍的

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值是相应的价值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:clusterdata(x,'linkage','ward','maxclust',3)最多创建三个集群X使用沃德联系。

在层次集群树中定义集群的标准,指定为逗号分隔对,由'标准'和任何一种'不一致'要么'距离'.当您指定时'标准',还必须指定的值maxclust.要么截止

例子:ClusterData(x,'标准','距离','截止',。5)

数据类型:char|细绳

截止不一致或距离标准,指定为包括的逗号分隔对'隔断'和正标量。clusterdata.用途截止作为节点的高度或不一致系数的阈值,具体取决于值的值标准.如果指定的值'隔断'如果没有指定定义群集的标准,那么clusterdata.用来'不一致'默认情况下的标准。

  • 如果'标准''距离',然后clusterdata.将所有叶子或在节点下方的组中的组中的一部分都提供给群集中的,条件是节点的高度小于截止

  • 如果'标准''不一致',那么不一致节点的值和其所有子节点必须小于截止clusterdata.将它们分组成一组。

您必须指定截止要么maxclust.

例子:ClusterData(x,'截止',0.2)

数据类型:单身的|双倍的

计算不一致的值的深度,指定为逗号分隔对组成“深度”和一个数字标量。clusterdata.通过查看分层群集树中的每个节点下方的指定深度来评估不一致的值。当您指定时“深度”,还必须指定的值maxclust.要么截止

例子:clusterdata (X,“深度”、3、“截止”,0.5)

数据类型:单身的|双倍的

距离度量,指定为逗号分隔对组成'距离'以及任何被接受的距离度量pdist函数,如下表所示。当您指定时'距离',还必须指定的值maxclust.要么截止

度规 描述
“欧几里得”

欧几里德距离(默认)

“squaredeuclidean”

平方欧几里德距离。(此选项仅提供效率。它不满足三角不等式。)

'seuclidean'

标准化的欧几里德距离。观察之间的每个坐标差异通过除以标准偏差的相应元素来缩放,S =性病(X, omitnan)

'mahalanobis'

马氏距离的样本协方差XC = X (X, omitrows)

'城市街区'

城市街区距离

闵可夫斯基的

Minkowski距离。默认指数为2.使用不同的指数P,指定P闵可夫斯基的, 在哪里P是一个正标量值:闵可夫斯基,P

“chebychev”

Chebychev距离(最大坐标差异)

的余弦

1减去点之间夹角的余弦值(作为向量)

'相关性'

1减去点之间的样本相关性(作为值的序列处理)

“汉明”

汉明的距离,这是坐标的百分比

'jaccard'

一个减去Jaccard系数,这是不同的非零坐标的百分比

“矛曼”

一个减去样本Spearman的观察之间的等级相关性(视为价值序列)

DISTFUN

自定义距离功能手柄。距离函数有这样的形式

功能ZJ D2 = distfun(子)距离计算%......
在哪里

  • Zi.是A.1-经过-n包含单个观测值的向量。

  • ZJ.是一个M2-经过-n矩阵包含多个观察。DISTFUN必须接受矩阵ZJ.有任意数量的观测结果。

  • D2是一个M2-经过-1距离向量D2(k)观察距离是多少Zi.zj(k,:)

如果您的数据不稀疏,则使用内置距离通常比使用函数句柄更快。

有关更多信息,请参阅距离指标

例子:ClusterData(x,'距离','minkowski','maxclust',4)

数据类型:char|细绳|function_handle

用于计算群集之间的计算距离的算法,指定为包括的逗号分隔对'连锁'和任何由此接受的算法链接函数,如下表所述。当您指定时'连锁',还必须指定的值maxclust.要么截止

算法 描述
'平均'

未加权平均距离(UPGMA)

'质心'

质心距离(UPGMC),仅适用于欧几里德距离

'完全的'

最远的距离

“中值”

加权质量距离(WPGMC),仅适用于欧几里德距离

'单身的'

最短的距离

“病房”

内平距离(最小方差算法),仅适用于欧几里德距离

'加权'

加权平均距离(WPGMA)

有关更多信息,请参阅联系

例子:clusterdata(x,'链接','中位','maxclust',4)

数据类型:char|细绳

形成的最大簇数,指定为逗号分隔对'maxclust'和一个正整数。

您必须指定截止要么maxclust.

例子:clusterdata (X, MaxClust, 4)

数据类型:单身的|双倍的

保存内存的选项,指定为逗号分隔的对“SaveMemory”和任何一种“上”要么'离开'.当您指定时“SaveMemory”,还必须指定的值maxclust.要么截止

“上”设置原因clusterdata.在不计算距离矩阵的情况下构造簇。的“上”当满足这两个条件时,设置生效:

  • 连锁'质心'“中值”, 要么“病房”

  • 距离“欧几里得”(默认)。

当这两个条件适用时,默认值“SaveMemory”“上”如果X有20列或更少,或者计算机没有足够的内存来存储距离矩阵。否则,默认值“SaveMemory”'离开'

“SaveMemory”“上”,链接运行时间与维度数量成比例(列数X).当“SaveMemory”'离开',链接内存需求是成比例的N2, 在哪里N为观察次数。选择最佳(最少时间)设置“SaveMemory”这取决于问题的维度、观察结果的数量和可用内存。默认的“SaveMemory”设置是最优设置的粗略近似。

例子:'savememory','开'

数据类型:char|细绳

输出参数

全部折叠

群集指数,作为数字列向量返回。T有多少行X和每一行T中对应观测值的聚类分配X

提示

  • 如果'连锁''质心'要么“中值”,然后链接可以产生一个不单调的簇树。当两个星团的距离,r年代,第三个群集小于之间的距离r年代.在本例中,在使用默认方向绘制的树形图中,从叶子到根节点的路径采取了一些向下的步骤。为避免此结果,请指定另一个值'连锁'.以下图像显示了非单调簇树。

    在这种情况下,集群1和群集3连接到新群集中,而该新群集和群集2之间的距离小于集群1和群集3之间的距离。

算法

如果指定值c为了截止输入参数,然后Tclusterdata.Xc)执行以下步骤:

  1. 在观察成对之间创建欧几里德距离的向量X通过使用pdist

    y =pdistX、“欧几里得”)

  2. 创建一个凝聚的分层群集树Y通过使用链接与之'单身的'计算集群之间最短距离的方法。

    z =链接(y,'单')

  3. 如果0 <c< 2, 采用定义群集Z当不一致的值小于c

    T(z,'截止',c)

  4. 如果c是一个整数值≥2, 采用找到最大的c集群的Z

    T=集群(Z, MaxClust, c)

替代功能

如果您有一个分层群集树Z的输出链接输入数据矩阵的功能X), 您可以使用对…进行聚集的群集Z并返回每个观察(行)的群集分配X

在R2006A之前介绍