ROC曲线中的TP、TN、FP、FN(犯了一个贼蠢的理解错误,哈哈)

143 阅读1分钟

在一个多维度线性回归的二分类场景中我想用ROC曲线来衡量一下。竟然被TP、TN、FP、FN干懵了。 重新记录一下概念,梳理一下理解吧。

TP、TN、FP、FN

四个基础算子其实从含义上分了两类:

  • True/False:表示模型预测是否正确
    • True:预测对了,模型说“是”时实际就是“是”,说“不是”时实际就“不是”。
    • False:预测错了,模型说“是”但实际“不是”,或者说“不是”但实际“是”。
  • Positive/Negative:表示模型预测的类别
    • Positive:模型预测为“正类”(比如垃圾邮件、病人)。
    • Negative:模型预测为“负类”(比如正常邮件、健康人)。

我掉入的陷阱就是Positive/Negative,在我的Case中其实是在计算模型预测为“精确匹配”的数据中有多少是错误的case中,用新的程序能识别出多少条。但是错误的把这个数量算入了FN中。

其实Positive/Negative中Positive往往都是要去找实际上的“反例”。比如最开始列举的例子“垃圾邮件”、“病人”。 常识中往往认为Positive应该向“好”而Negative是向“坏”。但实际上的Positive表示的是跟你“业务目标一致”的Case。我们的业务往往都是筛选垃圾邮件,找出样本中的病人。