如何计算K-means聚类模型的准确度来自"在平方误差的集合和中#34; Spark中的价值?

时间:2018-05-17 06:18:35

标签: apache-spark k-means apache-spark-mllib

我正在使用Spark,并想知道如何获得所创建的K-means聚类模型的准确度值。在检查Spark-KMeansModel API时,我找到了" ComputeCost"并返回"在平方误差的集合和中#34;值。

有没有办法计算从"在平方误差的平方和中生成的模型的准确性"值?

或者,Spark中是否还有其他选项可以获取它?请告诉我这个。

提前致谢:)

2 个答案:

答案 0 :(得分:0)

准确度是监督学习中的一个有用指标,例如分类。但是,如果是无监督学习(如KMeans),则没有准确性(因为没有标记数据/黄金标准可以评估。

假设您使用的是Spark 2.3.0,则可以使用ClusteringEvaluator评估KMeansModel的质量。您可以在文档中找到更多信息:https://spark.apache.org/docs/2.3.0/api/java/org/apache/spark/ml/evaluation/ClusteringEvaluator.html

答案 1 :(得分:0)

如果您使用pyspark运行K-Means聚类,那么获得“在平方和的平方和内”是相当简单的:

#K-Means
from pyspark.ml.clustering import KMeans

ClusterData=data.select("ID","features")

#Fitting
kmeans = KMeans().setK(10).setSeed(1)
model = kmeans.fit(ClusterData)

#Evaluation

wssse = model.computeCost(ClusterData)
print("Within Set Sum of Squared Errors = " + str(wssse))

#Results
centers = model.clusterCenters()
print("Cluster Centers: ")
for center in centers:
 print(center)

集群中心信息是另一个很好的指标,以后可以将其输入可视化工具中。

相关问题