首页 > 编程知识 正文

查准率Precision和查全率Recall和 PR曲线ROC曲线

时间:2023-05-04 23:46:38 阅读:235368 作者:2316

数据发生倾斜时,准确率判断模型好坏就不那么准确了。比如风控模型中,99个正常用户和1个欺诈用户,用一个把所有用户都识别成正常用户的模型进行预测,那么该模型的准确率为99%,然而并没有什么用。所以要用另一个参数来衡量模型的好坏。

(一)查准率(Precision)和查全率(Recall) 四类预测

将模型预测结果分为下面四类(T/F后面跟的是预测值,组合起来是实际值):

正确肯定(True Positive,TP):预测为真,实际为真正确否定(True Negative,TN):预测为假,实际为假错误肯定(False Positive,FP):预测为真,实际为假错误否定(False Negative,FN):预测为假,实际为真 四个定义 真正率(true positive rate,TPR), 模型正确预测的正样本的比例(即召回率/查全率): T P R = T P T P + F N T P R=frac{T P}{T P+F N} TPR=TP+FNTP​真负率(true negative rate,TFR),模型正确预测的负样本的比例: T N R = T N T N + F P T N R=frac{T N}{T N+F P} TNR=TN+FPTN​假正率(false positive rate,FPR) :
F P R = F P T N + F P F P R=frac{F P}{T N+F P} FPR=TN+FPFP​假负率(flase negative rate,FNR) F N R = F N T P + F N F N R=frac{F N}{T P+F N} FNR=TP+FNFN​
True or False表示预测的正确性,Positive or Negative 表示预测的结果,所以False Positive 就表示预测的结果是Positive真,但是预测错了实际为假。 查准与查全率

查准率=TP/(TP+FP),预测为欺诈用户的人中,真正欺诈用户占被预测为欺诈用户的比例
查全率=TP/(TP+FN),所有的欺诈用户中被正确预测为欺诈用户的比例,比如上面那个例子,查全率就为0.

查准与查全率关系

一般查准率越高查全率越低。

因为要想查准率高我们就的设置一个较高的阈值,这里阈值指的是判断是否为正样本的阈值,比如判断是否为欺诈用户,一个判断标准是当月贷款的数目,把该属性的阈值设定的越高,过滤出的结果中为欺诈用户的可能性越高,但是可能就会漏掉一些贷款量较低的欺诈用户,从而导致查全率较低。

应用场景

不同的场景下对于查准率和查全率的要求也是不一样,比如推荐系统中比较倾向于高查准率低产权率,为了尽可能的不影响用户体验实现更精准推荐。而抓捕逃犯的系统中更需要高的查全率,误抓也不能漏抓。

(二)P-R曲线

即prc
如果没有那么明确场景比如P和R需要哪一个更高,可以通过P-R曲线来选取一个双高的点。
对于不同的阈值下模型预测由不同的P和R,遍历所有可能的阈值,将对用的P和R画在二维坐标系上得到P-R曲线。

没有明确的场景时,如果要比较模型的好坏,比如图中的A,B,C模型,主要有下面的方法:

P-R曲线包含的面积的大小,包含的面积越大表示模型效果越好BEP度量,由于面积不好求,用“平衡点”(Break-Even-Point,简称BEP)来衡量,即P=R的点,谁大谁优F1度量,F1度量是P-R的加权调和平均,并由一个参数 β beta β来决定P与R的相对重要性
用 F β F_{beta} Fβ​来度量F1
1 F β = 1 1 + β 2 ( 1 p + β 2 R ) frac{1}{F_{beta}}=frac{1}{1+beta^{2}}left(frac{1}{p}+frac{beta^{2}}{R}right) Fβ​1​=1+β21​(p1​+Rβ2​)
==>
F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{beta}=frac{left(1+beta^{2}right) times P times R}{left(beta^{2} times Pright)+R} Fβ​=(β2×P)+R(1+β2)×P×R​

β = 1 beta=1 β=1时即调和平均数

(三)ROC曲线与AUC

ROC 曲线x轴表示的是假正率,y轴表示的是真正率.
ROC底部的面积被称为AUC.
T P R = T P T P + F N ( 预 测 正 类 占 实 际 正 类 比 例 ) T P R=frac{T P}{T P+F N} (预测正类占实际正类比例) TPR=TP+FNTP​(预测正类占实际正类比例)
F P R = F P T N + F P ( 预 测 正 类 占 实 际 负 类 比 例 ) F P R=frac{F P}{T N+F P}(预测正类占实际负类比例) FPR=TN+FPFP​(预测正类占实际负类比例)
理想情况下,TPR=1, FPR = 0

ROC曲线用来衡量分类器的好坏,ROC曲线越是靠左上角,说明分类器越好;
AUC对样本类别是否均衡并不敏感,这也是不均衡样本通常采用AUC评价分类性能的原因

如何使用

机器学习模型做二分类预测的时候一般会输出概率,(也可以直接输出01,默认阈值好像是0.5)。
我们可以利用PR曲线手动的去选择一个满足当前场景的阈值

小结

当数据集中正负样本数分布不均衡时P-R曲线比较常用,否则ROC曲线比较常用, 都是为了选出好的分类器

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。