2015-05-20 153 views
1

org.apache.spark.mllib.evaluation.MulticlassMetrics用於執行SVM分類時,如下所示。Spark:如何保存MulticlassMetrics混淆矩陣

MulticlassMetrics metrics = new MulticlassMetrics(predictionAndLabels.rdd()); 
System.out.println(metics.confusionMatrix()); 

欲堅持MulticlassMetics,例如,精度,召回和混淆矩陣一些有用MATRICS。任何人都知道如何做到這一點?我可以將它們打印出來,但不知道如何將它們保存到火花文件中。

版本:1.3.0火花,JAVA 1.7

回答

1

我發現從org.apache.spark.mllib.evaluation.MulticlassMetrics MulticlassMetrics類可以達到這個目的。

MulticlassMetrics metrics = new MulticlassMetrics(predictionAndLabels.rdd()); 

並將結果度量(精度,召回率和混淆矩陣)寫入字符串RDD。

JavaRDD<String> metricsResult = sc.parallelize(Arrays.asList(
     "Precision: " + metrics.precision(), 
     "\nRecall: " +metrics.recall(), 
     "\nConfusion metrics: \n" + metrics.confusionMatrix())); 

saveAsTextFile後,結果可能是不同的部分*文件,可以使用cat或getmerge命令,一次閱讀完整作品。

p.s.,以某種方式我發現精度和召回並不按預期工作,但混淆矩陣是正確的。