编写一个简单的kmeas算法代码和流程图
时间: 2024-04-03 17:36:20 浏览: 115
一个简单的Kmeans实现
好的,下面是一个简单的k-means算法的Python代码实现和流程图:
代码实现:
```python
import numpy as np
def kmeans(X, K, max_iters=100):
# 随机初始化 K 个聚类中心
centroids = X[np.random.choice(X.shape[0], K, replace=False), :]
for i in range(max_iters):
# 将每个样本指派到离它最近的聚类中心,形成 K 个簇
distances = np.sqrt(((X - centroids[:, np.newaxis])**2).sum(axis=2))
labels = np.argmin(distances, axis=0)
# 将每个簇的聚类中心更新为该簇所有样本的平均值
new_centroids = np.array([X[labels==k].mean(axis=0) for k in range(K)])
# 判断聚类中心是否发生改变
if np.allclose(centroids, new_centroids):
break
centroids = new_centroids
return labels
```
流程图:
![k-means流程图](https://img-blog.csdn.net/20180810172624929?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FudG9uaW8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
阅读全文