写一段K-means的python代码
时间: 2023-12-31 21:48:49 浏览: 69
K _means算法的python代码实现
好的,以下是一个简单的 K-means 聚类算法的 Python 代码实现:
```python
import numpy as np
import random
def kmeans(X, k, max_iters=100):
# 随机初始化质心
centroids = random.sample(list(X), k)
for i in range(max_iters):
# 分配每个数据点到最近的质心
clusters = [[] for _ in range(k)]
for x in X:
distances = [np.linalg.norm(x - c) for c in centroids]
closest_centroid = np.argmin(distances)
clusters[closest_centroid].append(x)
# 更新质心位置
new_centroids = []
for cluster in clusters:
new_centroids.append(np.mean(cluster, axis=0))
centroids = new_centroids
return clusters, centroids
```
这个函数接受一个数据集 X,一个聚类数 k,以及最大迭代次数 max_iters,返回聚类结果和质心位置。它采用随机初始化的质心,使用欧几里得距离分配数据点到最近的质心,并通过计算每个聚类的平均值来更新质心的位置。
阅读全文