【发布时间】:2012-04-01 04:53:22
【问题描述】:
scipy clustering module 中有无数的 optin,我想确保我正确使用它们。我有一个对称距离矩阵DR,我想找到所有集群,使得集群中的任何点都有一个距离不超过 1.2 的邻居。
L = linkage(DR,method='single')
F = fcluster(L, 1.2)
在linkage 中,我很确定single 是我想要的(最近点算法)。但是对于fcluster,我认为我想要默认的“不一致”方法:
‘不一致’:如果一个集群节点及其所有后代的值不一致,小于或等于 t,那么它的所有叶子后代都属于同一个平面集群。当没有非单例集群满足这个标准时,每个节点都被分配到自己的集群中。 (默认)
但也许是“距离”方法:
‘距离’:形成平面簇,使得每个平面簇中的原始观测值不大于 t。
...我不确定。使用哪一个?在这种情况下,cophenetic distance distance 是什么意思?
【问题讨论】:
-
你可能想看看 DBSCAN。请参阅有关它的维基百科文章。看起来您正在寻找 minPts=1 和 epsilon=1.2 的 DBSCAN 输出
-
@Anony-Mousse 在维基百科上查看它,似乎 DBSCAN 正是我在说什么。问题现在可以表述为:DBSCAN 是否在
scipy中实现? -
从维基百科上的伪代码来看,实现起来相当简单,特别是因为你似乎已经有了一个距离矩阵。自己做吧。
标签: python scipy cluster-analysis