我想知道,如果初始质心点是随机选择的,我们是否得到完全相同数据集的大致相同的质心点。
我正在写一个测试kmeans程序,它们似乎不匹配。我想知道我所做的事情是否正确。
答案 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
参数
在其他情况下,您通常可以自己提供初始中心,然后使用可重复的伪随机种子来自己选择。