0

我正在尝试将多项式回归模型拟合到数据集。当我运行以下代码时,我收到错误:解包的值太多(3)。我怎么解决这个问题?

    return (a * x) + (b * x**2) + c

x,y = xdata, ydata
popt, _ = curve_fit(objective, x, y, maxfev = 2000)
a,b,c  = popt
print('y = %.5f * x + %.5f * x^2 + %.5f' % (a, b, c))
pyplot.scatter(x,y)
x_line = arrange(min(x), max(x), 1)
y_line = objective(x_line, a, b, c)
pyplot.plot(x_line, y_line, '--', color='red')
pyplot.show()

正如您在下面的屏幕截图中看到的那样,当我运行代码时出现错误。

Jupyter 报错截图

有什么建议么?

4

1 回答 1

-1
  1. 请包括您的进口或使其显而易见。搜索您可能调用过的所有可能的 curve_fit 函数有点烦人

  2. 正如其他人所说,您的问题是您尝试从具有较少条目的元组或列表中解压缩 3 个值。

  3. 具体来说,popt 是一组优化参数。scipy.optimize.curve_fit通过自省确定参数的数量。我假设你的目标函数只有一两个参数。

于 2021-11-01T16:31:38.313 回答