查准率(Precision)和查全率(Recall)和 P-R曲线、ROC曲线

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

(一)查准率(Precision)和查全率(Recall)

四类预测

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

  1. 正确肯定(True Positive,TP):预测为真,实际为真
  2. 正确否定(True Negative,TN):预测为假,实际为假
  3. 错误肯定(False Positive,FP):预测为真,实际为假
  4. 错误否定(False Negative,FN):预测为假,实际为真

四个定义

  1. 真正率(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
  2. 真负率(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
  3. 假正率(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
  4. 假负率(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曲线。
查准率(Precision)和查全率(Recall)和 P-R曲线、ROC曲线_第1张图片
没有明确的场景时,如果要比较模型的好坏,比如图中的A,B,C模型,主要有下面的方法:

  1. P-R曲线包含的面积的大小,包含的面积越大表示模型效果越好
  2. BEP度量,由于面积不好求,用“平衡点”(Break-Even-Point,简称BEP)来衡量,即P=R的点,谁大谁优
  3. 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 P\right)+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
查准率(Precision)和查全率(Recall)和 P-R曲线、ROC曲线_第2张图片

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

如何使用

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

小结

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

你可能感兴趣的:(机器学习)