用R语言中的神经网络预测时间序列:多层感知器和极限学习机

使用神经网络进行时间序列预测

对于此示例,我将对R中的时间序列进行建模。我将最后24个观察值保留为测试集,并将使用其余的观察值来拟合神经网络。

由Kaizong Ye,Weilong Zhang撰写

当前有两种类型的神经网络可用,多层感知器;和极限学习机。

这是使MLP网络适合时间序列的基本命令。这将尝试自动指定自回归输入和时间序列的必要预处理。利用预先指定的参数,它训练了20个用于生成整体预测的网络和一个具有5个节点的隐藏层。print是输出拟合网络的摘要:

该函数选择了自回归滞后,并将虚拟变量用于季节性趋势。使用plot显示网络的体系结构(图1)。


热门课程

R语言数据分析挖掘必知必会

面对扑面而来的数据浪潮,包含Google、Facebook等国际企业,都已采用R语言进行数据分析

探索课程

图1.输出 plot(mlp.fit).

浅红色输入代表用于编码季节性的二进制虚拟变量,而灰色输入则是自回归滞后项。要生成预测,您可以输入:

图2显示了整体预测,以及各个神经网络的预测。

图2. plotMLP预测的输出。

您还可以选择隐藏节点的数量。

这将评估1到10个隐藏节点,并选择验证集MSE上的最佳节点。也可以使用交叉验证。输出误差:

ELM几乎以相同的方式工作。

以下是模型摘要:

在图3的网络体系结构中只有用黑线连接到输出层的节点才有助于预测。其余的连接权重已缩小为零。

图3. ELM网络架构。

该程序包在R中实现了层次时间预测。可以通过以下方式进行操作:

因为对于这个简单的示例,我保留了一些测试集,所以我将预测与指数平滑进行比较:

METHODMAE
MLP (5 nodes)62.471
MLP (auto)48.234
ELM48.253
THieF-MLP45.906
ETS64.528

MAPA这样的时间层次结构使您的预测更可靠,更准确。但是,使用神经网络会明显增加计算成本!


可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498