如何计算每个观测值与scipy.cluster.hierarchy创建的质心之间的距离?

6tr1vspr  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(124)

我有一个向量x,它代表用tf-idf转换的文本数据。然后我用sklearn的cosine_similarity()函数计算该向量所有点之间的距离,并用scipy.cluster.hierarchy创建病房距离的linkage_matrix。这就创建了一个层次聚类,但我不知道如何计算每个观察点到每个质心的距离。
当我使用sklearn中的kmeans时,我发现我可以通过调用x向量的transform()方法来计算这个值,然后它会返回一个矩阵,其中包含每个观察值和每个聚类之间的欧几里得距离。我想使用scipy.cluster.hierarchy算法来做类似的事情。
我已经尝试检查返回的linkage_matrix以及scipy.spatial.distance.pdist,但它似乎不是我所需要的。
有没有办法做到这一点?

rnmwe5a2

rnmwe5a21#

Z = fcluster(ward(X), threshold, criterion )

阈值:聚类中两点之间的最大距离
Z是一个一维数组,它为每个点分配聚类号。现在你可以估计距离:

  • 获取群集
  • 找到它的质心
  • 求质心与点的距离(与criterion相同,我不确定scipy库中criterion的含义)

进一步阅读:https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.fcluster.html#scipy.cluster.hierarchy.fcluster

相关问题