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

Python sklearn二次多项式拟合报matmul维度不匹配错误求解

问题诱因

报错的核心原因是模型训练阶段和预测阶段的输入特征维度不匹配:

  • 你通过PolynomialFeatures生成了包含一次项、二次项的2维多项式特征x_poly,但训练LinearRegression模型时,传入的拟合数据是原始1维特征x,最终训练得到的模型权重仅适配1个输入特征
  • 预测阶段传入的x_vp是经过多项式转换的2维特征,做矩阵运算时特征数和模型权重维度无法对齐,就触发了维度不匹配报错,报错信息中提示的size 1 is different from 2,就是指模型训练时接收的1个特征和预测时传入的2个特征的维度差。
修复方案

仅需要修改模型拟合时的传入参数即可:

  • 将模型训练语句中的输入特征从原始x替换为多项式转换后的x_poly,让模型学习到一次项、二次项对应的权重,保证训练和预测阶段的特征维度完全一致
  • 其余特征转换、绘图逻辑无需调整
修正后可运行代码
from numpy import *
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures

x = array([[0.121644, 0.243288, 0.486576, 0.60822, 0.729864, 0.851508]]).reshape(-1,1)
y = array([[0.95, 1.02, 1.21, 1.35, 1.47, 1.61]]).reshape(-1,1)

poly = PolynomialFeatures(degree=2, include_bias=False)
x_poly = poly.fit_transform(x)

reg = LinearRegression()
# 核心修正:使用多项式特征训练模型
reg.fit(x_poly, y)

x_val = linspace(0.121644, 0.851508, 100).reshape(-1,1)
x_vp = poly.transform(x_val)

y_val = reg.predict(x_vp)

plt.scatter(x,y)
plt.plot(x_val, y_val)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:06:40