org.apache.spark.mllib.evaluation.MulticlassMetrics在执行SVM分类时使用,如下所示。
MulticlassMetrics metrics = new MulticlassMetrics(predictionAndLabels.rdd());
System.out.println(metics.confusionMatrix());
我想在 MulticlassMetics 中保留一些有用的矩阵,例如精度、召回率和混淆矩阵。有人知道该怎么做吗?我可以打印它们,但不知道如何将它们保存到 Spark 中的文件中。
版本:spark 1.3.0,java 1.7
最佳答案
我发现 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后,结果可能位于不同的part*文件中,您可以使用cat或getmerge命令一次性读取完整的片段。
p.s.,不知怎的,我发现精确度和召回率没有按预期工作,但混淆矩阵是正确的。
关于java - Spark : how to save MulticlassMetrics confusion matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30340129/