当我们使用spark来做Kmeans时,我们应该将数据分成几个分区。然后决定k个中心,并通过计算到中心的距离来制作k个组。然后重复上述步骤,直到找到稳定的组。 现在,我想知道Kmeans MLib如何从不同的分区中获取k个中心,以及它如何计算所有数据点与分区的距离。是否只考虑来自同一分区的数据点并在制作组后重新分区?通过使用示例来解释这将是有帮助的。例如,k = 4,我们有2个分区。或者k = 2,我们有4个分区。 谢谢。
答案 0 :(得分:0)
值得一读implementation of kmeans in mllib。它很短,也不太难理解。
在任何时候都不需要对kmeans中的数据进行重新分区 - 在整个计算过程中,分区保持不变。
正在进行的简化版本。对于k均值的每次迭代,第一次使用已经选择的质心:
(4 x 1.0 + 10 x 2.0, 4 x 2.0 + 10 x 5.0) / 14 = (1.71, 4.14)
。这些是此迭代的更新质心,将反馈到步骤1中。