kmeans聚类算法手动python实现
时间: 2023-11-01 20:07:10 浏览: 112
kmeans聚类算法python实现
K-Means聚类算法是一种常用的无监督机器学习算法,用于将数据集划分为k个不同的簇。下面是一种手动实现K-Means聚类算法的Python代码示例:
```python
import numpy as np
def kmeans(X, k, max_iters=100):
# 随机初始化k个聚类中心
centers = X[np.random.choice(range(len(X)), k)]
for _ in range(max_iters):
# 分配样本到最近的聚类中心
labels = np.argmin(np.linalg.norm(X[:, np.newaxis] - centers, axis=-1), axis=-1)
# 更新聚类中心
new_centers = np.array([np.mean(X[labels == i], axis=0) for i in range(k)])
# 如果聚类中心不再变化,停止迭代
if np.all(centers == new_centers):
break
centers = new_centers
return labels, centers
# 示例用法
X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
k = 2
labels, centers = kmeans(X, k)
print("聚类结果:", labels) # 输出样本的聚类标签
print("聚类中心:", centers) # 输出聚类中心
```
阅读全文