举例说明k-mean算法
时间: 2023-10-12 07:01:13 浏览: 84
k-means算法实例
4星 · 用户满意度95%
假设有如下一组数据点:
```
data = [[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]
```
我们希望将这些数据点分成两个簇,即`k=2`。使用k-means算法,可以按照如下步骤进行:
1. 随机选择两个数据点作为初始簇中心,假设为`[1, 0]`和`[4, 4]`。
2. 对每个数据点,计算其到两个簇中心的距离,如下所示:
```
distances = [[1.0, 3.605], [2.0, 2.828], [0.0, 3.162], [3.162, 1.0], [0.0, 2.828], [3.162, 2.236]]
```
3. 将每个数据点归属到距离最近的簇中心所在的簇,如下所示:
```
labels = [0, 0, 0, 1, 1, 1]
```
4. 重新计算每个簇中心,如下所示:
```
centers = [[1.0, 2.0], [4.0, 2.0]]
```
5. 重复步骤2-4,直到簇中心不再发生变化或达到一定的迭代次数。经过若干次迭代后,最终的簇中心为`[1.0, 2.0]`和`[4.0, 2.0]`,每个数据点所属的簇标签为`[0, 0, 0, 1, 1, 1]`。可以将数据点按簇标签进行可视化,如下图所示:
![k-means-example](https://i.imgur.com/YVqPb6C.png)
可以看到,簇中心分别位于`(1, 2)`和`(4, 2)`处,数据点被分成了两个簇。
阅读全文