在mllib kmeans pyspark中获取集群标签

nis*_*ant 3 python scikit-learn apache-spark pyspark apache-spark-mllib

当我在pyspark中使用Spark的mllib时,如何获得集群标签?在sklearn,这可以很容易地完成

kmeans = MiniBatchKMeans(n_clusters=k,random_state=1)
temp=kmeans.fit(data)
cluster_labels=temp.labels_
Run Code Online (Sandbox Code Playgroud)

在mllib中,我运行kmeans:

temp = KMeans.train(data, k, maxIterations=10, runs=10, initializationMode="random")
Run Code Online (Sandbox Code Playgroud)

这会返回一个KmeansModel对象.这个类没有sklearn的任何等价物labels_

我无法想出如何在mllib的kmeans中获得标签

Dav*_*voz 5

这是一个老问题.然而,就在那时,现在是,现在在pyspark 2.2 KMeans没有训练方法,模型没有预测方法.获得标签的正确方法是

kmeans = KMeans().setK(k).setSeed(1)
model = kmeans.fit(data)
prediction = model.transform(data).select('prediction').collect()
labels = [p.prediction for p in prediction ]
Run Code Online (Sandbox Code Playgroud)