2016-07-23 3 views
0

Wenn ich die KMeansModel-Klasse von Spark verwende, kann ich mit der Funktion KMeansModel.clusterCenters() einfach auf die Zentroide der Cluster meines Modells zugreifen.Wie finden Sie Cluster-Zentren von Sparks StreamingKMeans?

Ich wollte StreamingKMeans verwenden, aber ich bemerkte, dass es scheint, eine clusterCenters() Funktion zu fehlen. Gibt es eine Möglichkeit, die Schwerpunkte der Cluster meines Modells in StreamingKMeans zu erhalten?

Antwort

1

In Batch-KMeans wird ein Schätzer einmal trainiert und erzeugt einen einzelnen Transformator - das Modell, das die clusterCenters()-Methode enthält. In StreamingKMeans wird ein Modell kontinuierlich aktualisiert. Verwenden Sie daher das Objekt latestModel() für das StreamingKMeans-Objekt.

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