我正在尝试计算决策树的精度、召回率、准确性。这与先前关于同一程序的问题有关,尽管上下文不同。请找到链接以查看所有代码: 将决策树训练分类器的模型输出保存为 Spark Scala 平台中的文本文件
计算代码如下:
//Precision, Recall, Confusion Matrix
val evaluationMetrics = new MulticlassMetrics(labelAndPreds.map(x => (x._1, x._2)))
evaluationMetrics.precision
evaluationMetrics.recall
evaluationMetrics.confusionMatrix
Precision=98.52% 和 Recall= 98.52%,这似乎不太可能,因为,
Confusion Matrix
Predicted
Actual 0 1
0 16877 251
1 2 20
以上是Confusion Matrix的Spark计算。
安排,
Predicted
Actual 0 1
0 TN FN
1 FP TP
因此,精度 = TP/(TP+FP)=20/(20+2) =0.9091 召回率 = TP/(TP+FN) = 20/(20+251) =0.074。
如果我错了,请纠正我。如果我将 (0,0) 组视为 True Positives(TP),那么 Precision 和 Recall 也将不一样。但是根据上面的代码,Spark out 显示相同。
有建议和帮助会很棒。提前致谢。
我想知道如何从可以转换为字符串的混淆矩阵中计算精度、召回率和准确率。