如何改变变量,直到得到模型输出和实际数据之间的最小二乘结果?

2024-09-20 03:37:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解决一个问题,我想使模型适合真实数据。我有一个复杂的模型,比如f(a,b,c,d,e),这是一个函数,它产生的值应该与实际数据相似。模型的一个参数,比如变量“e”,可以变化。”e“一个参数,用于调整模型,使其接近真实数据

我想做的是让Python选择一个“e”,这样我的模型和实际数据产生的值之间的平方差就最小化了。换句话说,这就是设置:

  1. Vector1=真实值
  2. 向量2=f(a,b,c,d,e);其中a,b,c,d已经给出,e是唯一未知的
  3. 在最小化(向量2-向量1)^2的位置查找e

谢谢


Tags: 数据函数模型参数向量vector1平方差
1条回答
网友
1楼 · 发布于 2024-09-20 03:37:51

您可以使用scipy.optimize.least_squares执行此操作。您需要为它提供一个函数,该函数为e取一个值,并返回残差(您的Vector2 - Vector1)和初始猜测值x0。大概是

from scipy.optimize import least_squares    

def residuals(e):
  return f(a,b,c,d,e) - vec1

res = least_squares(residuals, x0=0)

res.x  # e value

注意,这只保证为(Vector2 - Vector1)^2找到一个局部最小值;更改初始猜测可能会影响收敛到的最小值

相关问题 更多 >