K-means聚类算法 sklearn 实现训练数据集:ex7data2.mat 文件包含一张表 X ,下面是部分数据: 1.84207953112616 4.60757160448228 5.65858312061882 4.79996405444154 6.35257892020234 3.29085449875427 2.90401652528136 4.61220411281507 3.23197915720744 4.93989405282630 函数调用时的参数需要与测试文件中预处
时间: 2024-03-24 22:41:27 浏览: 57
以下是使用sklearn实现K-means聚类算法的代码:
```
import scipy.io
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 加载数据
data = scipy.io.loadmat('ex7data2.mat')
X = data['X']
# 设置K值和最大迭代次数
K = 3
max_iters = 10
# 创建KMeans模型并训练
kmeans = KMeans(n_clusters=K, max_iter=max_iters)
kmeans.fit(X)
# 获取聚类结果
centroids = kmeans.cluster_centers_
idx = kmeans.labels_
# 绘制聚类结果
colors = ['r', 'g', 'b']
for i in range(K):
plt.scatter(X[idx==i, 0], X[idx==i, 1], c=colors[i], label='Cluster {}'.format(i+1))
plt.scatter(centroids[:, 0], centroids[:, 1], marker='x', s=200, linewidths=3, color='k', label='Centroids')
plt.legend()
plt.show()
```
首先,我们加载数据,并设置K值和最大迭代次数。然后,我们创建KMeans模型并训练数据。在训练结束后,我们可以获取聚类结果,包括聚类中心和数据点的分配情况。最后,我们使用matplotlib绘制聚类结果。
需要注意的是,函数调用时的参数需要与测试文件中预处理代码中的参数相同,即K=3,max_iters=10。
阅读全文