美文网首页只为寻得最合适的那个offer
开篇记录面试第20天——P-R曲线和ROC曲线

开篇记录面试第20天——P-R曲线和ROC曲线

作者: 一路不向西 | 来源:发表于2019-06-15 16:49 被阅读0次

    今天看了 一会评价指标的问题,终于把昨天那个AUC曲线为什么不会随正负样本比例变化而变化。
    首先我们明确一个概念,不管是ROC曲线还是P-R曲线,都是建立在我们的混淆矩阵的基础上,根据不同的阈值来计算每个点的值,然后画出图像。那在这里,混淆矩阵又是什么呢?就是下面这个表。

    属性 预测为正样例(P') 预测为负样例(N')
    实际为正样例 TP FN
    实际为负样例 FP TN

    这样一个表格呢,表示的就是混淆矩阵,矩阵的四个值分别是,TP、FN、FP、TN,从表中很容易看出来,TP就是实际为正样例,预测也是正样例,其他以此类推。
    那我们平时所说的准确率和召回率是什么呢?
    我们通常所说的准确率也叫查准率,理解一下就是分对的除以分为这一类的总数,对于正样例,计算公式是Precision=\frac{TP}{TP+FP} (1)
    召回率呢,解释一下就是这一类预测对的除以这一类应有的总数,对于正样例,计算公式为Recall=\frac{TP}{TP+FN}(2)
    通常我们用准确率和召回率来衡量分类模型的效果的好坏,准确率越高,就说明你预测为这一类的正确的越多,召回率越高,就说明这一类你都能找到的越多。但是准确率和召回率都是要建立在阈值的基础上的。怎么理解呢,比如对于一个二分类问题,有A和B两类,有三个预测值,0.7,0.8,0.9,那这三个值怎么知道是哪一类呢?我们给一个规则,假设A是正样例,且阈值为0.9,也就是预测值大于等于0.9的时候我们认为是A类。那现在题目的三个值分别对应的就是B,B,A。如果阈值改为0.6呢,那三个都是A类。那么我们就会发现,同样的一批预测值,它的准确率和召回率是随着阈值变化的。
    这时候就引出了P-R曲线

    什么是P-R曲线?

    P-R曲线的横坐标是召回率,纵坐标是精确率。对于一个排序模型来说,其P-R曲线上的一个点代表着,在某一阈值下,模型将大于该阈值的结果判定为正样本。整条P-R曲线是通过将阈值从高到低移动而生成的。所以我们就可以整体地比较,在不同阈值下模型预测的水平。
    但是有一个问题是,离线评测数据集的数据分布往往跟线上环境的数据集分布不同,比如你的离线数据集正负样本比例1:1,线上样本比例1:100,那这时候你的P-R曲线就不适用了。因为新的结果肯定是偏向于负样本的结果。那这时候就需要ROC曲线出场了。

    什么是ROC曲线?

    ROC曲线的横坐标为假阳性率(FPR),也就是FPR=\frac{FP}{N},纵坐标为真阳性率(TPR),公式为TPR=\frac{TP}{P}。由这两个公式不难看出,FPR就是负样本的召回率,TPR是正样本的召回率。ROC曲线的绘制方法和P-R曲线是类似的,也是根据不同的阈值来描点。但是ROC有一个很好的性质,就是不受样本比例的干扰,因为它的横纵坐标都是单类的召回率,不管样本量怎么变化,单类内部的召回率是不会变的。因此我们可以用ROC曲线下的面积,也就是AUC来直接进行对比模型的效果。

    总结:

    1. P-R曲线适合对比特定数据集下的模型预测效果好坏。
    2. ROC曲线适合对比数据集分布变动大时,对模型结果的对比。

    相关文章

      网友评论

        本文标题:开篇记录面试第20天——P-R曲线和ROC曲线

        本文链接:https://www.haomeiwen.com/subject/uowbfctx.html