首页 > 解决方案 > 未找到 Scipy 最佳参数:函数调用次数已达到 maxfev = 800

问题描述

尝试使用发布的代码对数据集进行对数拟合。我不断得到Optimal parameters not found: Number of calls to function has reached maxfev = 800。你能帮我 1. 解决错误 2. 如果我使用的方程对当前数据集来说是一个好的方程 3. 建议任何替代方法?

Dataset  
      Years        Values
    0    2000      23.0
    1    2001      27.5
    2    2002      46.0
    3    2003      56.0
    4    2004      64.8
    5    2005      71.2
    6    2006      80.2
    7    2007      98.0
    8    2008     113.0
    9    2009     155.8
    10   2010     414.0
    11   2011    2297.8
    12   2012    3628.4
    13   2013   16187.8
    14   2014   25197.8
    15   2015   42987.8
    16   2016   77555.5
    17   2017  130631.9

X = np.array(df.Years, dtype = float)
y = np.array(df.Values, dtype = float)
def func(x, a, b, c):
    return a * np.exp(b * x) + c
popt, pcov = curve_fit(func, X, y)
plt.plot(X, y, 'ro', label="Original data")
plt.plot(X, func(X, *popt), label="Fitted Curve")
plt.legend(loc='upper left')
plt.show()

标签: python-2.7scipycurve-fittingnon-linear-regression

解决方案


推荐阅读