准确率 召回率 ROC曲线的大解析

来源:互联网 发布:ospf用的什么算法 编辑:程序博客网 时间:2024/05/17 03:35

近来面试算法、机器学习岗,发现面试官经常问的就是准确率召回率之间的关系,以及roc曲线如何画,这里自己总结了一波做了一波解析。

对于一个二分类的问题来看,可以用下表来表示整个结果,其中1代表正例,0代表负例
这里写图片描述

接下来我们一个一个来解释
TP(真正类):表示为被预测为正例实际也是正例。
FP(假正类):表示被预测为正但是其实是负例。
FN(假负类):表示为被预测为负其实是正例
TN(真负): 则表示预测为负,实际也是负
简易理解:从预测跟实际出发,每个case都有两个意义,一个则是在实际中是正或负,一个则是在预测中是正或负
TP+FP 则可以表示为被预测为正例的所有case。
TP+FN 则表示 实际为正的所有case

这时候准确率跟召回率可以很好的写出来了

1、准确率

       Precision = TP/( TP+FP)

如何理解?: 准确率是从预测集出发,表示预测为正的case中有多少实际就是正的比率

2、召回率

        recall  = TP/(TP+FN)

如何理解?: 召回率是从实际case出发,表示。实际为正的case中有多少
预测为正的比率。

3、F值

F值主要为了衡量准确跟召回的综合评价指标

F1 = 2rp/(r+p)

4、roc曲线

roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性。

横轴:假正类率(false postive rate FPR)特异度,预测为负实际为正的case占所有负例的比例;(1-Specificity)

纵轴:真正类率(true postive rate TPR)灵敏度,Sensitivity(正类覆盖率),其实就是召回率
这里写图片描述

如何理解?: 横轴为假正率,即实际为负但预测为正的case占实际所有负例的比率
纵轴即为召回率
理想情况下我们会想让假正率越来越小,召回率越来越高,最理想的情况则是fpr = 0,tpr = 1.

考虑两种极端情况,对于logistics二分类问题,
(1)将阈值设为0时,即所有case都预测成正例
这种情况下召回为1 (因为实际为正的case肯定会被预测为正,即没有正例会被预测成负例),假正率则为1(因为没有真负例的存在),坐标则为(1,1)
(2)将阈值设为1时,则所有的case都被预测成负例
这种情况下召回率为0,(因为没有case被预测成正),假正率为0,坐标为(0,0)

阅读全文
0 0