我想知道如果初始质心点是随机选择的,我们是否会为完全相同的数据集获得大致相同的质心点。
我正在编写一个测试 kmeans 程序,它们似乎不匹配。我想知道我所做的是否正确。
我想知道如果初始质心点是随机选择的,我们是否会为完全相同的数据集获得大致相同的质心点。
我正在编写一个测试 kmeans 程序,它们似乎不匹配。我想知道我所做的是否正确。
k-means 算法需要对质心位置进行一些初始化。对于大多数算法,这些质心是使用 Forgy 方法或随机分区等方法随机初始化的,这意味着算法的重复迭代可以收敛到截然不同的结果。
请记住,k-means 是迭代的,并且在每个“移动质心”步骤中,每个质心都会移动到使其与其组成点的距离最小的位置。这使得它在很大程度上依赖于起始位置。
因此,通常建议多次运行 k-means ,并选择使误差最小的聚类。
不,不能保证。
考虑一个具有 4 个点的 2 均值的简单情况:(1, 1), (-1, 1), (1, -1), (-1, -1)
(2D 平面中的一个正方形)然后 2 个质心可能是{(0, 1), (0, -1)}
或{(1, 0), (-1, 0)}
,两个非常不同的结果。
许多 k-means 实现允许修复随机数生成器以使结果可重现。
ELKI:-kmeans.seed
参数
Weka:-s
参数
在其他情况下,您通常可以自己提供初始中心,然后使用可重现的伪随机播种来自己选择它们。