K-mean算法的基本思想及代码实现思路
时间: 2024-04-24 11:05:29 浏览: 76
K-means算法简介及代码过程
K-mean算法的基本思想是将数据分成K个簇,每个簇的中心点称为聚类中心,然后将每个数据点归属到与其距离最近的聚类中心所在的簇中。通过不断迭代,重新计算簇中心,直到聚类中心不再发生变化为止。
K-mean算法的代码实现思路如下:
1. 随机选择K个数据点作为初始聚类中心。
2. 计算每个数据点与每个聚类中心的距离,将每个数据点分配到距离最近的聚类中心所在的簇中。
3. 重新计算每个簇的中心点。
4. 重复执行步骤2和3,直到聚类中心不再发生变化或达到预设的最大迭代次数。
K-mean算法的代码实现过程如下(Python语言):
```python
import numpy as np
def k_mean(data, k, max_iter=100):
# 随机选择K个数据点作为初始聚类中心
centers = data[np.random.choice(len(data), k, replace=False)]
for i in range(max_iter):
# 计算每个数据点与每个聚类中心的距离
distances = np.sqrt(np.sum((data - centers[:, np.newaxis]) ** 2, axis=2))
# 将每个数据点分配到距离最近的聚类中心所在的簇中
labels = np.argmin(distances, axis=0)
# 重新计算每个簇的中心点
new_centers = np.array([np.mean(data[labels == j], axis=0) for j in range(k)])
# 如果聚类中心不再发生变化,则停止迭代
if np.all(centers == new_centers):
break
centers = new_centers
return labels, centers
```
其中,`data`为待聚类的数据,`k`为簇的个数,`max_iter`为最大迭代次数。函数返回每个数据点的标签和聚类中心的坐标。
阅读全文