gpt4 book ai didi

python - 最小二乘法如何处理给定函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:28 25 4
gpt4 key购买 nike

我有一些数据,我使用下面的 numpy 函数来进行拟合。配件很好,但我需要一些解释它是如何工作的。 p[1],p[2],p[0] 代表什么。如果我能得到它的数学表达式,那就太好了。最小二乘法到底在做什么?

fitfuncvx = lambda p, x: p[2]+p[0]*np.exp(-x/p[1])
errfuncvx = lambda p, x, y: y - fitfuncvx(p, x)
sig_fit=np.where(Sig<12)
pinit = [1, 100,0.1]
pfinal, success = optimize.leastsq(errfuncvx, pinit[:], args=(Sig[sig_fit], vx[sig_fit]))

最佳答案

什么是p[0]、p[1]、p[2]

scipy.optimize 函数通常返回一个参数数组p。例如,给定一个线性方程:

enter image description here

p 包括线性方程的截距和连续系数(或权重):

enter image description here

因此,在后一个示例中,p[0]p[1] 属于截距斜率 分别为一行。当然,还可以针对高阶多项式优化更多参数(...)。 OP使用指数函数,其中参数可以重写如下:

def fitfuncvx(p, x):
b0, b1, b2 = p
return b2 + b0*np.exp(-x/b1)

我们看到p中的参数被显式解包为单独的权重b0, b1, b2,它们直接对应于p[0], p[1 ]、p[2] 分别。

<小时/>

详细信息:优化器如何工作?

scipy.optimize.leastsq的第一个返回值函数是一组优化的拟合参数,从您最初的猜测开始,通过迭代最小化残差来计算。残差是预测响应(或 y-hat 值)与真实响应 (y) 之间的距离。第二个返回值是一个协方差矩阵,从中可以 estimate the error in the calculation .

作为引用,我包含了 leastsq 签名的前三个参数:

scipy.optimize.leastsq(func, x0, args=(), ...)
  • func 是您希望优化的目标函数
  • x0 是初始猜测参数
  • args 是目标函数所需的附加变量(如果有)

关于python - 最小二乘法如何处理给定函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44437518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com