深度学习基础篇:分类器性能评估

当我们遇到数据极度偏移的特殊情况时,我们就不能用常用的百分比来评估分类器的好坏了,比如当我们查1万人中是否患有癌症的时候,癌症的患病率为一万分之1,而你的模型能够达到99.9%的准确率,其实你的模型并不好,因为我直接猜测每个人都是健康的,准确都是99.99%,比你的模型准确更高,所以,此时我们需要更好的验证模型好坏的方法,就是查全率和查准率、F1值、ROC曲线

我们先来理解“混淆矩阵”
预测 / 实际正类(positive)负类(negative)
正类(True)TPFN
负类(False)FPTN

假设100人中,有3个人患病,则P = 97,N = 3,但是模型预测有2个人患病:则ture=98,false=2,但是预测患病中只有1人真正患病,则:

  • 健康人中,预测为健康的人: T P = 96 97 TP = \frac{96}{97} TP=9796
  • 健康人中,预测为患病的人: F N = 1 97 FN = \frac{1}{97} FN=971
  • 患病中,预测健康的人: F P = 2 3 FP = \frac{2}{3} FP=32
  • 患病中,预测患病的人: T N = 1 3 TN = \frac{1}{3} TN=31

查准率(精准率 precision)

在“真实”的正类中,预测正确的概率 P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP

  • 使用环境:宁愿少找几个患病的人,一定要判断清楚患病的人是否真实患病,非常严格、谨慎的判断,患病的不能错判,比如用在癌症患者身上

查全率(召回率 recall)

在"预测"的正类中,预测正确的概率 P = T P T P + F N P = \frac{TP}{TP + FN} P=TP+FNTP

  • 使用环境:宁愿多找几个患病的人,也一定要找到这3个患病的人,宁错判,不放过患病的患者,比如用在传染性病患者身上

那我们能不能在查准率和查全率之间平衡呢?可以用下面:F1

F1

F1值是查全率与查准率的调和均值。当查全率和查准率都很高的时候,F1也很高,其定义如下:

2 F 1 = 1 P + 1 R \frac{2}{F_{1}} = \frac{1}{P} + \frac{1}{R} F12=P1+R1

F 1 = 2 T P 2 T P + F P + F N F_{1} = \frac{2TP}{2TP + FP + FN} F1=2TP+FP+FN2TP

所以,如果我们希望差准率和查全率都比较高,可以让F1值比较高,另外还有一种ROC曲线

ROC 曲线(即受试者工作特征曲线receiver operating characterristice curve)

总结的话:曲线越靠近左上角越好

先看图,下面是一张ROC曲线图:
上图黑色的曲线最好

  • 横坐标为假阳性概率,我们希望它越小越好
  • 纵坐标为真阳性概率(查全率),我们希望越大越好
  • 所以,上图黑色的曲线最好
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值