如何在簇距离内按给定的最大值剪切层次结构簇树?

时间:2014-12-21 00:30:53

标签: python algorithm numpy

我正在研究一维基因位置数据,就像

  

[705118,705118,832132,860402,865710,867206,925364,925364,925364]

(大约2000个项目在一个数组中)我希望将数组划分为簇中距离小于或等于2000的簇。

所以我用了

chrd=scipy.spatial.distance.pdist(chrn,metric='euclidean') 

获取距离矩阵然后

scipy.cluster.hierarchy.linkage(chrd,method='average',metric='euclidean') 

获取链接矩阵。

但是在scipy.cluster.hiearchy.fcluster中没有这样的函数可以根据簇距离内的最大值来剪切层次树。

有没有人知道如何处理这个问题? 我尝试重写一个层次结构算法,其中可能包含这样的阈值,但似乎很难做到>。<

提前致谢

2 个答案:

答案 0 :(得分:0)

如果您需要最大距离对象,请使用完整链接

然后将树砍成所需的高度。

或者,您也可以实施Leader群集。这是愚蠢的,但他的最大距离是那里集群半径距离的两倍。

答案 1 :(得分:-1)

如果使用scikit-learn是可能的,您可以查看http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html

它有一个限制两个样本之间距离的参数