使用R中的ROCR包计算精度

时间:2013-12-14 20:37:04

标签: r roc

我正在尝试使用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(perf@y.values[[1]])

但结果是.8根据准确度公式(TP + TN)/(TN + TP + FN + FP)应该是.6我不知道为什么?

1 个答案:

答案 0 :(得分:3)

当您使用max(perf@y.values[[1]])时,它会计算预测正数的任何可能截止值的最大准确度。

在您的情况下,最佳阈值为p=0.2,您可以在此处犯2个错误(在预测概率为0.38和0.78的观察中),最大准确度为0.8。

您可以使用perf@x.values[[1]]访问perf对象的截止值。