用python写一个K-means的代码
时间: 2023-06-14 09:04:41 浏览: 79
python实现的使用c-means k-means人群分组聚类算法
好的,下面是一个简单的K-means算法的Python代码实现:
```python
import numpy as np
def kmeans(X, k, max_iters=100):
# 随机初始化聚类中心
centroids = X[np.random.choice(len(X), k, replace=False)]
for i in range(max_iters):
# 计算每个样本点到聚类中心的距离
distances = np.sqrt(((X - centroids[:, np.newaxis])**2).sum(axis=2))
# 分配每个样本到距离最近的聚类中心
labels = np.argmin(distances, axis=0)
# 更新聚类中心
for j in range(k):
centroids[j] = X[labels == j].mean(axis=0)
return labels, centroids
```
其中,X是一个二维的numpy数组,每行表示一个样本点,k表示聚类中心的数量,max_iters表示最大迭代次数。函数返回一个元组,第一个元素是每个样本点所属的聚类标签,第二个元素是k个聚类中心的坐标。
阅读全文