K-均值:实际情况下有多少次迭代?


10

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

人们实际上在一个非常大的数据集上运行k-means,PAM,CLARA等吗?还是他们只是从中随机抽取一个样本?如果他们只是对数据集进行抽样,如果数据集不是正态分布的,结果是否可靠?

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

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


number of iterations always grow with the data size不必要。
ttnphns

存在各种准则来停止K均值中的迭代。有趣的是,将迭代次数设置为固定值(例如10或20)只是一种合理的方法。K-means专用于快速方法,因此,如果您希望在每次迭代后检查收敛准则,则该准则必须易于计算。
ttnphns

1
有没有“科学”的方法来确定要执行的最大迭代次数?
foo

您的最后评论是一个很好的问题。老实说,我不知道。也许其他人会回答。
ttnphns

Answers:


6
  1. K-均值很便宜。您可以承受多次迭代运行的费用。

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

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

  4. “大”数据的K均值不存在。因为它仅适用于低维矢量数据。这样的数据将不会超出现代服务器的内存。是的,存在更大的数据-但是您不能对一个月的Twitter数据使用k-means,因为它不会给您任何有用的信息。

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


1
同意。在本文中(通过分级检索的可伸缩K均值),作者指出,在所有实际情况下,即使在测试的高维数据集上,K均值在20-50次迭代后也会收敛。因此,除了K均值之外,您是否知道有任何算法需要大量迭代才能收敛?
foo

也许训练一个SVM?我认为这是迭代的,试图找到最佳(和最小,因为预测取决于此!)支持向量集。
已退出–Anony-Mousse's

在高维数据集上运行k-means的明显解决方案是先运行PCA或其他降维方法,然后运行k-means
nico
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.