如何用python写一个可以做到K-means算法的函数?
时间: 2023-06-18 12:07:40 浏览: 91
详解K-means算法在Python中的实现
下面是一个用Python实现K-means算法的示例代码:
```python
import numpy as np
import random
def kmeans(data, k):
centroids = random.sample(list(data), k)
while True:
clusters = [[] for _ in range(k)]
for point in data:
distances = [np.linalg.norm(point - c) for c in centroids]
min_index = np.argmin(distances)
clusters[min_index].append(point)
new_centroids = [np.mean(c, axis=0) for c in clusters]
if np.allclose(centroids, new_centroids):
break
centroids = new_centroids
return clusters, centroids
```
其中,`data`是一个Numpy数组,每行代表一个数据点;`k`是簇的个数。函数返回一个包含`k`个子列表的列表,每个子列表代表一个簇,以及一个包含`k`个元素的列表,每个元素代表一个簇的质心。
阅读全文