为了账号安全,请及时绑定邮箱和手机立即绑定

确定点数最多的聚类中心

确定点数最多的聚类中心

HUH函数 2022-06-07 18:04:21
在使用 KMeans 对具有 GPS 位置的数据集执行聚类后,有没有办法确定具有最多点的聚类,即最大的聚类,然后将其中一个中心与该特定聚类相关联?假设我的代码是:kmeans = KMeans(n_clusters=4) kmeans.fit(points)我知道我可以通过以下方式打印中心:print(kmeans.cluster_centers_) -> e.g [[lat1, long1], [lat2, long2], ...]并通过以下方式确定每个集群的点数:print(Counter(kmeans.labels_)) -> e.g. Counter({0: 510, 1: 200, 2: 50, 3: 44})我现在如何将最大的集群(具有 510 个点的集群)链接到正确的中心坐标?这在 Python 中可能吗?
查看完整描述

2 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

您可以在计数器值上使用 argmax 获得最大的集群标签,并链接到仅索引的中心。


import numpy as np

from sklearn.cluster import KMeans

from collections import Counter


points = np.random.normal(0, 3, size=(100, 2))


kmeans = KMeans(n_clusters=4)

kmeans.fit(points)


counter = Counter(kmeans.labels_)

largest_cluster_idx = np.argmax(counter.values())

largest_cluster_center = kmeans.cluster_centers_[largest_cluster_idx ]


查看完整回答
反对 回复 2022-06-07
?
心有法竹

TA贡献1866条经验 获得超5个赞

标签中的索引 0 对应中心 0,索引 1 对应中心 1。

其他一切都是疯狂的,不是吗?

即使您会自动按大小对它们进行排序(这会破坏一些东西),您也会更新标签,因为用户需要能够为每个点找到正确的中心。

此外,它们按大小重新排序的理论很容易反驳:只需在不同的日子再运行几次,你就会发现反例。特别是,如果您reversed(cluster_centers_)用作初始化,那么它应该在一次迭代内完成并以相反的顺序给出它们。


查看完整回答
反对 回复 2022-06-07
  • 2 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信