我的 ROC 曲线的一个区域在随机线下方,如何修改混淆矩阵?

A region of my ROC curve is below the random line, how to modify the confusion matrix?

在下面的 roc 曲线中,当阈值较低时 roc_curve 低于随机线为什么会发生这种情况? 混淆矩阵看起来像这样, 我的问题是混淆矩阵中的以下哪些元素(TP、FP、TN、FN)应该增加或减少,以便在随机线上获得 roc_curve?

            Predicted
            Neg   Pos

Actual Neg  1656  860
Actual Pos  145  331

预赛

predict_proba,调用您的模型对象,returns 预测概率 event=1 对于您的数据的每一行。

中华民国

绘制 ROC 时,相应的方法会根据事件 =1 的 预测概率 对数据进行降序排序。 ROC 准确地告诉您模型预测可以实现哪些 TPR 和 FPR 组合。

ROC这个形状说的是:

  1. 事件=1 的预测概率,由您的模型生成,与事件=1 真实概率 匹配对于大约 85% 的数据,=28=]比随机分配(由 "random line" 表示)更好。准确的说,这85%是事件=1.
  2. 预测概率最高的85%行
  3. 事件=1 的预测概率,由您的模型生成,与事件=1 真实概率 匹配=28=]比随机分配(用 "random line" 表示)差 大约 15% 的数据。准确的说,这15%是事件=1.
  4. 预测概率最低的15%行

我从你的图表中取了 85% 和 15% 的值:这是我对 ROC 穿过对角线 ("random line") 的点的眼球估计,应该被认为只是说明性的。

造成这种现象的一个可能原因:这可能是与单热编码分类特征相关的过度拟合的结果,其类别 "behave" 对于数据集的不同子群体是不同的。您可能想在拟合模型之前尝试排除一些变量并寻找 ROC 形状的改进。

混淆矩阵

混淆矩阵的结果与您的模型生成的事件=1 的预测概率相同。单个混淆矩阵与特定的 预测概率 阈值有关,用于分配单行预测 = 1 或预测 = 0。单个混淆矩阵由 ROC 处的单个点表示,因此您实际上无法通过操纵混淆矩阵元素来操纵 ROC 形状。您应该反其道而行之:ROC shape 以某种方式告诉您您的模型可以实现哪些混淆矩阵。

希望这对您有所帮助:-)