请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么说precision和recall对数据的偏斜敏感,而roc_auc却不敏感?

所谓敏感,也就是说,precision和recall会随着数据偏斜的程度变化,而剧烈变化。但是这一点是如何体现的呢?

正在回答

1回答

关于precision和recall的意义,请再回顾课程的10-1,10-2两个小节。


这里所说的敏感,是指对于极端偏斜的数据,普通的指标,比如准确率,是看不出我们的模型有任何问题的。但是使用 precision 和 recall 可以。


比如我在课程中举得这个例子:

https://img1.sycdn.imooc.com//szimg/5bd60c860001484b10020557.jpg

从准确率的角度看,这个预测结果的准确率高达:99.86%


但是,从精准率的角度,仅有40%:

https://img1.sycdn.imooc.com//szimg/5bd60ccc000131bb10030561.jpg


从召回率的角度,则是80%:

https://img1.sycdn.imooc.com//szimg/5bd60cf20001a87c10050562.jpg


精准率和召回率都远低于准确率。为什么。可以回头再分析一下准确率的计算,这是因为我们的真正的病人只有10个。极度有偏的数据,是的即使我们预测所有人都是健康的,都能获得极高的准确率。但是,准确率这个指标,在这种情况下,没有揭示出我们的预测模型的问题。但是精准率和召回率揭示出来了:)这是精准率和召回率对极度有偏的数据敏感的意思。


仔细分析,为什么精准率和召回率能够对极度有偏的数据敏感?因为,他们汇率掉了上面混淆矩阵中的TN项!在我们的例子中,TN项是造成数据极度有偏的核心原因,也是让上面我说的“即使预测所有人都是健康的,都能获得极高的准确率”的核心原因。因为大部分人都是健康的,做到相对较高的准确预测TN很容易!


所以,再看ROC的计算(或者ROC曲线的绘制),这个TN是存在在ROC中的,所以,相较准确率和召回率而言,ROC对极度有偏的数据没有那么敏感:)


更多关于ROC,准确率和召回率的分析,也可以参考这个问答:https://coding.imooc.com/learn/questiondetail/42693.html


加油!:)

2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号