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

使用sklearn LinearRegression.fit()时样本数不匹配错误求助

问题分析与解决

核心错误:直接调用类方法而非实例方法

LinearRegression是sklearn中的模型类,你必须先实例化一个模型对象,再调用它的fit方法。直接写LinearRegression.fit(u_train, y_train)会导致参数传递完全混乱——第一个参数u_train会被当成类实例的self参数,y_train被当作输入特征X,方法内部因缺少目标变量y触发错误的维度校验。

正确的代码写法:

from sklearn.linear_model import LinearRegression

# 先实例化模型对象
model = LinearRegression()
# 调用实例的fit方法传入数据
model.fit(u_train, y_train)

关于多目标回归的维度说明

如果你的场景是多目标回归(每个样本对应3个目标值),y_train的(503,3)形状是符合要求的——sklearn允许y为(n_samples, n_targets)的二维数组。只要你正确实例化模型,u_train(503个样本,每个3个特征)和y_train的维度是完全匹配的。

为何会出现[3,1509]的报错?

当你错误地直接调用类的fit方法时,内部逻辑会错误解析维度:把y_train的列数(3)当成样本数,同时将y_train的所有元素展平为1509个值(503*3),最终触发样本数不匹配的错误提示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:52:32