gpt4 book ai didi

python-3.x - 为什么 sklearn.cluster.AgglomerativeClustering 不给我们合并集群之间的距离?

转载 作者:行者123 更新时间:2023-12-04 16:30:38 26 4
gpt4 key购买 nike

我正在使用 sklearn.cluster.AgglomerativeClustering。它从每个数据点一个集群开始,然后迭代地将两个“最接近”的集群合并在一起,从而形成一棵二叉树。什么构成集群之间的距离取决于链接参数。

了解每一步合并集群之间的距离会很有用。然后,当下一个要合并的集群相距太远时,我们可以停止。唉,这似乎在 AgglomerativeClustering 中不可用。

我错过了什么吗?有没有办法恢复距离?

最佳答案

您可能想看看 scipy.cluster.hierarchy,它提供了比 sklearn.cluster.AgglomerativeClustering 更多的选项。

聚类是通过 linkage 函数完成的,该函数返回一个矩阵,其中包含合并后的聚类之间的距离。这些可以用树状图可视化:

from scipy.cluster.hierarchy import linkage, fcluster, dendrogram
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

X, cl = make_blobs(n_samples=20, n_features=2, centers=3, cluster_std=0.5, random_state=0)
Z = linkage(X, method='ward')

plt.figure()
dendrogram(Z)
plt.show()

dendrogram.png

一个人可以根据各种标准从链接矩阵形成平面集群,例如观察距离:

clusters = fcluster(Z, 5, criterion='distance')

更详细地讨论了 Scipy 的层次聚类 here .

关于python-3.x - 为什么 sklearn.cluster.AgglomerativeClustering 不给我们合并集群之间的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46027996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com