在下面的ROC曲线中,当阈值较低时,ROC曲线会低于随机线,这是为什么呢?混淆矩阵看起来像这样,我的疑问是,混淆矩阵中的哪些元素(TP、FP、TN、FN)应该增加或减少,以便使ROC曲线超过随机线?
Predicted Neg PosActual Neg 1656 860Actual Pos 145 331
回答:
前言
predict_proba方法,调用于你的模型对象,返回每个数据行的预测概率,即事件=1的概率。
ROC
在绘制ROC时,对应的方法会根据事件=1的预测概率以降序排列你的数据。ROC准确地告诉你,你的模型预测可以实现的TPR和FPR的组合是什么。
这个ROC形状所表达的是:
- 由你的模型生成的事件=1的预测概率,比随机分配(由“随机线”表示)更好地匹配事件=1的真实概率,大约占你数据的85%。确切地说,这85%是预测概率最高的85%行。
- 由你的模型生成的事件=1的预测概率,比随机分配(由“随机线”表示)更差地匹配事件=1的真实概率,大约占你数据的15%。确切地说,这15%是预测概率最低的15%行。
我从你的图表中取了85%和15%的值:这是我目测估计ROC曲线与对角线(“随机线”)交叉点的估值,仅供参考。
这种现象的一个可能原因:这可能是与一个热编码的分类特征相关的过拟合结果,该特征的类别在你数据集的不同子群体中“表现”不同。你可能需要尝试在拟合模型之前排除一些变量,并寻找ROC形状的改进。
混淆矩阵
混淆矩阵源自于你的模型生成的事件=1的相同预测概率。单个混淆矩阵与用于将单行分配为预测=1或预测=0的特定预测概率阈值相关。单个混淆矩阵在ROC上表示为一个点,因此你实际上无法通过操纵混淆矩阵元素来操纵ROC形状。你应该反过来推理:ROC形状以某种方式告诉你你的模型可以实现哪些混淆矩阵。
希望这对你有帮助 🙂