k-means算法的python实现
时间: 2023-04-21 14:00:58 浏览: 133
详解K-means算法在Python中的实现
k-means算法是一种常用的聚类算法,可以将数据集分成k个簇。Python中有很多库可以实现k-means算法,比如scikit-learn、numpy等。以下是一个简单的k-means算法的Python实现:
```python
import numpy as np
def k_means(X, k, max_iter=100):
# 随机初始化k个中心点
centers = X[np.random.choice(len(X), k, replace=False)]
for i in range(max_iter):
# 计算每个样本到中心点的距离
distances = np.sqrt(((X - centers[:, np.newaxis])**2).sum(axis=2))
# 将每个样本分配到距离最近的中心点所在的簇
labels = np.argmin(distances, axis=)
# 更新中心点的位置为簇内所有样本的平均值
for j in range(k):
centers[j] = X[labels == j].mean(axis=)
return labels, centers
```
其中,X是一个n×m的矩阵,表示n个样本的m个特征;k表示要分成的簇的个数;max_iter表示最大迭代次数。函数返回每个样本所属的簇的标签和每个簇的中心点的位置。
阅读全文