如何找到Spark的StreamingKMeans集群中心?

时间:2016-07-23 17:44:08

标签: apache-spark k-means

当我使用Spark的KMeansModel类时,我可以使用load()函数轻松访问模型集群的质心。

我想使用StreamingKMeans,但我注意到它似乎缺少KMeansModel.clusterCenters()函数。有没有办法在StreamingKMeans中获取模型集群的质心?

1 个答案:

答案 0 :(得分:1)

在批处理KMeans中,估计器被训练一次并生成单个变换器 - 包含clusterCenters()方法的模型。在StreamingKMeans中,模型会不断更新,因此您需要在StreamingKMeans对象上使用latestModel()

val model = new StreamingKMeans()
      .setK(5)
      .setDecayFactor(1.0)
      .setRandomCenters(10, 0.0)
val latestModel = model.latestModel()
println(latestModel.clusterCenters)