kmeans是可重复的吗?
Posted
技术标签:
【中文标题】kmeans是可重复的吗?【英文标题】:Is kmeans repeatable? 【发布时间】:2015-01-31 05:13:12 【问题描述】:鉴于初始质心点是随机选择的,我想知道我们是否为完全相同的数据集获得大致相同的质心点。
我正在编写一个测试 kmeans 程序,但它们似乎不匹配。我想知道我所做的是否正确。
【问题讨论】:
【参考方案1】:不,不能保证。
考虑具有 4 个点的 2 均值的简单情况:(1, 1), (-1, 1), (1, -1), (-1, -1)
(二维平面中的正方形)
那么这两个质心可能是(0, 1), (0, -1)
或(1, 0), (-1, 0)
,两个截然不同的结果。
【讨论】:
【参考方案2】:k-means 算法需要对质心位置进行一些初始化。对于大多数算法,这些质心是通过某种方法(例如 Forgy 方法或随机分区)随机初始化的,这意味着算法的重复迭代可以收敛到截然不同的结果。
请记住,k-means 是迭代的,并且在每个“移动质心”步骤中,每个质心都会移动到与其组成点的距离最小的位置。这使得它在很大程度上依赖于起始位置。
因此,通常建议运行 k-means 多次,并选择误差最小的聚类。
【讨论】:
【参考方案3】:许多 k-means 实现允许修复随机数生成器以使结果可重现。
ELKI:-kmeans.seed
参数
Weka:-s
参数
在其他情况下,您通常可以自己提供初始中心,然后使用可重复的伪随机播种来自己选择它们。
【讨论】:
以上是关于kmeans是可重复的吗?的主要内容,如果未能解决你的问题,请参考以下文章