【发布时间】:2015-12-09 23:29:57
【问题描述】:
我是 Spark Streaming 的新手,我想使用 K-means,但是当我研究这个时,我无法理解 K-means 使用了多少次在 Spark Streaming 上使用相同的数据?
也就是说,K-means算法是迭代的,那么如何控制它在相同数据上运行的次数呢?
【问题讨论】:
标签: algorithm apache-spark k-means spark-streaming
我是 Spark Streaming 的新手,我想使用 K-means,但是当我研究这个时,我无法理解 K-means 使用了多少次在 Spark Streaming 上使用相同的数据?
也就是说,K-means算法是迭代的,那么如何控制它在相同数据上运行的次数呢?
【问题讨论】:
标签: algorithm apache-spark k-means spark-streaming
K-means 本质上是关于拥有k 集群质心。在每次迭代中,您更新数据点所属的集群,然后重新计算 k 个质心。因此,立即停止 k-means 运行的最佳方法不是您运行算法的次数,而是通过本次运行计算的质心是否与上一次相同。
当点在集群中稳定时,质心也会稳定,这意味着任何进一步的迭代都不会改变集群,这就是你应该停止的地方。
但是,如果您愿意,您也可以提前停下来。您可以对算法进行编程以运行最大次数的迭代。由于 k-means 一遍又一遍地运行,它有某种循环(while、for、foreach..)。您可以在其中放置一个循环计数器,并在您完成所需的运行时停止。或者,您可以在之前的集群质心和新的集群质心的变化低于某个阈值时停止。
【讨论】: