ROC曲线

在网上有很多地方都有说ROC曲线对于正负样本比例不敏感,即正负样本比例的变化不会改变ROC曲线。但是对于PR曲线就不一样了。PR曲线会随着正负样本比例的变化而变化。但是没有一个有十分具体和严谨地对此做出过分析和论证(至少我没有找到)。

此处记为结论1:

结论1:PR曲线会随着正负样本比例的变化而变化;但是ROC曲线不会。

此处我就这一问题进行了详细的分析论证,并在这个过程中引发了很多思考。

首先,如何分析这个问题呢?

看下ROC曲线是由TPR和FPR组成的

下面我们这样来分析这个问题,首先构造出一个数据集,并且其中某个参数可以控制数据集中正负正负样本比例。在不同样本分布的情况下,我们计算TPR,FPR,PREC,RECALL,如果TPR与FPR的关系与正负样本比例无关,而PREC与RECALL的关系与正负样本比例有关,则可以论证结论1

下面我们做出如下假设,并生成数据集来验证结论1

假设1:

数据集的score和Y是这样生成的,即score决定了Y的概率,P(Y=1|score)=score

数据集均匀地在0~m之间生成,即s服从在0~m之间的均匀分布。通过m的改变,可以改变正负样本的比例,从而严重不同比例下的TPR,FPR,PREC,RECALL变化情况...

\begin{equation} \left\{\begin{matrix}
TP=N\int_{c}^{m}sds=\frac{N}{2}(m^{2}-c^{2})
\\ FP=N\int_{c}^{m}(1-s)ds=N(m-c)-\frac{N}{2}(m^{2}-c^{2})
\\ TN=N\int_{0}^{c}(1-s)ds=N(c-\frac{1}{2}c^{2})
\\ FN=N\int_{0}^{c}sds=\frac{N}{2}c^{2}
\end{matrix}\right. \end{equation}

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

通过以上结果分别计算TPR,FPR,PREC

\begin{equation} \left\{\begin{matrix}
TPR=\frac{TP}{TP+FN}=1-\frac{c-\frac{1}{2}c^{2}}{m-\frac{1}{2}m^{2}}
\\ FPR=\frac{FP}{FP+TN}=1-(\frac{c}{m})^{2}
\\ PREC=\frac{TP}{TP+FP}=\frac{1}{2}(m+c)
\end{matrix}\right. \end{equation}

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:宋体;
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;
mso-font-kerning:1.0pt;}

得出如下结论:  即结论1不成立,和起初设想的不一样,怎么办呢,还是拿实际数据来说话吧。

matlab模拟

假设一个生成模型,p(s|y=1)服从N(1,1),p(s|y=0)服从N(-1,1),score即为s,即我们的预测值,通过改变正负样本比例,画出在2种比例下的ROC曲线,看有没有区别。

代码如下:

 N=;
M=floor(N*);%不平衡样本
score=[normrnd(,,,N) normrnd(-,,,M)];
y=[ones(,N) zeros(,M)];
[TPR,FPR,TH] = roc(y,score);
plot(FPR,TPR,'r')
hold on
M=floor(N*);%平衡样本
score=[normrnd(,,,N) normrnd(-,,,M)];
y=[ones(,N) zeros(,M)];
[TPR,FPR,TH] = roc(y,score);
plot(FPR,TPR,'b')
%结果一样

aaarticlea/png;base64,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" alt="" width="442" height="274" />

图1  ROC不随着样本比例变化而变化

发现之前的分析是错误的,但是为什么呢?咋看下来,假设完全合理的呀,

下面我们构造一个生成模型,从这里生成的数据出发,重新分析一下:

假设2:

先验分布如下:P(Y=1)=z,P(Y=0)=1-z,这里的z可以控制样本的正负比例

在Y=1,0时会有不同的概率分布来产生一个观测量,即我们的score,它们的pdf分别是p(s|Y=1),p(s|Y=0)

我们根据这个先验和后验分布来生成我们的数据,样本个数为N,然后通过取不同的cutoff(记为c),得到不同cutoff下的TP,FP,TN,FN...

依据这个假设,我们可以得到

\begin{equation}\left\{\begin{matrix}
TP=N\int_{c}^{\infty}p(Y=1|s)p(s)ds=N\int_{c}^{\infty}p(Y=1,s)ds=N\int_{c}^{\infty}p(s|Y=1)P(Y=1)ds=N*P(Y=1)\int_{c}^{\infty}p(s|Y=1)ds
\\ FP=N\int_{c}^{\infty}p(Y=0|s)p(s)ds=N\int_{c}^{\infty}p(Y=0,s)ds=N\int_{c}^{\infty}p(s|Y=0)P(Y=0)ds=N*P(Y=0)\int_{c}^{\infty}p(s|Y=0)ds
\\ TN=N\int_{-\infty }^{c}p(Y=0|s)p(s)ds=N\int_{-\infty }^{c}p(Y=0,s)ds=N\int_{-\infty }^{c}p(s|Y=0)P(Y=0)ds=N*P(Y=0)\int_{-\infty }^{c}p(s|Y=0)ds
\\ FN=N\int_{-\infty }^{c}p(Y=1|s)p(s)ds=N\int_{-\infty }^{c}p(Y=1,s)ds=N\int_{-\infty }^{c}p(s|Y=1)P(Y=1)ds=N*P(Y=1)\int_{-\infty }^{c}p(s|Y=1)ds
\end{matrix}\right. \end{equation}

所以可以得到TPR,FPR和PREC,RECALL

\begin{equation} FPR=\frac{FP}{FP+TN}=\frac{P(Y=0)\int_{c}^{\infty}p(s|Y=0)ds}{P(Y=0)}=\int_{c}^{\infty}p(s|Y=0)ds \end{equation}

\begin{equation} TPR=\frac{TP}{TP+FN}=\frac{P(Y=1)\int_{c}^{\infty}p(s|Y=1)ds}{P(Y=1)}=\int_{c}^{\infty}p(s|Y=1)ds \end{equation}

\begin{equation} PREC=\frac{TP}{TP+FP}=\frac{P(Y=1)\int_{c}^{\infty}p(s|Y=1)ds}{P(Y=1)\int_{c}^{\infty}p(s|Y=1)ds+P(Y=0)\int_{c}^{\infty}p(s|Y=0)ds} \end{equation}

显然可以得到我们所希望得到的结论:即TPR,FPR与正负样本比例无关,但是PREC与正负样本比例有关。从而论证了结论1。

但是为什么假设1就得出了不同的结论了呢?

再回头看一下假设1,它是通过改变先验分布来决定正负样本比例的,这样是很自然的。并且后验分布并不会随着样本比例变化而变化。

但是假设1呢?其后验分布其实是随着样本比例变化而变化的,所以假设1的问题就出在这里了。即后验分布的变化导致了各个指标的变化,甚至导致AUC的变化。

如果只改变先验,而不改变后验的话,P(Y=1|score)就会发生变化。

即得出了如下结论:

结论2:在构造数据的过程中,要通过改变先验来改变正负比例的变化,不应该动后验。然后预测的概率在样本分布变化的情况下,需要进一步做修正(即Calibration)。

对于假设1,通过重采样正样本来改变正负样本比例,则预测的概率需要修正,再修正过后,可以得到与假设2同样的结论,论证结论1的成立。

对于结论2,我们可以得到新的信息,通常对于样本不平衡问题,都会采用重采样的方法,从一定程度上缓解不平衡性。注意重采样方法保证了少样本类别的样本分布依旧是同分布的。如果某种,就需要仔细推敲一下了。还有如果你是预测概率,通常要做calibration,修正概率值,那你的修正数据集一定要与先验一致(不要采用与重采样比例一致的样本),要不然修正的概率值是有偏的,从而你的修正是白费功夫或者是有害的。

总结:

1) 分析问题需要仔细推敲,前提假设非常重要,真是一步错步步错。

2) 分析问题要全面深入,这样可以对旧问题的分析,得到新的知识。也即温故而知新吧。

【ROC曲线】关于ROC曲线、PR曲线对于不平衡样本的不敏感性分析说引发的思考的更多相关文章

  1. ROC曲线、PR曲线

    在论文的结果分析中,ROC和PR曲线是经常用到的两个有力的展示图. 1.ROC曲线 ROC曲线(receiver operating characteristic)是一种对于灵敏度进行描述的功能图像. ...

  2. PR曲线,ROC曲线,AUC指标等,Accuracy vs Precision

    作为机器学习重要的评价指标,标题中的三个内容,在下面读书笔记里面都有讲: http://www.cnblogs.com/charlesblc/p/6188562.html 但是讲的不细,不太懂.今天又 ...

  3. 精确率与召回率,RoC曲线与PR曲线

    在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢? 首先,我们需要搞清楚几个拗口 ...

  4. ROC曲线和PR曲线

    转自:http://www.zhizhihu.com/html/y2012/4076.html分类.检索中的评价指标很多,Precision.Recall.Accuracy.F1.ROC.PR Cur ...

  5. 机器学习之类别不平衡问题 (2) —— ROC和PR曲线

    机器学习之类别不平衡问题 (1) -- 各种评估指标 机器学习之类别不平衡问题 (2) -- ROC和PR曲线 完整代码 ROC曲线和PR(Precision - Recall)曲线皆为类别不平衡问题 ...

  6. ROC曲线和PR曲线绘制【转】

    TPR=TP/P :真正率:判断对的正样本占所有正样本的比例.  Precision=TP/(TP+FP) :判断对的正样本占判断出来的所有正样本的比例 FPR=FP/N :负正率:判断错的负样本占所 ...

  7. PR曲线 ROC曲线的 计算及绘制

    在linear model中,我们对各个特征线性组合,得到linear score,然后确定一个threshold,linear score < threshold 判为负类,linear sc ...

  8. P-R曲线及与ROC曲线区别

    一.P-R曲线 P-R曲线刻画查准率和查全率之间的关系,查准率指的是在所有预测为正例的数据中,真正例所占的比例,查全率是指预测为真正例的数据占所有正例数据的比例. 即:查准率P=TP/(TP + FP ...

  9. AUC ROC PR曲线

    ROC曲线: 横轴:假阳性率 代表将负例错分为正例的概率 纵轴:真阳性率 代表能将正例分对的概率 AUC是ROC曲线下面区域得面积. 与召回率对比: AUC意义: 任取一对(正.负)样本,把正样本预测 ...

随机推荐

  1. SharedPreference简介

    SharedPreference 是一种简单的.轻量级的名称/值对(NVP)机制,用于保存原始应用程序数据. 使用SharedPreferences类可以创建名称/值对的命名映射,他们可以在会话之间持 ...

  2. Qt 的信号与槽机制介绍(10个要注意的问题)

    QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...

  3. CentOs6.5中安装和配置vsftp简明

    这篇文章主要介绍了CentOs6.5中安装和配置vsftp简明教程,需要的朋友可以参考下     一.vsftp安装篇 复制代码代码如下: # 安装vsftpdyum -y install vsftp ...

  4. javascript笔记4之运算符

    /* var box = 100; --box; //前置递增,box = box +1 alert(box);//99 var box = 100; var age = ++box; //先box累 ...

  5. 关于bootstrap--列表(ol、ul)

    1.list-unstyled : 在<ol>(有序列表)</ol><ul>(无序列表)</ul>中加入class="list-styled& ...

  6. [WPF] 将普通的Library工程,改造成WPF Custom Control 的Library

    1. 添加References PresentationCore PresentationFramework System.Xaml WindowsBase2. 修改AssemblyInfo.xsus ...

  7. poj 1274 The Perfect Stall(二分图匹配)

    Description Farmer John completed his new barn just last week, complete with all the latest milking ...

  8. 自己意淫的一个简陋的Python网站扫描器

    使用的模块 threading.optparse.urllib2 本地需要放字典,名字需大写. 上代码 def request(url,pathName): try: import urllib2 p ...

  9. [Regex Expression] Find Sets of Characters

    Regular Expression Character Classes define a group of characters we can use in conjunction with qua ...

  10. c++11 NULL、0、nullptr

      C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL;foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #de ...