假设有以下数据集:

| 数据点 | X | Y | | ------ | --- | --- | | A | 2 | 10 | | B | 2 | 5 | | C | 8 | 4 | | D | 5 | 8 | | E | 7 | 5 | | F | 6 | 4 |

我们希望将这些数据点分为两个簇。我们可以随机选择两个数据点作为初始质心,比如说我们选择 A 和 C。

第一轮迭代:

我们计算每个数据点到两个质心的距离,比如说数据点 B 到质心 A 的距离为:

sqrt((2-2)^2 + (5-10)^2) = 5

同样地,数据点 B 到质心 C 的距离为:

sqrt((2-8)^2 + (5-4)^2) = 6.32

我们将数据点 B 分配到距离更近的质心 A 所在的簇中。

同样地,我们计算其他数据点到两个质心的距离,将它们分配到距离更近的质心所在的簇中。

现在,我们重新计算每个簇的质心。对于簇 1,它包含了数据点 A 和 B,所以它的质心为:

((2+2)/2, (10+5)/2) = (2, 7.5)

对于簇 2,它包含了数据点 C、D、E 和 F,所以它的质心为:

((8+5+7+6)/4, (4+8+5+4)/4) = (6.5, 5.25)

第二轮迭代:

我们再次计算每个数据点到两个质心的距离,将它们分配到距离更近的质心所在的簇中。

现在,我们重新计算每个簇的质心。

对于簇 1,它包含了数据点 A、B 和 D,所以它的质心为:

((2+2+5)/3, (10+5+8)/3) = (3, 7.67)

对于簇 2,它包含了数据点 C、E 和 F,所以它的质心为:

((8+7+6)/3, (4+5+4)/3) = (7, 4.33)

第三轮迭代:

我们再次计算每个数据点到两个质心的距离,将它们分配到距离更近的质心所在的簇中。

现在,我们重新计算每个簇的质心。

对于簇 1,它包含了数据点 A、B 和 D,所以它的质心为:

((2+2+5)/3, (10+5+8)/3) = (3, 7.67)

对于簇 2,它包含了数据点 C、E 和 F,所以它的质心为:

((8+7+6)/3, (4+5+4)/3) = (7, 4.33)

现在,我们可以看到簇的分配和质心的位置已经不再变化了,所以我们可以停止迭代。最终的簇分配和质心位置如下:

| 数据点 | 簇 | X | Y | | ------ | --- | --- | --- | | A | 1 | 2 | 10 | | B | 1 | 2 | 5 | | C | 2 | 8 | 4 | | D | 1 | 5 | 8 | | E | 2 | 7 | 5 | | F | 2 | 6 | 4 |

| 簇 | X | Y | | --- | --- | --- | | 1 | 3 | 7.67 | | 2 | 7 | 4.33 |

K-means算法计算示例:数据点聚类过程详解

原文地址: https://www.cveoy.top/t/topic/fYOm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录