k意味着可重复吗?

时间:2014-12-02 20:20:19

标签: machine-learning cluster-analysis k-means unsupervised-learning

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

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

3 个答案:

答案 0 :(得分:4)

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

请记住,k-means是迭代的,并且在每个"移动质心"步骤,将每个质心移动到最小化其与构成点的距离的位置。这使得它严重依赖于起始位置。

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

答案 1 :(得分:3)

不,不保证。

考虑一个带有4个点的2-means的简单情况:(1, 1), (-1, 1), (1, -1), (-1, -1)(2D中的正方形) 那么2个质心可能是{(0, 1), (0, -1)}{(1, 0), (-1, 0)},两个非常不同的结果。

答案 2 :(得分:0)

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

ELKI:-kmeans.seed参数

Weka:-s参数

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