K-means:实际情况下迭代多少次?

机器算法验证 聚类 数据挖掘 k-均值 收敛 大数据
2022-03-12 20:55:48

我没有数据挖掘或大数据方面的行业经验,所以很想听听你分享一些经验。

人们真的会在一个非常大的数据集上运行 k-means、PAM、CLARA 等吗?或者他们只是随机从中挑选出一个样本?如果他们只是对数据集进行抽样,如果数据集不是正态分布的,结果是否可靠?

在运行这些算法的实际情况下,我们能否知道在收敛之前通常需要多少次迭代?还是迭代次数总是随着数据大小而增长?

我问这个是因为我正在考虑开发一种方法来在收敛之前终止迭代算法,但结果仍然可以接受。如果迭代次数超过 1,000 次,我认为值得尝试,这样我们可以节省一些计算成本和时间。你怎么看?

1个回答
  1. K-means 很便宜。您可以负担得起多次迭代运行它。

  2. 有坏算法(标准算法)和好的算法。对于好的算法,后期迭代的成本通常远低于第一次迭代的 1%。

  3. 确实有很慢的实现。不要使用它们。

  4. “大”数据上的 K 均值不存在。因为它只适用于低维向量数据。您不会超过具有此类数据的现代服务器的内存。是的,存在更大的数据——但你不能在一个月的 Twitter 数据上使用 k-means,因为它不会给你任何有用的东西。

通过良好的实现,在现代服务器上,您可以找到最大的数据集,其中 k-means 仍然给出有用的结果可能需要不到 1 分钟的时间来计算直到收敛。那么为什么还要考虑迭代限制呢?