org.apache.spark.mllib.evaluation.MulticlassMetrics,如下所示。
MulticlassMetrics metrics = new MulticlassMetrics(predictionAndLabels.rdd());
System.out.println(metics.confusionMatrix());
我想在MulticlassMetics中保留一些有用的matrics,例如精度,回忆和混淆矩阵。谁知道怎么做?我可以将它们打印出来,但不知道如何将它们保存到spark文件中。
版本:spark 1.3.0,java 1.7
答案 0 :(得分: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。,不知怎的,我发现精确度和召回不能按预期工作,但混淆矩阵是正确的。