java - Spark : how to save MulticlassMetrics confusion matrix

标签 java apache-spark

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/

相关文章:

apache-spark - 如何使用 PySpark 对 Delta 文件的分区动态执行插入覆盖?

apache-spark - 断言错误 : assertion failed: No plan for DeleteFromTable In Databricks

java - 将列表转换为多维 map

java - 如何使用 Spark SQL 从外部查询中的子查询访问列

java - 如何使用 Spring Boot 提供不同的数据库配置?

java - 当磁盘存储已满时 Glide 会做什么?

hadoop - 在 yarn 集群上设置 spark 时需要哪些守护进程?

apache-spark - 启用检查点的 Spark Streaming 中的 java.io.NotSerializedException

java - Java中三元运算符中的char转换,打印int值而不是char值

java - 脚本错误: "An error has occured in the script on the page"