K均值算法主要程序
时间: 2023-10-12 18:14:11 浏览: 71
K均值算法主要程序如下:
```python
import random
def kmeans(points, k, max_iter=100):
n = len(points)
# 随机选取中心点
centers = random.sample(points, k)
# 循环迭代
for _ in range(max_iter):
# 初始化每个聚类的点集合
clusters = [[] for _ in range(k)]
# 分配每个点到最近的中心点所在的聚类中
for point in points:
distances = [math.sqrt((point[0]-center[0])**2 + (point[1]-center[1])**2) for center in centers]
min_index = distances.index(min(distances))
clusters[min_index].append(point)
# 更新中心点
for i in range(k):
centers[i] = tuple(map(lambda x: sum(x)/len(clusters[i]), zip(*clusters[i]))) if clusters[i] else centers[i]
return centers
```
其中,`points` 是一个列表,包含了所有的数据点,每个数据点是一个二元组 `(x, y)`,`k` 是需要聚类的数量,`max_iter` 是最大迭代次数(默认为100)。算法的返回值是一个包含了 `k` 个中心点的列表 `centers`,可以作为聚类的结果。
阅读全文
相关推荐













