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

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

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


该数据根据世界各国提供的新病例数据查看文末了解数据获取方式提供。


获取时间序列数据


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

探索数据


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

df.head(10)

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


总结数据


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

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


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


from numpy.random import seed
    plt.plot(F\[i\], label = RD\[i\])
    plt.show()

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

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

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

dlycnmdcas.head()

dalycnfreces.index
dal\_cnre\_ces.index = pd.to\_datetime(dailyonfrmd\_as.index)

点击标题查阅往期内容


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


01

02

03

04

plt.plot(dalnimedases)

ne\_ces = daiy\_onme_as.diff().dropna().astype(np.int64)
newcaes


plt.plot(ne_s\[1:\])

nw_s.shape
(153,)

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


ct=0.75
trin\_aa,tet\_aa = train\_test\_split(ne_ces, pct)
(116,)
``````
plt.plot(tainta)
plt.plot(tesata)

数据标准化


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


Xtrn.shape

#  序列的样本 
X_trn\[0\], yran\[0\]

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


模型:


  1. LSTM
  2. GRU
model.summary()

model.fit(X\_trn y\_rin, epochs=50, batch_size=200)

yprd = (mod.predict(X_test))
MSE = mean\_squared\_error(ytue, y_rd)
plt.figure(figsize=(14,6))

meRU= Sqtal(\[
                keras.layers.GRU(
model\_GRU.fit(Xtrn, ytin,epochs=50,batch\_size=150)

pe_rut = {}
y\_ue = (y\_et.reshape(-1,1))
y\_prd = (modlGU.predict(X\_test))
MSE = mean\_squared\_error(y_ue, ed)

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


准备数据

d__in.shape

moel=LinearRegression(nos=-2)

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)

ero = men\_squred\_eror(ts_ar, pricos)


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

相关文章
|
5天前
|
机器学习/深度学习 自然语言处理 语音技术
深度学习500问——Chapter06: 循环神经网络(RNN)(3)
深度学习500问——Chapter06: 循环神经网络(RNN)(3)
19 3
|
1天前
|
机器学习/深度学习 运维 算法
python时间序列异常检测ADTK
`adtk`是Python中用于无监督时间序列异常检测的工具包,包含简单算法、特征加工和流程控制。安装使用`pip install adtk`。数据要求为`DatetimeIndex`格式。异常检测包括滑动窗口统计特征、季节性拆解、降维和重构。提供了ThresholdAD、QuantileAD、InterQuartileRangeAD、GeneralizedESDTestAD等离群点检测算法,以及PersistAD和LevelShiftAD检测突变。此外,SeasonalAD用于季节性异常检测,Pipeline可组合多种算法。5月更文挑战第16天
19 5
python时间序列异常检测ADTK
|
5天前
|
机器学习/深度学习 算法 Scala
深度学习500问——Chapter06: 循环神经网络(RNN)(4)
深度学习500问——Chapter06: 循环神经网络(RNN)(4)
18 1
|
5天前
|
机器学习/深度学习 算法 搜索推荐
深度学习500问——Chapter06: 循环神经网络(RNN)(2)
深度学习500问——Chapter06: 循环神经网络(RNN)(2)
16 3
|
5天前
|
机器学习/深度学习 存储 自然语言处理
深度学习500问——Chapter06: 循环神经网络(RNN)(1)
深度学习500问——Chapter06: 循环神经网络(RNN)(1)
10 1
|
5天前
|
机器学习/深度学习 数据挖掘 PyTorch
使用Python实现长短时记忆网络(LSTM)的博客教程
使用Python实现长短时记忆网络(LSTM)的博客教程
6 0
|
5天前
|
索引 Python
【Python操作基础】——序列
【Python操作基础】——序列
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI 初识】递归神经网络 (RNN) 概念
【5月更文挑战第2天】【AI 初识】递归神经网络 (RNN) 概念
|
5天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】循环神经网络(RNN)与LSTM详解
【4月更文挑战第30天】本文探讨了处理序列数据的关键模型——循环神经网络(RNN)及其优化版长短期记忆网络(LSTM)。RNN利用循环结构处理序列依赖,但遭遇梯度消失/爆炸问题。LSTM通过门控机制解决了这一问题,有效捕捉长距离依赖。在Python中,可使用深度学习框架如PyTorch实现LSTM。示例代码展示了如何定义和初始化一个简单的LSTM网络结构,强调了RNN和LSTM在序列任务中的应用价值。
|
5天前
|
数据采集 数据挖掘 测试技术
python、R语言ARIMA-GARCH分析南方恒生中国企业ETF基金净值时间序列分析
python、R语言ARIMA-GARCH分析南方恒生中国企业ETF基金净值时间序列分析

热门文章

最新文章