scipy clustering module中有无数的选择,我想确定我正确使用它们。我有一个对称距离矩阵DR
,我想找到所有簇,使得簇中的任何点都有一个距离不超过1.2的邻居。
L = linkage(DR,method='single')
F = fcluster(L, 1.2)
在linkage
中,我非常确定single
是我想要的(最近点算法)。但是对于fcluster
,我认为我想要默认的“不一致”方法:
'不一致':如果群集节点及其所有后代的值不一致小于或等于t,则其所有叶子后代都属于同一个平面群集。当没有非单一群集符合此标准时,每个节点都会分配给自己的群集。 (默认)
但也许这是'距离'方法:
'distance':形成平面簇,使每个平面簇中的原始观测值不会比t具有更大的共生距离。
......我不确定。哪一个使用?在这种情况下,共生距离距离意味着什么?
答案 0 :(得分:1)
你可能想看看DBSCAN。请参阅维基百科上的文章。看起来您正在寻找DBSCAN的输出,其中minPts = 1且epsilon = 1.2
从维基百科上的伪代码实现判断相当简单,特别是因为你似乎已经有了距离矩阵。你自己动手吧。