我正在研究一维基因位置数据,就像
[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中没有这样的函数可以根据簇距离内的最大值来剪切层次树。
有没有人知道如何处理这个问题? 我尝试重写一个层次结构算法,其中可能包含这样的阈值,但似乎很难做到>。<
提前致谢
答案 0 :(得分:0)
如果您需要最大距离对象,请使用完整链接。
然后将树砍成所需的高度。
或者,您也可以实施Leader群集。这是愚蠢的,但他的最大距离是那里集群半径距离的两倍。
答案 1 :(得分:-1)
如果使用scikit-learn是可能的,您可以查看http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
它有一个限制两个样本之间距离的参数