首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测|附代码数据

Python用RNN神经网络:LSTM、GRU、回归和ARIMA对COVID19新冠疫情人数时间序列预测|附代码数据

原创
作者头像
拓端
发布2023-04-28 17:23:05
发布2023-04-28 17:23:05
4360
举报
文章被收录于专栏:拓端tecdat拓端tecdat

全文下载链接: http://tecdat.cn/?p=27042

最近我们被客户要求撰写关于新冠疫情的研究报告,包括一些图形和统计输出。

在本文中,该数据根据世界各国提供的新病例数据提供。

获取时间序列数据

代码语言:javascript
复制
df=pd.read_csv("C://global.csv")

探索数据

此表中的数据以累积的形式呈现,为了找出每天的新病例,我们需要减去这些值

代码语言:javascript
复制
df.head(10)

这些数据是根据国家和地区报告新病例的数据,但我们只想预测国家的新病例,因此我们使用 groupby 根据国家对它们进行分组

总结数据

执行 groupby 以根据一个国家的新病例来汇总数据,而不是根据地区

代码语言:javascript
复制
d1=df.groupby(['Country/Region']).sum()

描述随机选择的国家的累计新病例增长

代码语言:javascript
复制
from numpy.random import seed



    plt.plot(F[i], label = RD[i])

    plt.show()
代码语言:javascript
复制
# 我们不需要前两列

d1=d1.iloc[:,2:]
代码语言:javascript
复制
# # 检查是否有空值



d1.isnull().sum().any()

我们可以对每个国家进行预测,也可以对所有国家进行预测,这次我们对所有国家进行预测

代码语言:javascript
复制
dlycnmdcas.head()
代码语言:javascript
复制
dalycnfreces.index
代码语言:javascript
复制
dal_cnre_ces.index = pd.to_datetime(dailyonfrmd_as.index)

结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析

01

02

03

04

代码语言:javascript
复制
plt.plot(dalnimedases)
代码语言:javascript
复制
ne_ces = daiy_onme_as.diff().dropna().astype(np.int64)

newcaes
代码语言:javascript
复制
plt.plot(ne_s[1:])
代码语言:javascript
复制
nw_s.shape
代码语言:javascript
复制
(153,)

将数据拆分为训练和测试数据

代码语言:javascript
复制
ct=0.75

trin_aa,tet_aa = train_test_split(ne_ces, pct)
代码语言:javascript
复制
(116,)
``````
plt.plot(tainta)

plt.plot(tesata)

数据标准化

代码语言:javascript
复制
scaler = MinMaxScaler()
代码语言:javascript
复制
testa.shape
代码语言:javascript
复制
(38, 1)

创建序列

代码语言:javascript
复制
lentTe = len(ts_data)

for i in range(timmp, lenhTe):

    X_st.append(tst_aa[i-tmStap:i])

    y_tt.append(tesata[i])



X_tet=np.array(X_ts)

ytes=np.array(y_tt)
代码语言:javascript
复制
X_st.shape
代码语言:javascript
复制
Xtrn.shape
代码语言:javascript
复制
#  序列的样本 

X_trn[0], yran[0]

为股票价格预测设计 RNN 模型

模型:

  1. LSTM
  2. GRU
代码语言:javascript
复制
model.summary()
代码语言:javascript
复制
model.fit(X_trn y_rin, epochs=50, batch_size=200)
代码语言:javascript
复制
yprd = (mod.predict(X_test))

MSE = mean_squared_error(ytue, y_rd)



plt.figure(figsize=(14,6))
代码语言:javascript
复制
meRU= Sqtal([

                keras.layers.GRU(









model_GRU.fit(Xtrn, ytin,epochs=50,batch_size=150)
代码语言:javascript
复制
pe_rut = {}



y_ue = (y_et.reshape(-1,1))

y_prd = (modlGU.predict(X_test))

MSE = mean_squared_error(y_ue, ed)

用于预测新病例的机器学习算法

准备数据

代码语言:javascript
复制
d__in.shape
代码语言:javascript
复制
moel=LinearRegression(nos=-2)

ARIMA

COVID-19 新病例预测的自回归综合移动平均线

代码语言:javascript
复制
#我们不需要前两列

df1.head()

daly_nfrd_cses = df1.sum(axis=0)

day_cnir_ase.index = pd.to_datetime(da_onieses.index)
代码语言:javascript
复制
new_cs = dacofmecss.diff().dropna().astype(np.int64)



tri_ta,tet_ata = trintt_it(nw_es, pct)
代码语言:javascript
复制
ero = men_squred_eror(ts_ar, pricos)
代码语言:javascript
复制
plt.figure(figsize=(12,7))

plt.plot(tanat)

本文选自《Python用RNN循环神经网络:LSTM长期记忆、GRU门循环单元、回归和ARIMA对COVID19新冠疫情人数时间序列预测》。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全文下载链接: http://tecdat.cn/?p=27042
  • 获取时间序列数据
  • 探索数据
  • 总结数据
  • 描述随机选择的国家的累计新病例增长
  • 将数据拆分为训练和测试数据
  • 数据标准化
  • 创建序列
  • 为股票价格预测设计 RNN 模型
  • 用于预测新病例的机器学习算法
  • ARIMA
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档