ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python用RNN循环神经网络:LSTM长期记忆、GRU门循环单元、回归和ARIMA对COVID-19新冠疫情新增人数时间序列预测

2022-06-18 21:00:47  阅读:164  来源: 互联网

标签:plot GRU RNN shape 循环 plt 序列 数据 预测


原文链接:http://tecdat.cn/?p=27042

原文出处:拓端数据部落公众号

该数据根据世界各国提供的新病例数据提供。


获取时间序列数据

df=pd.read_csv("C://global.csv")

探索数据

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

df.head(10)

 

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

 

总结数据

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

d1=df.groupby(['Country/Region']).sum()

 


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

  1.    
  2.   from numpy.random import seed
  3.    
  4.   plt.plot(F[i], label = RD[i])
  5.   plt.show()

  1.   # 我们不需要前两列
  2.   d1=d1.iloc[:,2:]

  1.   # # 检查是否有空值
  2.    
  3.   d1.isnull().sum().any()

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

dlycnmdcas.head()

dalycnfreces.index

dal_cnre_ces.index = pd.to_datetime(dailyonfrmd_as.index)

plt.plot(dalnimedases)

  1.   ne_ces = daiy_onme_as.diff().dropna().astype(np.int64)
  2.   newcaes

plt.plot(ne_s[1:])

nw_s.shape
(153,)

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

  1.    
  2.   ct=0.75
  3.   trin_aa,tet_aa = train_test_split(ne_ces, pct)
(116,)
  1.   plt.plot(tainta)
  2.   plt.plot(tesata)

数据标准化

scaler = MinMaxScaler()
testa.shape 
(38, 1)

创建序列

  1.    
  2.   lentTe = len(ts_data)
  3.   for i in range(timmp, lenhTe):
  4.   X_st.append(tst_aa[i-tmStap:i])
  5.   y_tt.append(tesata[i])
  6.    
  7.   X_tet=np.array(X_ts)
  8.   ytes=np.array(y_tt)
X_st.shape

Xtrn.shape

  1.    
  2.   # 序列的样本
  3.   X_trn[0], yran[0]

 

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

模型:

  1. LSTM
  2. GRU
model.summary()

 

model.fit(X_trn y_rin, epochs=50, batch_size=200)

 

 

  1.    
  2.   yprd = (mod.predict(X_test))
  3.   MSE = mean_squared_error(ytue, y_rd)
  4.    
  5.   plt.figure(figsize=(14,6))

  1.   meRU= Sqtal([
  2.   keras.layers.GRU(
  3.    
  4.    
  5.    
  6.    
  7.   model_GRU.fit(Xtrn, ytin,epochs=50,batch_size=150)

  1.   pe_rut = {}
  2.    
  3.   y_ue = (y_et.reshape(-1,1))
  4.   y_prd = (modlGU.predict(X_test))
  5.   MSE = mean_squared_error(y_ue, ed)

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

准备数据

d__in.shape

moel=LinearRegression(nos=-2)

ARIMA

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

  1.   #我们不需要前两列
  2.   df1.head()
  3.   daly_nfrd_cses = df1.sum(axis=0)
  4.   day_cnir_ase.index = pd.to_datetime(da_onieses.index)
  1.   new_cs = dacofmecss.diff().dropna().astype(np.int64)
  2.    
  3.   tri_ta,tet_ata = trintt_it(nw_es, pct)

  1.    
  2.   ero = men_squred_eror(ts_ar, pricos)

  1.   plt.figure(figsize=(12,7))
  2.   plt.plot(tanat)


最受欢迎的见解

1.在python中使用lstm和pytorch进行时间序列预测

2.python中利用长短期记忆模型lstm进行时间序列预测分析

3.使用r语言进行时间序列(arima,指数平滑)分析

4.r语言多元copula-garch-模型时间序列预测

5.r语言copulas和金融时间序列案例

6.使用r语言随机波动模型sv处理时间序列中的随机波动

7.r语言时间序列tar阈值自回归模型

8.r语言k-shape时间序列聚类方法对股票价格时间序列聚类

9.python3用arima模型进行时间序列预测

标签:plot,GRU,RNN,shape,循环,plt,序列,数据,预测
来源: https://www.cnblogs.com/tecdat/p/16389266.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有