我可以使用训练数据集构建Spark Kmeans模型。我想让我的模型适应新数据,所以Spark StreamingKmeans对我来说似乎很棒。
然而,似乎Spark的StreamingKmeans只能在数据流上进行训练。无法使用默认的kmeans模型对其进行初始化,对某些静态训练数据进行训练,然后在新的流式数据中训练模型。
是否存在使用静态训练数据在Spark中初始化KMeans模型的方法,并使用StreamingKmeans对新数据进行训练?
答案 0 :(得分:1)
根据文档,StreamingKMeans有setInitialCenters(centers: Array[Vector], weights: Array[Double])
方法。受过静态训练的KMeansModel有clusterCenters(): Array[Vector]
方法。因此,您可以使用预先训练的KMeansModel的clusterCenters()
初始化StreamingKMeans。
答案 1 :(得分:0)
如果您仍然可以访问该静态训练数据,则可以将其发送到DStream中的StreamingKMeans;否则,我认为没有其他方法可以初始化StreamingKMeans对象。