我正在使用Spark,并想知道如何获得所创建的K-means聚类模型的准确度值。在检查Spark-KMeansModel API时,我找到了" ComputeCost"并返回"在平方误差的集合和中#34;值。
有没有办法计算从"在平方误差的平方和中生成的模型的准确性"值?
或者,Spark中是否还有其他选项可以获取它?请告诉我这个。
提前致谢:)
答案 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)
集群中心信息是另一个很好的指标,以后可以将其输入可视化工具中。