【问题标题】:Specificity and sensitivity measures特异性和敏感性测量
【发布时间】:2018-10-10 00:46:00
【问题描述】:

我一直在尝试计算一些关于特异性和敏感性的指标。
SDMTools R 包非常适合获得总体估计值。

library(SDMTools)

a <- c(1,1,1,1,0,0,0,1,0,1,1,1) #observed
b <- c(1,1,0,0,1,0,0,1,0,0,1,1) #predicted

accuracy(a, b)
#       threshold       AUC omission.rate sensitivity specificity prop.correct     Kappa
#1            0.5    0.6875         0.375       0.625        0.75    0.6666667 0.3333333

很遗憾,我无法获得真阳性、真阴性、假阳性、假阴性的原始数字。我想将它们放在四个不同的列中。有谁知道可以做到这一点的包或功能?我想得到的结果如下。

#TP  TN  FP  FN
#5    3   1   3

【问题讨论】:

  • 如果您喜欢不同的格式,可以使用table(a,b)data.frame(table(a,b))。真正的肯定是 a = b = 1 的情况,真正的否定是 a = b = 0 的情况,等等。
  • caret::confusionMatrix(as.factor(a), as.factor(b)) 为您提供上面的所有详细信息以及混淆矩阵(表格)

标签: r false-positive


【解决方案1】:

您可以使用如下自定义函数来计算真/假分类计数:

accuracy_table <- function(obs, pred){
  data.frame(TP = sum(obs == 1 & pred == 1),
             TN = sum(obs == 0 & pred == 0),
             FP = sum(obs == 0 & pred == 1),
             FN = sum(obs == 1 & pred == 0))
}

accuracy_table(a, b)

此函数依赖于将 0 作为否定情况和 1 作为肯定情况编码的观察和预测,因此在其他情况下它不会按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 2021-04-01
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2017-05-17
    相关资源
    最近更新 更多