该数据根据世界各国提供的新病例数据。
获取时间序列数据
RNN(循环神经网络)是一种具有循环结构的神经网络类型。它能够处理序列数据,比如时间序列数据(如股票价格随时间的变化)、文本数据(一个单词接着一个单词的序列)等。RNN 的特点是可以对前面的信息进行记忆,并利用这些记忆来影响当前的输出。例如在语言处理任务中,RNN 可以根据前面的单词来预测下一个单词。它在自然语言处理、语音识别、时间序列预测等领域有广泛的应用。
LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的循环神经网络架构,具有长期记忆能力,可以有效地处理时间序列数据中的长期依赖关系。
GRU(Gated Recurrent Unit,门控循环单元)也是一种循环神经网络的变体,与 LSTM 类似,用于处理序列数据,具有较好的记忆和学习能力。
回归是一种统计分析方法,用于建立因变量与一个或多个自变量之间的关系模型,在时间序列预测中可以通过回归模型来预测未来的值。
ARIMA(Autoregressive Integrated Moving Average,自回归积分滑动平均模型)是一种广泛应用于时间序列分析和预测的统计模型,它结合了自回归、差分和移动平均的概念。
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)
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 模型
模型:
- LSTM
- 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)
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!