当我使用Spark的KMeansModel类时,我可以使用load()
函数轻松访问模型集群的质心。
我想使用StreamingKMeans,但我注意到它似乎缺少KMeansModel.clusterCenters()
函数。有没有办法在StreamingKMeans中获取模型集群的质心?
答案 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)