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

线性回归线拟合报错:操作数无法广播,形状不匹配

解决3D绘图中最佳拟合线的形状不匹配问题

问题根源

你当前的x_fit和y_fit是1000个均匀分布的点,但z_fit是基于原始75个features预测得到的,两者长度不一致,导致plot3D无法完成广播匹配,抛出形状不兼容的错误。

修复方案

要生成和x_fit/y_fit长度一致的z_fit,需要用新的拟合点构造对应输入特征,再传给模型预测:

修改后的代码

# Plot Curve Fit
x_fit = np.linspace(0,21,1000)
y_fit = x_fit

# 构造与x_fit/y_fit对应的新特征矩阵
# 假设原始features是二维数组,每一行结构为[x, y]
fit_features = np.column_stack((x_fit, y_fit))

# 用新特征预测对应z值
z_fit = model.predict(fit_features)

fig=plt.figure(figsize=[15,15])

ax1=fig.add_subplot(2,2,1, projection='3d')
ax1.set_xlabel('x', c='r', size=12)
ax1.set_ylabel('y', c='r', size=12)
ax1.set_zlabel('z', c='r', size=12)
# 此时x_fit、y_fit、z_fit均为(1000,),可正常绘制拟合线
ax1.plot3D(x_fit, y_fit, z_fit, 'gray')
ax1.view_init(0,90)
ax1.scatter3D(xdata, ydata, zdata, c=zdata, cmap='jet')

关键说明

  • np.column_stack((x_fit, y_fit))会把两个一维数组拼接成1000行2列的特征矩阵,和原始features的结构保持一致,确保模型能正确预测。
  • 如果你的模型输入特征并非[x,y]的结构,需要根据实际特征构造逻辑调整fit_features,比如包含其他特征时,要对应生成这些特征的拟合值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:01:23