RuntimeError: Optimal parameters not found: Number of calls to function has reached m - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: RuntimeError: Optimal parameters not found: Number of calls to function has reached m (/thread-28839.html) |
RuntimeError: Optimal parameters not found: Number of calls to function has reached m - bntayfur - Aug-05-2020 population = float(46750238) country_df = pd.DataFrame() country_df['ConfirmedCases'] = train.loc[train['Country_Region']=='Spain'].ConfirmedCases.diff().fillna(0) country_df = country_df[10:] country_df['day_count'] = list(range(1,len(country_df)+1)) ydata = [i for i in country_df.ConfirmedCases] xdata = country_df.day_count ydata = np.array(ydata, dtype=float) xdata = np.array(xdata, dtype=float) N = population inf0 = ydata[0] sus0 = N - inf0 rec0 = 0.0 def sir_model(y, x, beta, gamma): sus = -beta * y[0] * y[1] / N rec = gamma * y[1] inf = -(sus + rec) return sus, inf, rec def fit_odeint(x, beta, gamma): return integrate.odeint(sir_model, (sus0, inf0, rec0), x, args=(beta, gamma))[:,1] popt, pcov = optimize.curve_fit(fit_odeint, xdata, ydata) fitted = fit_odeint(xdata, *popt) plt.plot(xdata, ydata, 'o') plt.plot(xdata, fitted) plt.title("Fit of SIR model for Spain infected cases") plt.ylabel("Population infected") plt.xlabel("Days") plt.show() print("Optimal parameters: beta =", popt[0], " and gamma = ", popt[1])
|