使用静态训练数据初始化 StreamingKmeans 模型

Initializing a StreamingKmeans model with static training data

我可以使用训练数据集构建 Spark Kmeans 模型。我想让我的模型适应新数据,所以 Spark StreamingKmeans 对我来说似乎很棒。

但是,Spark 的 StreamingKmeans 似乎只能在流式数据上进行训练。无法使用默认的 kmeans 模型对其进行初始化,在一些静态训练数据上进行训练,然后随着时间的推移在新的流入数据上训练模型。

是否有一种方法可以使用静态训练数据在 Spark 中初始化 KMeans 模型,并使用 StreamingKmeans 随着时间的推移对新数据进行训练?

如果您仍然可以访问该静态训练数据,则可以将其发送到 DStream 中的 StreamingKMeans;否则,我认为没有其他方法可以初始化 StreamingKMeans 对象。

根据文档,StreamingKMeans has a setInitialCenters(centers: Array[Vector], weights: Array[Double]) method. And the statically trained KMeansModel 有一个 clusterCenters(): Array[Vector] 方法。因此,您可以使用预训练 KMeansModel 的 clusterCenters() 初始化 StreamingKMeans。