Scipy Оптимальные параметры не найдены: количество обращений к функции достигло maxfev = 800 - PullRequest
0 голосов
/ 01 июля 2018

Попытка логарифмического подбора для набора данных с использованием опубликованных кодов. Я продолжаю получать 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()
...