2016-07-24 15 views
0

Ich kann ein Spark Kmeans-Modell mithilfe eines Trainingsdatensatzes erstellen. Ich möchte mein Modell an neue Daten anpassen lassen, daher scheint Spark StreamingKmeans für mich großartig zu sein.Initialisieren eines StreamingKmeans-Modells mit statischen Trainingsdaten

Es scheint jedoch, dass Sparks StreamingKmeans nur in Daten gestreamt trainiert werden können. Es gibt keine Möglichkeit, es mit einem Standard-kmeans-Modell zu initialisieren, das auf einige statische Trainingsdaten trainiert wurde, und das Modell dann im Laufe der Zeit auf neu eingestreamte Daten zu trainieren.

Gibt es eine Möglichkeit, ein KMeans-Modell in Spark mit statischen Trainingsdaten zu initialisieren UND es mit Hilfe von StreamingKmeans im Laufe der Zeit für neue Daten zu trainieren?

Antwort

1

Gemäß der Dokumentation hat StreamingKMeans eine setInitialCenters(centers: Array[Vector], weights: Array[Double]) Methode. Und die statisch ausgebildete KMeansModel hat eine clusterCenters(): Array[Vector] Methode. So können Sie ein StreamingKMeans mit dem clusterCenters() eines vortrainierten KMeansModels initialisieren.

0

Wenn Sie weiterhin Zugriff auf diese statischen Trainingsdaten haben, können Sie diese an die StreamingKMeans in einem DStream senden. Ansonsten glaube ich nicht, dass es eine andere Möglichkeit gibt, das StreamingKMeans-Objekt zu initialisieren.