如何根据集群之间的距离阈值确定集群的数量,以便使用 sklearn 进行凝聚聚类?
How to decide the numbers of clusters based on a distance threshold between clusters for agglomerative clustering with sklearn?
With sklearn.cluster.AgglomerativeClustering
from sklearn
我需要提前指定结果簇的数量。我想做的是合并集群,直到达到集群之间的某个最大距离,然后停止集群过程。
因此,聚类的数量可能因数据结构而异。我也不关心生成的簇的数量和簇的大小,只关心簇的质心不超过一定距离。
我怎样才能做到这一点?
直接使用scipy代替sklearn。恕我直言,好多了。
层次聚类是一个三步过程:
- 计算树状图
- 可视化和分析
- 提取分支
但这不符合 sklearn 以监督学习为导向的 API 偏好,它希望一切都实现 fit
、predict
API。 ..
SciPy 有一个功能适合你:
scikit-learn 的凝聚聚类中 distance_threshold
参数的这个拉取请求可能很有趣:
https://github.com/scikit-learn/scikit-learn/pull/9069
看来要在0.22版本中合并了。
编辑:参见 以使用 scipy.
实现具有基于距离的停止标准的单链接聚类的示例
With sklearn.cluster.AgglomerativeClustering
from sklearn
我需要提前指定结果簇的数量。我想做的是合并集群,直到达到集群之间的某个最大距离,然后停止集群过程。
因此,聚类的数量可能因数据结构而异。我也不关心生成的簇的数量和簇的大小,只关心簇的质心不超过一定距离。
我怎样才能做到这一点?
直接使用scipy代替sklearn。恕我直言,好多了。
层次聚类是一个三步过程:
- 计算树状图
- 可视化和分析
- 提取分支
但这不符合 sklearn 以监督学习为导向的 API 偏好,它希望一切都实现 fit
、predict
API。 ..
SciPy 有一个功能适合你:
scikit-learn 的凝聚聚类中 distance_threshold
参数的这个拉取请求可能很有趣:
https://github.com/scikit-learn/scikit-learn/pull/9069
看来要在0.22版本中合并了。
编辑:参见