我有一个2D数组,我正在尝试拟合数据曲线。我的目标函数是多项式函数:
def objective(x, a, b, c):
return a * x + b * x**2 + c
我使用curve_fit
从scipy.optimize
找到适合数据的曲线。但是,我需要知道这个模型有多好。实际数据和估计曲线之间的差异是什么?我如何找到这个?curve_fit
是否使用均方误差找到曲线?我如何控制这个差异?
我有一个2D数组,我正在尝试拟合数据曲线。我的目标函数是多项式函数:
def objective(x, a, b, c):
return a * x + b * x**2 + c
我使用curve_fit
从scipy.optimize
找到适合数据的曲线。但是,我需要知道这个模型有多好。实际数据和估计曲线之间的差异是什么?我如何找到这个?curve_fit
是否使用均方误差找到曲线?我如何控制这个差异?
2条答案
按热度按时间6bc51xsx1#
最好使用np.polynomial.polynomial.polyfit`进行多项式拟合。
e3bfsja22#
根据
curve_fit
的文档,将输入参数full_output
设置为True
,该函数返回一些关于优化的附加信息;具体来说,函数返回一个字典(infodict
),其中包含fvec
项,该项包含在解处计算的残差(y - y_star
)。此外,如果适用,用于优化的默认方法是最小二乘法(请查看method
参数)。所以,如果你想知道拟合函数的误差,你可以使用那些信息:
这是表示原始数据和上一代码中插值的图