You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中Multiclass Logistic Regression绘制各分类ROC曲线AUC全为1问题求解

多分类逻辑回归ROC曲线错误修复方案

核心问题根因

你生成的ROC曲线完全重合、AUC全为1的问题出在自定义计算的diffscore变量上:

  • One-vs-Rest多分类逻辑回归输出的scores矩阵中,第classNum列本身就是样本属于目标类别的置信度,不需要额外做差值计算
  • 你自定义的diffscore是目标类别得分与其余所有类别最高得分的差值,这个值只能反映模型是否将该样本判定为目标类别(值为正则判定为目标类,为负则判定为其他类),完全丢失了原始置信度的排序信息。只要模型在测试集上预测准确率为100%,所有类别的AUC都会计算为1,且ROC曲线形态完全一致

代码修改方案

不需要保留diffscore的计算逻辑,直接替换生成ROC的代码即可:

classNum=3; % 替换为你要生成ROC曲线的目标类别
% 直接取目标类别的原始得分作为置信度输入perfcurve
[xROC,yROC,~,auc] = perfcurve(y_test, scores(:,classNum), classNum);

验证方法

  • 输出scores矩阵的数值,确认每个维度的取值范围在0-1之间,符合sigmoid函数的输出特征
  • 打印不同类别的AUC数值,确认不同类别之间存在符合预期的差异

内容的提问来源于stack exchange,提问作者STEMQs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:45:03