gpt4 book ai didi

python - 在 Python lmfit 中使用多个自变量

转载 作者:行者123 更新时间:2023-11-30 23:06:19 24 4
gpt4 key购买 nike

我正在尝试将模型拟合到某些数据。自变量称为 AB,它们是 Pandas DataFrame 中的列。我正在尝试根据数据框中的 y 调整两个参数。

以前,使用 Scipy 的 curve_fit,我可以做到:

def fun(X, p1, p2):
A, B = X
return np.exp(p1*A) + p2*B

X = (df['A'].tolist(), df['B'].tolist())
popt, pcov = curve_fit(fun, X, df['y'].tolist())

但现在,我使用 lmfit,我不能像 curve_fit 那样简单地“打包”自变量:

def fun(A, B, p1 = 1, p2 = 1):
return np.exp(p1*A) + p2*B

model = Model(fun, independent_vars=['A', 'B'])

如何在这里运行 model.fit()FAQ并没有多大帮助——我首先要压平什么?

最佳答案

我创建了一个包含两个自变量的完整的工作示例:

import pandas as pd
import numpy as np
from lmfit import Model

df = pd.DataFrame({
'A' : pd.Series([1, 1, 1, 2, 2, 2, 2]),
'B' : pd.Series([5, 4, 6, 6, 5, 6, 5]),
'target' : pd.Series([87.79, 40.89, 215.30, 238.65, 111.15, 238.65, 111.15])
})

def fun(A, B, p1 = 1, p2 = 1):
return p1 * np.exp(A) + p2 * np.exp(B)

model = Model(fun, independent_vars=['A', 'B'])
fit = model.fit(df['target'], A = df['A'], B = df['B'])

技巧是将所有变量指定为 fit() 中的关键字参数。

关于python - 在 Python lmfit 中使用多个自变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32714055/

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