我正在尝试使用R中的ROCR包来计算准确性,但结果与我预期的不同:
假设我对模型(p)和标签(l)的预测如下:
p <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86)
l <- c(1, 1, 1, 0, 0, 1, 1, 1, 0, 1)
我正在使用以下命令计算此预测的准确性:
library(ROCR)
pred <- prediction(p, l)
perf <- performance(pred, "acc")
max([email protected][[1]])
但是结果是.8,根据精度公式(TP + TN)/(TN + TP + FN + FP)应该为.6我不知道为什么吗?
当您使用时max([email protected][[1]])
,它将在任何可能的临界值上计算出最大的准确性,以预测阳性。
在您的情况下,最佳阈值是p=0.2
,在该阈值上您会犯两个错误(在预测概率为0.38和0.78的观测值上),最大精度为0.8。
您可以使用来访问您的perf对象的临界值[email protected][[1]]
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句