具有scikit-learn的K均值算法:质心初始化时的问题

问题描述 投票:0回答:1

[嗨,我正在尝试使用scikit-learn用k-means算法构造一个简单的示例。在我的示例中,我想使用预定义的群集质心。因此,我正在使用numpy创建np.arrays。

起初,我将点分成两个数组:

centroids = np.array([[[7, 3], [6, 5], [3, 10], [9, 8]])
X = np.array([[2, 3], [4, 9], [8, 4], [1, 1]])

在那之后,我得到了我的KMeans(我想这里可能是我的问题):

km = KMeans(n_clusters=4, init=centroids, n_init=1).fit(X)

[我在这里定义我的k(= 4),它们在哪里(以质心表示)和init(= 1)的数量,最后将其拟合为X。

如果我现在正在使用matplotlib plt.scatter

plt.scatter(X[:, 0], X[:, 1], c='red', s=100)
plt.show()

仅在图中显示数组X的点。

Result-Figure

我的目标是使用plt.show()显示算法的结果,在其中我可以根据它们的颜色看到X的点属于此聚类。

知道我可能在哪里错了吗?

谢谢!

python machine-learning k-means
1个回答
0
投票

plt.show()之前添加此行:

plt.scatter(km.cluster_centers_[:, 0], km.cluster_centers_[:, 1])

但是目前,聚类中心位于您预先指定的点上,因为您将四个聚类放在四个点(X)上,将它们作为初始解决方案...enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.