使用神经网络进行时间序列预测
对于此示例,我将对R中的时间序列进行建模。我将最后24个观察值保留为测试集,并将使用其余的观察值来拟合神经网络。
当前有两种类型的神经网络可用,多层感知器;和极限学习机。
这是使MLP网络适合时间序列的基本命令。这将尝试自动指定自回归输入和时间序列的必要预处理。
# 拟合 多层感知器
mlp.fit <- mlp(y.in)
plot(mlp.fit)
print(mlp.fit)
利用预先指定的参数,它训练了20个用于生成整体预测的网络和一个具有5个节点的隐藏层。print是输出拟合网络的摘要:
MLP fit with 5 hidden nodes and 20 repetitions.
Series modelled in differences: D1.
Univariate lags: (1,3,4,6,7,8,9,10,12)
Deterministic seasonal dummies included.
Forecast combined using the median operator.
MSE: 6.2011.
该函数选择了自回归滞后,并将虚拟变量用于季节性趋势。使用plot显示网络的体系结构(图1)。

图1.输出 plot(mlp.fit).
浅红色输入代表用于编码季节性的二进制虚拟变量,而灰色输入则是自回归滞后项。要生成预测,您可以输入:
forecast(mlp.fit,h=tst.n)
图2显示了整体预测,以及各个神经网络的预测。

图2. plotMLP预测的输出。
您还可以选择隐藏节点的数量。
# 自动拟合 MLP
hd.auto.type="valid"
这将评估1到10个隐藏节点,并选择验证集MSE上的最佳节点。也可以使用交叉验证。输出误差:
MSE
H.1 0.0083
H.2 0.0066
H.3 0.0065
H.4 0.0066
H.5 0.0071
H.6 0.0074
H.7 0.0061
H.8 0.0076
H.9 0.0083
H.10 0.0076
ELM几乎以相同的方式工作。
# 可视化 ELM的结果
plot(elm.fit)
以下是模型摘要:
ELM fit with 100 hidden nodes and 20 repetitions.
Series modelled in differences: D1.
Univariate lags: (1,3,4,6,7,8,9,10,12)
Deterministic seasonal dummies included.
Forecast combined using the median operator.
Output weight estimation using: lasso.
MSE: 83.0044.
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!



TCN时序卷积网络、CNN、RNN、LSTM、GRU神经网络工业设备运行监测、航空客运量时间序列数据集预测可视化|附代码数据
Python实现Elman RNN与混合RNN神经网络对航空客运量、啤酒产量、电力产量时间序列数据预测可视化对比
Python预测二型糖尿病:逻辑回归、XGBoost、CNN、随机森林及BP神经网络融合加权线性回归细化变量及PCA降维创新
Python电信客户流失预测研究:神经网络、K-Means聚类、RFM、CART决策树、Logistic回归、SVM多模型融合及客户分群


