链接算法后的数据聚类

时间:2013-03-25 18:21:34

标签: matlab statistics hierarchical-clustering

我不是统计和数据分析方面的专家,因此我无法理解我获得的行为是否正确。我在这里寻求你的帮助。

假设我有这些我希望聚类的样本(平面中的10个点 - 问题的简化版本):

 [X Y] =

266   450
266   400
258   168
290   442
295   438
273   432
294   158
318   161
250   423
253   413

要对它们进行聚类,我可以使用群集树

Z = linkage([ X Y ],'complete');

是(dendrogram(Z,10)

enter image description here

现在我想根据附加到树节点的距离来提取簇。

假设我的距离为150,我希望通话

 T = cluster(Z,'Cutoff',150);

返回2个群集。但它只给我一个(我想),即

T =

 1
 1
 1
 1
 1
 1
 1
 1
 1
 1

我错过了什么?

2 个答案:

答案 0 :(得分:1)

使用inconsistent(Z,150)并查看第4列中的值。增加一个小正数的截止值沿着树步进。

E.g。

cluster(Z,'cutoff',0.7)

没有给你你想要的东西(我认为)

但是

cluster(Z,'cutoff',0.8)

确实

答案 1 :(得分:1)

cluster 标准 默认为不一致'inconsistent')。

由于dendrogram中的高度距离,您可以将 标准 更改为'distance', 即:

T = cluster(Z, 'Cutoff', 150, 'criterion', 'distance');