请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

聚类评价指标

spark ml中有关于聚类结果的一些评价指标吗,比如轮廓系数之类的

正在回答 回答被采纳积分+3

1回答

Wotchin 2019-05-18 00:14:13

当然有啦,kmeans的评价指标一般是Silhouette score(轮廓系数),可以通过调用spark的评估类来实现:

val kmeans = new KMeans().setK(2).setSeed(1L)
val model = kmeans.fit(dataset)
// Make predictions
val predictions = model.transform(dataset)
// Evaluate clustering by computing Silhouette score
val evaluator = new ClusteringEvaluator()
val silhouette = evaluator.evaluate(predictions)
println(s"Silhouette with squared euclidean distance = $silhouette")

以上代码节选自:

"examples/src/main/scala/org/apache/spark/examples/ml/KMeansExample.scala"

除此之外,还可以度量一些距离,参考此处:

http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.ml.evaluation.ClusteringEvaluator

0 回复 有任何疑惑可以回复我~
  • 提问者 慕娘1225113 #1
    好的 谢谢老师 老师 我想再问一下好像spark只有线性的svm,我需要使用ocsvm,有什么办法吗
    回复 有任何疑惑可以回复我~ 2019-05-26 10:13:02
  • Wotchin 回复 提问者 慕娘1225113 #2
    Spark目前只有LinearSVC,如果使用one class svm的话可以调用libsvm,这个库是有java接口的,且有ocsvm的功能,可以通过参数指定。
    不过这样会把分布式计算引擎的优势埋没,这也是Spark没有实现分布式模式下的其他svm功能的退路。
    回复 有任何疑惑可以回复我~ 2019-05-26 17:41:27
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信