我的ROC曲线的一部分低于随机线,如何修改混淆矩阵?

在下面的ROC曲线中,当阈值较低时,ROC曲线会低于随机线,这是为什么呢?混淆矩阵看起来像这样,我的疑问是,混淆矩阵中的哪些元素(TP、FP、TN、FN)应该增加或减少,以便使ROC曲线超过随机线?

ROC Curve

            Predicted            Neg   PosActual Neg  1656  860Actual Pos  145  331

回答:

前言

predict_proba方法,调用于你的模型对象,返回每个数据行的预测概率,即事件=1的概率。

ROC

在绘制ROC时,对应的方法会根据事件=1的预测概率以降序排列你的数据。ROC准确地告诉你,你的模型预测可以实现的TPR和FPR的组合是什么。

这个ROC形状所表达的是:

  1. 由你的模型生成的事件=1的预测概率,比随机分配(由“随机线”表示)更好地匹配事件=1的真实概率,大约占你数据的85%。确切地说,这85%是预测概率最高的85%行。
  2. 由你的模型生成的事件=1的预测概率,比随机分配(由“随机线”表示)更差地匹配事件=1的真实概率,大约占你数据的15%。确切地说,这15%是预测概率最低的15%行。

我从你的图表中取了85%和15%的值:这是我目测估计ROC曲线与对角线(“随机线”)交叉点的估值,仅供参考。

这种现象的一个可能原因:这可能是与一个热编码的分类特征相关的过拟合结果,该特征的类别在你数据集的不同子群体中“表现”不同。你可能需要尝试在拟合模型之前排除一些变量,并寻找ROC形状的改进。

混淆矩阵

混淆矩阵源自于你的模型生成的事件=1的相同预测概率。单个混淆矩阵与用于将单行分配为预测=1或预测=0的特定预测概率阈值相关。单个混淆矩阵在ROC上表示为一个点,因此你实际上无法通过操纵混淆矩阵元素来操纵ROC形状。你应该反过来推理:ROC形状以某种方式告诉你你的模型可以实现哪些混淆矩阵。

希望这对你有帮助 🙂

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注