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

调用roc_auc_score报错:multiclass-multioutput不支持(LR)

解决ROC AUC Score报错:multiclass-multioutput format is not supported

嘿,我一眼就看出你代码里的问题啦!你调用roc_auc_score的时候传错参数了,这才导致了那个多分类格式不支持的错误。

问题根源

roc_auc_score这个函数根本不需要你传特征矩阵(比如X_important_train),它要的是模型输出的预测得分/概率,还有真实标签。你现在把多列的特征矩阵传进去,函数会误以为你在做多分类或多输出任务,自然就抛出错误了——毕竟你明明是做二分类(0和1)的任务呀!

修正后的完整代码

我把你的代码调整成正确的写法,关键步骤我标出来了:

# Load libraries
from sklearn.linear_model import LogisticRegression
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import roc_auc_score

# 先初始化模型(你原来的代码里漏了这一步哦)
model = LogisticRegression()

# 标准化特征:注意!建议只在训练集上fit,避免数据泄露
scaler = StandardScaler()
X_important_train_std = scaler.fit_transform(X_important_train)

# 在重要特征上训练模型
model.fit(X_important_train_std, y_train)
# 查看训练集准确率
train_score = model.score(X_important_train_std, y_train)
print(f"训练集准确率: {train_score}")

# 关键步骤:生成模型对训练集的正类预测概率
# predict_proba返回二维数组,[:,1]提取类别1的概率列
y_pred_proba = model.predict_proba(X_important_train_std)[:, 1]

# 正确计算ROC AUC分数
roc_auc = roc_auc_score(y_train, y_pred_proba)
print(f"ROC AUC分数: {roc_auc}")

额外注意点

  • 如果你不想用预测概率,也可以用model.decision_function(X_important_train_std),它返回的是模型的决策函数值,同样可以作为y_score传入roc_auc_score。
  • 一定要确保你的标签y_train只有0和1两个类别,要是不小心混入了其他类别,也会触发多分类相关的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:41:46