Scipy集群:在fcluster中使用哪种方法进行简单分组?

时间:2012-03-15 16:21:06

标签: python scipy cluster-analysis

scipy clustering module中有无数的选择,我想确定我正确使用它们。我有一个对称距离矩阵DR,我想找到所有簇,使得簇中的任何点都有一个距离不超过1.2的邻居。

L = linkage(DR,method='single')
F = fcluster(L, 1.2)

linkage中,我非常确定single是我想要的(最近点算法)。但是对于fcluster,我认为我想要默认的“不一致”方法:

  

'不一致':如果群集节点及其所有后代的值不一致小于或等于t,则其所有叶子后代都属于同一个平面群集。当没有非单一群集符合此标准时,每个节点都会分配给自己的群集。 (默认)

但也许这是'距离'方法:

  

'distance':形成平面簇,使每个平面簇中的原始观测值不会比t具有更大的共生距离。

......我不确定。哪一个使用?在这种情况下,共生距离距离意味着什么?

1 个答案:

答案 0 :(得分:1)

你可能想看看DBSCAN。请参阅维基百科上的文章。看起来您正在寻找DBSCAN的输出,其中minPts = 1且epsilon = 1.2

从维基百科上的伪代码实现判断相当简单,特别是因为你似乎已经有了距离矩阵。你自己动手吧。