用Python编写一个K均值实现程序。
时间: 2023-06-01 17:06:31 浏览: 63
好的,我可以帮您解答这个问题。K均值聚类是一种常用的数据挖掘算法,可以将一组数据分成K个类。
以下是Python实现代码:
```python
import numpy as np
import random
def kmeans(data, k, max_iter=100):
n = data.shape[0]
centers = data[random.sample(range(n), k)]
for i in range(max_iter):
clusters = [[] for _ in range(k)]
for j in range(n):
distances = [np.linalg.norm(data[j] - c) for c in centers]
cluster_idx = np.argmin(distances)
clusters[cluster_idx].append(j)
new_centers = [np.mean(data[c], axis=0) for c in clusters]
if np.allclose(centers, new_centers):
break
else:
centers = new_centers
return centers, clusters
```
其中,data是一个n行m列的矩阵,每一行代表一个数据点,k代表目标的聚类数量,max_iter代表最大的迭代次数。
使用该代码,您可以实现K均值聚类,将数据按照k个类别进行划分。