python - RuntimeError:未找到最佳参数:函数调用次数已达到 maxfev=600
问题描述
这是代码的一部分但无法正常工作,可能是什么原因?
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])
给出错误提示: RuntimeError Traceback (most recent call last) in 24 return integration.odeint(sir_model, (sus0, inf0, rec0), x, args=(beta, gamma))[:,1] 25 ---> 26 popt, pcov = optimize.curve_fit(fit_odeint, xdata, ydata) 27 拟合 = fit_odeint(xdata, *popt) 28
C:\ProgramData\Anaconda3\lib\site-packages\scipy\optimize\minpack.py in curve_fit(f, xdata, ydata, p0, sigma, absolute_sigma, check_finite, bounds, method, jac, **kwargs) 746 成本 = np.sum(infodict['fvec'] ** 2) 747 if ier not in [1, 2, 3, 4]: --> 748 raise RuntimeError("Optimal parameters not found:" + errmsg) 749 else: 750 # 如果指定,将 maxfev (leastsq) 重命名为 max_nfev (least_squares)。
RuntimeError:未找到最佳参数:函数调用次数已达到 maxfev = 600。
解决方案
这可能是因为您提供的 curve_fit 数据少于 3 个点。尽管我正在研究其他原因。
推荐阅读
- javascript - Graphql 变异返回值
- json - SwiftJSON 解析 { Key: {Key: Value} } 案例?
- google-chrome - 谷歌浏览器自动填充安全/隐私问题?(在一个站点上有多个帐户)
- json - 在 iOS 的 Google 地图上显示从 API 接收的 GeoJSON 数据
- roku - 未加载图像,当我更新 PosterGrid 中的内容时
- html - 显示在 css 中定义的 flex 覆盖背景
- google-cloud-platform - 如何为我的谷歌云功能设置端点路径(使用无服务器框架)
- google-sheets - 什么方法可以使用 filter() 或其他推荐的方式过滤两对数据?
- tensorflow - 卷积 GAN 中的 Keras Conv2DTranspose 层
- wso2 - 如何以编程方式在 WSO2 API 管理器中创建用户和角色