如何最小化给定数据集的错误
How to minimize the error to a given dataset
假设一个函数
f(x,y) = z
现在我想选择x,使f的输出与真实数据相匹配,y从1开始等距递减到零。输出是通过一组微分方程在函数f中计算得到的。
我怎样才能 select x 使实际输出的误差尽可能小。假设我知道一组 z - 值,即
f(x,1) = z_1
f(x,0.9) = z_2
f(x,0.8) = z_3
现在发现x
,与真实数据z_1,z_2,z_3
的误差很小。
如何做到这一点?
一种常用的优化方法是最小二乘法拟合,在这种方法中,您基本上会尝试找到使平方和最小化的参数:sum (f(params,xdata_i) - ydata_i))^2
对于给定的 xdata
和 ydata
.在您的情况下:params
将是 x
,xdata_i
将是 1、0.9 和 0.8 以及 ydata_i
z_1、z_2 和 z_3.
您应该考虑包 scipy.optimize。它用于查找函数的参数。我认为 this page 给出了一个很好的例子来说明如何使用它。
假设一个函数
f(x,y) = z
现在我想选择x,使f的输出与真实数据相匹配,y从1开始等距递减到零。输出是通过一组微分方程在函数f中计算得到的。
我怎样才能 select x 使实际输出的误差尽可能小。假设我知道一组 z - 值,即
f(x,1) = z_1
f(x,0.9) = z_2
f(x,0.8) = z_3
现在发现x
,与真实数据z_1,z_2,z_3
的误差很小。
如何做到这一点?
一种常用的优化方法是最小二乘法拟合,在这种方法中,您基本上会尝试找到使平方和最小化的参数:sum (f(params,xdata_i) - ydata_i))^2
对于给定的 xdata
和 ydata
.在您的情况下:params
将是 x
,xdata_i
将是 1、0.9 和 0.8 以及 ydata_i
z_1、z_2 和 z_3.
您应该考虑包 scipy.optimize。它用于查找函数的参数。我认为 this page 给出了一个很好的例子来说明如何使用它。