请给出k-means代码
时间: 2023-08-28 18:08:12 浏览: 76
以下是Python实现的k-means代码:
```python
import numpy as np
def k_means(X, K, max_iters=100):
# 随机初始化簇中心
centroids = X[np.random.choice(len(X), K, replace=False)]
for i in range(max_iters):
# 计算每个样本点到簇中心的距离
distances = np.linalg.norm(X[:, np.newaxis] - centroids, axis=2)
# 分配每个样本点到最近的簇
labels = np.argmin(distances, axis=1)
# 更新簇中心
for j in range(K):
centroids[j] = np.mean(X[labels == j], axis=0)
return labels, centroids
```
其中,X是一个n×d的矩阵,表示n个样本点的d维特征向量;K是簇的个数;max_iters是最大迭代次数。函数返回每个样本点所属的簇标签和最终的簇中心。
阅读全文