为什么说precision和recall对数据的偏斜敏感,而roc_auc却不敏感?
来源:10-7 ROC曲线
血色星期二
2018-10-28
所谓敏感,也就是说,precision和recall会随着数据偏斜的程度变化,而剧烈变化。但是这一点是如何体现的呢?
1回答
-
关于precision和recall的意义,请再回顾课程的10-1,10-2两个小节。
这里所说的敏感,是指对于极端偏斜的数据,普通的指标,比如准确率,是看不出我们的模型有任何问题的。但是使用 precision 和 recall 可以。
比如我在课程中举得这个例子:
从准确率的角度看,这个预测结果的准确率高达:99.86%
但是,从精准率的角度,仅有40%:
从召回率的角度,则是80%:
精准率和召回率都远低于准确率。为什么。可以回头再分析一下准确率的计算,这是因为我们的真正的病人只有10个。极度有偏的数据,是的即使我们预测所有人都是健康的,都能获得极高的准确率。但是,准确率这个指标,在这种情况下,没有揭示出我们的预测模型的问题。但是精准率和召回率揭示出来了:)这是精准率和召回率对极度有偏的数据敏感的意思。
仔细分析,为什么精准率和召回率能够对极度有偏的数据敏感?因为,他们汇率掉了上面混淆矩阵中的TN项!在我们的例子中,TN项是造成数据极度有偏的核心原因,也是让上面我说的“即使预测所有人都是健康的,都能获得极高的准确率”的核心原因。因为大部分人都是健康的,做到相对较高的准确预测TN很容易!
所以,再看ROC的计算(或者ROC曲线的绘制),这个TN是存在在ROC中的,所以,相较准确率和召回率而言,ROC对极度有偏的数据没有那么敏感:)
更多关于ROC,准确率和召回率的分析,也可以参考这个问答:https://coding.imooc.com/learn/questiondetail/42693.html
加油!:)
222022-06-16
相似问题