该数据根据世界各国提供的新病例数据。
获取时间序列数据
df=pd.read_csv("C://global.csv")
探索数据
此表中的数据以累积的形式呈现,为了找出每天的新病例,我们需要减去这些值
可下载资源
![](https://img-blog.csdnimg.cn/bb8d5e45bee047f7b77242660ebb07dd.png)
GRU也是也可处理序列数据的一种模型,是循环神经网络的一种,同时呢它也是LSTM的一种变体,然后为什么要学习它,是因为我们了解了LSTM后发现他有很多可以精简改进的地方,例如说它复杂的模型结构,因此GRU就诞生了。相比较LSTM内部结构进行了简化,同时准确率也得到了提升。
为什么说GPU比LSTM更加的精简?
首先我们知道LSTM总共有三个门,遗忘门,输入门,输出门,而我们的GRU中呢使用的是两个门,重置门和更新门。
GRU和LSTM的区别:
LSTM有三个门,而GRU有两个门
去掉了细胞单元C
输出的时候取消了二阶的非线性函数
两个门的理解:
重置门:
作用对象是前边的隐藏状态
作用呢就是决定了有多少过去信息需要遗忘
更新门:(可以理解为LSTM中的遗忘门和输入门相结合)
作用对象是当前时刻和上一时刻的隐藏单元
作用就是上一时刻,以及当前时刻总共有多少有用的信息需要接着向下传递
df.head(10)
![](https://img-blog.csdnimg.cn/034cce9033be4c35b4aab9b2bec3876f.png)
这些数据是根据国家和地区报告新病例的数据,但我们只想预测国家的新病例,因此我们使用 groupby 根据国家对它们进行分组
![](https://img-blog.csdnimg.cn/1e41723c875348ca9af3b37b4bd9fba4.png)
总结数据
执行 groupby 以根据一个国家的新病例来汇总数据,而不是根据地区
d1=df.groupby(\['Country/Region'\]).sum()
![](https://img-blog.csdnimg.cn/2f492586bc3341e6ac55c152b50ec7e4.png)
![](https://img-blog.csdnimg.cn/e7c31c4221804d0f9861c2bb0a16eb19.png)
描述随机选择的国家的累计新病例增长
from numpy.random import seed plt.plot(F\[i\], label = RD\[i\]) plt.show()
![](https://img-blog.csdnimg.cn/4c0bdd69f0284b81bf746266d562456a.png)
# 我们不需要前两列 d1=d1.iloc\[:,2:\]
![](https://img-blog.csdnimg.cn/48ffb3307b17499eaa4dd7971010b311.png)
# # 检查是否有空值 d1.isnull().sum().any()
![](https://img-blog.csdnimg.cn/c5ca14dbf1974923b0622ee9a753259c.png)
我们可以对每个国家进行预测,也可以对所有国家进行预测,这次我们对所有国家进行预测
随时关注您喜欢的主题
dlycnmdcas.head()
![](https://img-blog.csdnimg.cn/631bcd0dd53b426cb778b30e24c60718.png)
dalycnfreces.index
dal\_cnre\_ces.index = pd.to\_datetime(dailyonfrmd\_as.index)
![](https://img-blog.csdnimg.cn/ef4260023a714feeba5f1fa2bdda49f4.png)
![](https://img-blog.csdnimg.cn/363dcac3fa8f411096dcdfbbda5680b8.png)
plt.plot(dalnimedases)
![](https://img-blog.csdnimg.cn/07a1987a6f4e4145bb567c1cd1122b9e.png)
ne\_ces = daiy\_onme_as.diff().dropna().astype(np.int64) newcaes
![](https://img-blog.csdnimg.cn/9013bc68c7474a19aae15dc1943287e8.png)
![](https://img-blog.csdnimg.cn/6a8de1375f864392915dc154ff7ce646.png)
plt.plot(ne_s\[1:\])
![](https://img-blog.csdnimg.cn/3c192194b8204b7792d26acdede10d08.png)
nw_s.shape
(153,)
将数据拆分为训练和测试数据
ct=0.75 trin\_aa,tet\_aa = train\_test\_split(ne_ces, pct)
(116,) `````` plt.plot(tainta) plt.plot(tesata)
![](https://img-blog.csdnimg.cn/7cd84e196a894efa93cc3b1ff76aaa39.png)
数据标准化
scaler = MinMaxScaler()
testa.shape
(38, 1)
创建序列
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)
X_st.shape
![](https://img-blog.csdnimg.cn/c3fb9ca2ba9d4276bf5269d5875c9786.png)
![](https://img-blog.csdnimg.cn/6e244ab7a62846798f9cba7cfcd22291.png)
![](https://img-blog.csdnimg.cn/7b70a90769444157875f157d1734a5de.png)
Xtrn.shape
![](https://img-blog.csdnimg.cn/a3dfff3605fc46409ebf26e9b3114c7f.png)
# 序列的样本 X_trn\[0\], yran\[0\]
![](https://img-blog.csdnimg.cn/d960c12418834f198f0beb3931e8052c.png)
为股票价格预测设计 RNN 模型
模型:
- LSTM
- GRU
model.summary()
![](https://img-blog.csdnimg.cn/ee93be1a3cf847abb146d49a2a090234.png)
model.fit(X\_trn y\_rin, epochs=50, batch_size=200)
![](https://img-blog.csdnimg.cn/5d7f093857de4c989e78763e5129ebb0.png)
![](https://img-blog.csdnimg.cn/2df5078ec89448bfa3d0472e9c4fb633.png)
![](https://img-blog.csdnimg.cn/0fb214a95e7247c0b395c8116399b68f.png)
yprd = (mod.predict(X_test)) MSE = mean\_squared\_error(ytue, y_rd) plt.figure(figsize=(14,6))
![](https://img-blog.csdnimg.cn/9ead347659a944bfad19350c224ef039.png)
meRU= Sqtal(\[ keras.layers.GRU( model\_GRU.fit(Xtrn, ytin,epochs=50,batch\_size=150)
![](https://img-blog.csdnimg.cn/579a882fd8ac44ff9dbe8ca8f1c593d4.png)
![](https://img-blog.csdnimg.cn/10d8b500f20d418db3b43ac2fca02cf0.png)
pe_rut = {} y\_ue = (y\_et.reshape(-1,1)) y\_prd = (modlGU.predict(X\_test)) MSE = mean\_squared\_error(y_ue, ed)
![](https://img-blog.csdnimg.cn/1e82a7212e0c40f9b5357cf34d7aa6d0.png)
用于预测新病例的机器学习算法
准备数据
d__in.shape
![](https://img-blog.csdnimg.cn/0f5cfb26ffb541ee97d31e0976f22bfa.png)
moel=LinearRegression(nos=-2)
![](https://img-blog.csdnimg.cn/fcf441e77e0840c285a056739fd98a7c.png)
ARIMA
COVID-19 新病例预测的自回归综合移动平均线
#我们不需要前两列 df1.head() daly\_nfrd\_cses = df1.sum(axis=0) day\_cnir\_ase.index = pd.to\_datetime(da\_onieses.index)
new_cs = dacofmecss.diff().dropna().astype(np.int64) tri\_ta,tet\_ata = trintt\_it(nw\_es, pct)
![](https://img-blog.csdnimg.cn/6b636992f94b490cbfd44dd447c46729.png)
ero = men\_squred\_eror(ts_ar, pricos)
![](https://img-blog.csdnimg.cn/c4ae0fd3b29548719344028cf7d0bdb5.png)
![](https://img-blog.csdnimg.cn/68f7648667bf4be48b5d97539488bbc9.png)
![](https://img-blog.csdnimg.cn/d24cd76d3e21450b8e5442248cd2e016.png)
plt.figure(figsize=(12,7)) plt.plot(tanat)
![](https://img-blog.csdnimg.cn/b3bd6e4b1b18447bbca18b0af971ec9f.png)
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!