2

我正在尝试计算决策树的精度、召回率、准确性。这与先前关于同一程序的问题有关,尽管上下文不同。请找到链接以查看所有代码: 将决策树训练分类器的模型输出保存为 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 显示相同。

有建议和帮助会很棒。提前致谢。

我想知道如何从可以转换为字符串的混淆矩阵中计算精度、召回率和准确率。

4

0 回答 0