【问题标题】:How to find cluster centroid with Scikit-learn [closed]如何使用 Scikit-learn 找到集群质心 [关闭]
【发布时间】:2018-10-24 06:13:36
【问题描述】:

我有一个带有(标记)集群的数据集。我试图找到每个集群的质心(一个距离集群所有数据点的距离最小的向量)。

我找到了许多执行聚类的解决方案,然后才找到质心,但我还没有找到现有的。

Python schikit-learn 是首选。谢谢。

【问题讨论】:

  • 你有什么代码可以证明你已经尝试过吗?通常,为了找到集群质心,您只需对集群中的所有示例取特征向量的平均值。 Pandas-esk 示例df.groupby("cluster").mean()
  • 检查thisKMeans 的属性之一是cluster_centers_
  • @KenSyme 我一开始就是这样做的,但我的主管说他不想这样做。
  • 请说明您尝试了哪些方法以及遇到了哪些困难?如果您不确定从哪里开始,那么 SO 不是这个地方。 Start here
  • @ninesalt 我看到了,但我的数据已经被标记,我不想执行 kmeans

标签: python machine-learning scikit-learn centroid


【解决方案1】:

直接来自docs

from sklearn.neighbors.nearest_centroid import NearestCentroid
import numpy as np
X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
y = np.array([1, 1, 1, 2, 2, 2])
clf = NearestCentroid()
clf.fit(X, y)

print(clf.centroids_)
# [[-2.         -1.33333333]
#  [ 2.          1.33333333]]

【讨论】:

  • 仅供参考,这只是取平均值(欧几里得距离)或中位数(曼哈顿距离)。
  • 然后您可以使用 clf.classes_ 将计算出的质心与原始数据类进行匹配。
猜你喜欢
  • 2019-12-31
  • 2019-12-31
  • 2016-11-16
  • 2020-06-22
  • 1970-01-01
  • 2014-03-06
  • 2013-07-21
  • 2021-05-23
  • 1970-01-01
相关资源
最近更新 更多