You need to enable JavaScript to run this app. Logistic Regression拟合报"bad input shape",多标签y_train是否可用?
优惠活动
大模型
产品
解决方案
定价
更多

Logistic Regression拟合报"bad input shape",多标签y_train是否可用?

关于Logistic Regression触发"bad input shape"的解答

直接答复:你当前形状为(187,5)的嵌套数组形式y_train,不能直接传入默认配置的Logistic Regression进行训练,这就是触发"bad input shape"报错的核心原因。

报错触发逻辑

sklearn内置的Logistic Regression默认仅支持单标签分类任务:

  • 对训练目标y的强制校验规则为一维结构,要求形状为(n_samples,),即每个样本仅对应1个分类标签值
  • 你当前的y_train是典型的多标签格式:每一个样本对应5个独立的0/1标签,意味着一个样本可以同时属于多个类别,这种二维结构的y不符合默认输入要求,因此会被形状校验逻辑拦截抛出报错
  • 你的X_train形状(187, 12432)完全符合Logistic Regression的样本输入要求,只要X和y的样本数一致,哪怕特征维度很高,也不会触发这个形状报错

可行的适配方案

不需要修改现有y_train的结构,通过sklearn提供的多标签包装类即可正常训练:

  • 引入MultiOutputClassifier对基础Logistic Regression做封装,封装后的模型会自动适配二维结构的多标签y
  • 封装逻辑的本质是对y的每一列标签单独训练一个独立的Logistic Regression二分类器,最终将5个列的预测结果拼接为多维度输出,完全匹配你当前的y结构

可直接复用的代码片段:

from sklearn.linear_model import LogisticRegression
from sklearn.multioutput import MultiOutputClassifier

# 初始化支持多标签的分类器
model = MultiOutputClassifier(LogisticRegression())
# 直接传入当前形状的X_train、y_train即可完成训练,不会再触发形状报错
model.fit(X_train, y_train)

注意:这种独立列训练的方式默认假设5个标签之间不存在关联,如果标签间存在强相关关系,后续可以基于任务精度需求调整多标签适配方法,但就解决输入形状报错的目标来说,上述方案完全可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 15:36:10