样本不平衡时ROC稳定不变而PRC非常敏感

ROC曲线

 

1. ROC曲线的X轴是误诊率,Y轴代表了召回率。

2. 曲线上每一个点,都对应一个阈值,按照这个阈值,可以将预测概率cut成0或者1。以点A为例,以60%的误诊率为代价,可以达到90%的确诊率,可以假设该阈值为0.2,预测概率大于0.2的都挑出来,认为是阳性。

3. 如果阴性、阳性样本比例为1:1,那么这个预测情况为:

 

真实阳性

真实阴性

预测为阳性

90

60

预测为阴性

10

40

合计

100

 100

其中召回率=90/(90+10)=90%,误诊率=60/(60+40)=60%。

4. 当阴性样本变为10倍时,预测的概率分布不会有很大变化,所以大概还是有60%左右的假阳性和40%左右的真阴性:

 

真实阳性

真实阴性

预测为阳性

90

600

预测为阴性

10

400

合计

100

1000

所以recall还是为90%,误诊率依旧在60%左右。

所以ROC就不会变化很大。

 

PRC曲线

 

再看PRC曲线:

1. X轴代表了召回率,Y轴代表了精准率,精准率衡量了是否误伤了好人。

2. 我们还是找一个点,如图所示,召回率=90%,精准率=68%。

3. 对于1:1的样本比例,由召回率=90%,可以计算出TP=90,FN=10。再由精准率=TP/(TP+FP)=68%,可以计算出FP=42,那么TN=100-42=58, 所以该点对应的预测矩阵为:

 

真实阳性

真实阴性

合计

预测为阳性

90

42

132

预测为阴性

10

58

68

合计

100

100

 

4. 再看当阴性扩大10倍,变为1000例时,由于阴性样本的预测概率分布相同,不会改变很多,所以预测矩阵为:

 

真实阳性

真实阴性

 

预测为阳性

90

420

 

预测为阴性

10

580

 

合计

100

1000

 

5. 不平衡时的recall还是90%,但是precison却改变了: 90/(90+420) = 18%,检出了90个真正的患者,却对420个阴性的患者进行了误诊。相比之前的68%,变化是非常大的。

 

到底该用谁呢?

ROC和PRC就是横看成岭侧成峰的意思,东西是一个东西,看你从哪个角度去看而已。

ROC和PRC里都有一个召回率,另外一个角度不同。

ROC关注的是误诊率,担忧的是正常人群被误诊的比例。

PRC关注的是精准率,关注的是每检出一个有病的患者,增加多少个误诊的病例。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值