给出简单的实现K-Means聚类的python代码
时间: 2023-06-23 09:09:34 浏览: 137
以下是一个简单的K-Means聚类的Python代码实现:
```python
import numpy as np
def kmeans(data, k, max_iter=100):
# 随机初始化聚类中心
centers = data[np.random.choice(len(data), k, replace=False)]
for i in range(max_iter):
# 计算每个样本到每个聚类中心的距离
distances = np.sqrt(((data - centers[:, np.newaxis])**2).sum(axis=2))
# 将每个样本归为距离最近的聚类
labels = distances.argmin(axis=0)
# 更新聚类中心为每个聚类中所有样本的平均值
new_centers = np.array([data[labels == j].mean(axis=0) for j in range(k)])
# 如果聚类中心不再变化,则停止迭代
if np.allclose(centers, new_centers):
break
centers = new_centers
return labels, centers
```
其中,`data`为输入数据,每行为一个样本,`k`为聚类数目,`max_iter`为最大迭代次数。函数返回每个样本所属的聚类标签和最终的聚类中心。
阅读全文