找不到Scipy最佳参数:函数调用次数已达到maxfev = 800

时间:2018-07-01 11:03:15

标签: python-2.7 scipy curve-fitting non-linear-regression

使用发布的代码尝试对数据集进行对数拟合。我不断收到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()

0 个答案:

没有答案