gpt4 book ai didi

python - 为什么 curve_fit 返回的结果与 Excel Trendline 有很大不同?

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

在处理我的数据集时,我注意到 Excel 趋势线拟合给出的结果与 python 中的 curve_fit 有很大不同:

Excel 指数趋势线给出以下方程 y = 0.00002178exp(0.53759216x),其中 a = 0.00002178 和 b = 0.53759216

Python curve_fit(无约束)结果 a = 0.19807362,b = 0.25736161

当绘制的 Python 解决方案似乎不如 Excel 准确时

这是我的代码:

df = pd.read_excel(path)

def func(x, a, b):
return a*np.exp(x*b)

popt, pcov = curve_fit(func, df['x'].values, df['y'].values)

非常感谢您帮助理解为什么在这种情况下 Excel 和 Python 之间存在相当大的差异。

这是数据集的链接 https://www.4shared.com/office/VQUrwRG0iq/New_Microsoft_Excel_Worksheet.html

或者简单地写在下面:×:27.728.125.227.625.727.025.125.530.727.423.628.828.520.316.622.435.230.128.026.321.823.322.121.622.421.529.435.733.525.529.819.521.622.523.532.329.622.422.121.721.325.525.331.334.735.933.423.821.920.121.8

y:9501050110752835221440080383156100.60.29.8630330280652.79.62.32.71.71.7280第490章26519 号12011.32.24.51952301.31.112.163921701230415023404.51.40.20.7

最佳答案

数据极其分散。因此,如果拟合的标准不同,回归的结果就会有很大的不同。

如果我们寻找最小均方相对误差,我们就会找到 Excel 结果。拟合方程可能是

ln(y)=ln(a)+bx

RMS 相对误差 = 1.11 ; RMS 绝对误差 = 348

如果我们寻找最小均方绝对误差,我们就会找到 Python 结果。拟合方程可能是

y=a.exp(bx)

RMS 相对误差 = 18.5 ; RMS 绝对误差 = 280

在图形表示上,主观上平均相对误差似乎比绝对误差更好。

如果你想用Python获得接近Excel的结果,你应该将拟合标准指定为相对误差而不是绝对误差。

enter image description here

关于python - 为什么 curve_fit 返回的结果与 Excel Trendline 有很大不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58384760/

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