k均值聚类算法实例代码
时间: 2023-07-07 17:43:52 浏览: 93
K均值聚类代码
5星 · 资源好评率100%
好的,以下是一个简单的k均值聚类算法的Python实现示例代码:
```python
import numpy as np
def k_means(data, k):
# 随机初始化k个聚类中心
centroids = data[np.random.choice(len(data), k, replace=False)]
while True:
# 计算各个样本点到聚类中心的距离
distances = np.sqrt(((data - centroids[:, np.newaxis])**2).sum(axis=2))
# 将每个样本点分配到距离最近的聚类中心
labels = np.argmin(distances, axis=0)
# 计算每个聚类中心的平均值,得到新的聚类中心
new_centroids = np.array([data[labels == i].mean(axis=0) for i in range(k)])
# 如果新的聚类中心与旧的聚类中心相同,则停止迭代
if np.all(centroids == new_centroids):
break
centroids = new_centroids
return labels, centroids
```
其中,`data`是一个$m \times n$的矩阵,表示$m$个$n$维向量的数据集,`k`表示要聚成$k$类。该函数返回一个长度为$m$的一维数组`labels`,表示每个数据点所属的聚类类别,以及一个$k \times n$的二维数组`centroids`,表示聚类中心的坐标。
阅读全文