kmeans矩阵展示代码
时间: 2023-07-09 17:29:21 浏览: 40
这里是使用Python实现的k-means算法,以及矩阵展示的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
def kmeans(X, K, max_iters):
# 初始化聚类中心
centroids = X[np.random.choice(range(len(X)), K)]
for i in range(max_iters):
# 计算每个点到聚类中心的距离
distances = np.sqrt(((X - centroids[:, np.newaxis])**2).sum(axis=2))
# 找到每个点所属的聚类
cluster = np.argmin(distances, axis=0)
# 更新聚类中心
for k in range(K):
centroids[k] = X[cluster==k].mean(axis=0)
return centroids, cluster
# 生成随机数据
X = np.random.rand(100, 2)
# 使用k-means算法进行聚类
centroids, cluster = kmeans(X, K=3, max_iters=10)
# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=cluster)
plt.scatter(centroids[:, 0], centroids[:, 1], marker='x', s=200, linewidths=3, color='r')
plt.show()
```
在上述代码中,kmeans函数实现了k-means算法,X是输入的数据矩阵,K是聚类的数量,max_iters是最大迭代次数。在k-means算法中,首先随机选择K个数据点作为聚类中心,然后计算每个点到聚类中心的距离,将每个点分配到距离最近的聚类中心所在的簇中,最后更新聚类中心。重复以上步骤,直到收敛或达到最大迭代次数为止。最终得到的聚类中心和每个点所属的簇可以用于可视化展示。