在mllib kmeans pyspark中获取集群标签

时间:2016-03-31 23:28:16

标签: python apache-spark scikit-learn pyspark apache-spark-mllib

当我在pyspark中使用Spark的mllib时,如何获得群集标签?在sklearn中,这可以通过

轻松完成
kmeans = MiniBatchKMeans(n_clusters=k,random_state=1)
temp=kmeans.fit(data)
cluster_labels=temp.labels_

在mllib中,我运行kmeans:

temp = KMeans.train(data, k, maxIterations=10, runs=10, initializationMode="random")

这将返回KmeansModel个对象。此类没有任何等效的sklearn的labels_

我无法弄清楚如何在mllib的kmeans中获得标签

2 个答案:

答案 0 :(得分: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 ]

答案 1 :(得分:4)

只需对训练数据使用预测:

temp.predict(data)

parsedData.map(temp.predict)