仿写一个kmeans聚类算法
时间: 2023-11-04 13:05:23 浏览: 39
好的,以下是一个简单的kmeans聚类算法的实现:
```python
import numpy as np
def kmeans(X, k, max_iters=100):
# 随机初始化k个中心点
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是一个n×d的矩阵,表示n个d维样本;k是聚类的簇数;max_iters是最大迭代次数。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)