我正在尝试计算决策树的精度,召回率,准确度。这与先前关于同一计划的问题有关,尽管背景不同。请找到链接以查看所有代码: saving model output from Decision tree train classifier as a text file in Spark Scala platform
计算代码为:
//Precision, Recall, Confusion Matrix
val evaluationMetrics = new MulticlassMetrics(labelAndPreds.map(x => (x._1, x._2)))
evaluationMetrics.precision
evaluationMetrics.recall
evaluationMetrics.confusionMatrix
精度= 98.52%,召回= 98.52%,这似乎不太可能,
Confusion Matrix
Predicted
Actual 0 1
0 16877 251
1 2 20
以上是混淆矩阵的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显示出相同的效果。
有建议和帮助会很棒。提前谢谢。
我想知道如何从我可以转换为字符串的混淆矩阵计算精度,召回率和准确度。