首页 文章

K-means中的总距离总和是否必须总是在减少?

提问于
浏览
1

我正在使用Java进行k-means聚类 . 我的代码中没有问题,看起来很好 . 但是,我不明白 .

第1步:选择N个中心 . (假设有N个簇)

步骤2:使用欧几里德距离将每个向量放入具有最近中心的聚类中 . (|| v1 - v2 ||)

第3步:找到每个群集的新均值(=中心)

步骤4:如果中心移动显着,请转到步骤2

然而,当我在每次迭代之后绘制总点数到中心距离的图时,我可以看到总数一直在减少(尽管它总体上正在减小并且收敛良好) .
k mean clustering

第二次迭代的总距离总是比第一次短,并且是最短的 . 并且总距离在第3次迭代时略微增加并且在4次或5次迭代时收敛 .

我相信我被告知应该永远减少 . 怎么了?我的算法(实现)或我对总距离的假设?

1 回答

  • 2

    同一种子必须一直在减少 .

    也许你的错误是你使用欧氏距离 .

    K-means does not minimize Euclidean distances.

    这是一种常见的误解,甚至有一半的教授都错了 . K均值最小化平方和,即欧氏距离平方和 . 不,这没有找到欧几里德距离最小的解决方案 .

    所以要确保你到处都在绘制SSQ . 从代码中删除所有平方根 . 他们不属于k-means .

相关问题