我正在使用R v3.3.2和Caret 6.0.71(即最新版本)来构造逻辑回归分类器。我正在使用confusionMatrix函数创建用于评估其性能的统计信息。

logRegConfMat

  • 引用0,预测0 = 30
  • 引用1,预测0 = 14
  • 引用0,预测1 = 60
  • 引用1,预测1 = 164

  • 精度:0.7239
    灵敏度:0.3333
    特异性:0.9213

    我的数据(Seen)中的目标值将1表示为true,将0表示为false。我假设混淆矩阵中的“引用”(“事实真相”)列和“谓词”(“分类器”)行遵循相同的约定。因此,我的结果表明:
  • True Negatives(TN)30
  • 真实肯定(TP)164
  • 假阴性(FN)14
  • 误报(FP)60

  • 问题:为什么灵敏度设为0.3333,特异性设为0.9213?我本来以为是相反的方式-见下文。

    我不愿意相信R confusionMatrix函数中存在错误,因为没有任何报道,这似乎是一个重大错误。

    有关计算特异性和敏感性的大多数引用文献对它们的定义如下-www.medcalc.org/calc/diagnostic_test.php
  • 灵敏度= TP/(TP + FN)= 164/(164 + 14)= 0.9213
  • 特异性= TN/(FP + TN)= 30/(60 + 30)= 0.3333
  • 最佳答案

    根据文档?confusionMatrix:



    因此,在您的示例中,肯定的结果将是0,而评估指标将是错误的方法。要覆盖默认行为,可以将参数positive =设置为正确的值,a:

     confusionMatrix(logRegPrediction, valData[,"Seen"], positive = "1")
    

    关于r - R Confusion Matrix灵敏度和特异性标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41442885/

    10-12 16:43