0

我想知道如果初始质心点是随机选择的,我们是否会为完全相同的数据集获得大致相同的质心点。

我正在编写一个测试 kmeans 程序,它们似乎不匹配。我想知道我所做的是否正确。

4

3 回答 3

5

k-means 算法需要对质心位置进行一些初始化。对于大多数算法,这些质心是使用 Forgy 方法或随机分区等方法随机初始化的,这意味着算法的重复迭代可以收敛到截然不同的结果。

请记住,k-means 是迭代的,并且在每个“移动质心”步骤中,每个质心都会移动到使其与其组成点的距离最小的位置。这使得它在很大程度上依赖于起始位置。

因此,通常建议多次运行 k-means ,并选择使误差最小的聚类。

于 2014-12-02T21:05:40.343 回答
3

不,不能保证。

考虑一个具有 4 个点的 2 均值的简单情况:(1, 1), (-1, 1), (1, -1), (-1, -1)(2D 平面中的一个正方形)然后 2 个质心可能是{(0, 1), (0, -1)}{(1, 0), (-1, 0)},两个非常不同的结果。

于 2014-12-02T20:25:48.627 回答
0

许多 k-means 实现允许修复随机数生成器以使结果可重现。

ELKI:-kmeans.seed参数

Weka:-s参数

在其他情况下,您通常可以自己提供初始中心,然后使用可重现的伪随机播种来自己选择它们。

于 2014-12-03T08:54:07.370 回答