Python 我的ROC曲线的一个区域位于随机线下方,如何修改混淆矩阵?
在下面的roc曲线中,当阈值较低时,roc_曲线低于随机线,为什么会发生这种情况? 混乱矩阵如下所示, 我的问题是,为了得到随机线上的roc_曲线,混淆矩阵中的以下哪一个元素(TP、FP、TN、FN)应该增加或减少Python 我的ROC曲线的一个区域位于随机线下方,如何修改混淆矩阵?,python,machine-learning,scikit-learn,deep-learning,roc,Python,Machine Learning,Scikit Learn,Deep Learning,Roc,在下面的roc曲线中,当阈值较低时,roc_曲线低于随机线,为什么会发生这种情况? 混乱矩阵如下所示, 我的问题是,为了得到随机线上的roc_曲线,混淆矩阵中的以下哪一个元素(TP、FP、TN、FN)应该增加或减少 预备赛 对模型对象调用predict_proba,为数据的每一行返回事件的预测概率=1。 ROC 绘制ROC时,相应的方法按照事件=1的预测概率按降序对数据进行排序。ROC精确地告诉您通过模型预测可以实现TPR和FPR的组合 这种形状的ROC所说的是: 由您的模型生成的事件=1的预
预备赛 对模型对象调用predict_proba,为数据的每一行返回事件的预测概率=1。
ROC 绘制ROC时,相应的方法按照事件=1的预测概率按降序对数据进行排序。ROC精确地告诉您通过模型预测可以实现TPR和FPR的组合 这种形状的ROC所说的是:
这种现象的一个可能原因是:这可能是与一个热编码分类特征相关的过度拟合的结果,该特征的分类对于数据集的不同子总体“表现”不同。在拟合模型之前,您可能希望尝试排除一些变量,并在ROC形状上寻求改进。
混淆矩阵 混淆矩阵的结果与模型生成的事件=1的预测概率相同。单个混淆矩阵与指定单个行预测=1或预测=0的特定预测概率阈值相关。单个混淆矩阵由ROC处的单个点表示,因此您无法通过操纵混淆矩阵元素来实际操纵ROC形状。你应该用另一种方式来推理:ROC形状不知何故告诉你你的模型可以实现什么样的混淆矩阵
希望这有帮助:-)谢谢你的回答,实际上我使用的是嵌入而不是一个热编码,通过检查训练与验证的损失图,没有过度拟合。顺便说一下,我使用一个数据集进行训练和验证,另一个数据集在上面测试模型(如roc所示)。关于我提供的信息,你能提供我更多的见解吗@Juan关于混淆矩阵,如果您要解决此问题,您将如何改变模型的性能以不获得该曲线(例如,对neg或viceversa处罚等级pos)@MostafaAlishahi您能否为列车数据提供单独的ROC曲线,为验证数据提供单独的ROC曲线,为测试数据提供单独的ROC曲线?实际上,您可以做的是利用模型使用的特征:尝试排除某些特征,例如,从识别开始:1)与目标变量具有非单调关系的特征,并排除此类特征;2)最相关的特征对,并排除其中一对。
Predicted
Neg Pos
Actual Neg 1656 860
Actual Pos 145 331