R语言神经网络模型预测车辆数量时间序列

最近我们被客户要求撰写关于神经网络模型预测的研究报告。具有单个隐藏层和滞后输入的前馈神经网络,可以用于预测单变量时间序列。

将神经网络模型拟合到以时间序列的滞后值作为输入的时间序列。

由Kaizong Ye,Liao Bao撰写

因此它是一个非线性的模型,不可能得出预测区间。因此我们使用仿真。

×

深度学习在语音识别、计算机视觉和自然语言处理等领 域取得了重大突破,也可以被看作实现时间序列预测的有效 工具.深度学习在本质上是多层神经网络,其主要模型包括 卷积神经网络(Convolutional Neural Network,CNN)和循环 神经网络(Recurrent Neural Networks,RNN).利用深度模 型来预测时间序列在本质上与其他领域没有太大区别,只需 对模型的输入和输出做好严格定义. 文献[1]用带有受限玻尔兹曼机 (Restricted Boltzmann Machines,RBM)的深度置信网(Deep Belief Network,DBN) 来处理时间序列预测问题;文献[2]比较了 DBN 和集成去噪 自编码器(Stacked Denoising Auto Gencoders)在时间序列预测 问题上的性能差异;文献[3]用深度网络来预测室内温度;文 献[4]用深度网络来预测交通流量.这些文献中对深度学习 模型都只是简单直接的运用,没有结合时间序列数据的性质. 文献[5-7]对利用深度学习来完成各种时间序列预测的问 题做了很好的总结. 除了利用数据来训练新的深度学习网络结构以完成预测 任务外,还可以对已有的深度学习模型进行修改,以实现预测 目标.Borovykh等[8]对现有的深度学习模型 WaveNet [9]进 行修改,从而实现对大范围历史数据和序列之间关系的使用.

参考文献

[1]KUREMOTOT,KIMURAS,KOBAYASHIK,etal.TimeSeG riesForecasting UsingaDeepBeliefNetwork withRestricted Boltzman Machines [J].Neurocomputing,2014,137(15):47G 56.

 [2]TURNERJT.TimeSeriesAnalysisUsingDeepFeedForward NeuralNetworks[D].Baltimore:UniversityofMaryland,2014. 

[3]ROMEU P,ZAMORAGMARTINEZ F,BOTELLAGROCAMOG RA P,etal.TimeGSeriesForecastingofIndoor Temperature UsingPreGtrained Deep NeuralNetworks[C]∥International Conferenceon Artificial Neural Networks.Berlin:Springer, 2013:451G458.

 [4]LV Y,DUAN Y,KANG W,etal.TrafficFlowPredictionwith BigData:ADeepLearningApproach[J].IEEETransactionson IntelligentTransportationSystems,2015,16(2):865G873. 

[5]LANGKVIST M,KARLSSONL,LOUTFIA.AReviewofUnG supervisedFeatureLearningandDeepLearningforTimeGSeries Modeling[J].PatternRecognitionLetters,2014,42(1):11G24. 

[6]GAMBOAJCB.DeepLearningforTimeGSeriesAnalysis[J]. Arxiv:1701.01887,2017. 

[7]HEATONJB,POLSON N G,WITTEJH.DeepLearningin Finance[J].Arxiv:1602.06561,2016.

 [8]BOROVYKH A,BOHTE S,OOSTERLEE C W.Conditional TimeSeriesForecasting with ConvolutionalNeuralNetworks [J].Arxiv:1703.04691,2017. 

[9]OORDA,DIELEMANS,ZEN H,etal.Wavenet:A Generative ModelforRaw Audio[J].Arxiv:1609.03499,2016.


读取数据进行可视化:

## # A tibble: 6 x 2
##         Date Actual
##       <dttm>  <dbl>
## 1 2016-01-11     26
## 2 2016-01-18     27
## 3 2016-01-25     28
## 4 2016-02-01     22
## 5 2016-02-08     27
## 6 2016-02-15     31

dat%>%ggplot(aes(Date,Actual))+
  labs(title = "耐久性车辆预测", x = "时间", y = "耐用车辆数量",
       subtitle = " 2016 & 2017年数据") +

#数据必须为数字,tsclean函数才能正常工作
dat%>%dplyr::rename(Date=Week)%>%na.omit()
dat_ts = ts(dat["实际数量"])


视频

CNN(卷积神经网络)模型以及R语言实现

探索见解

去bilibili观看

探索更多视频

 nn(data, lambda=0.5)
 
 
Average of 20 networks, each of which is
a 1-1-1 network with 4 weights
options were - linear output units 
 
sigma^2 estimated as 0.2705

我使用了Box-Cox变换,其中λ=0.5,

确保残差同方差。

该模型可以写成:

其中yt-1 =(yt-1,yt-2,⋯,yt-8)是包含序列的滞后值的向量,f是一个神经网络,在单个层中具有4个隐藏节点。


R语言实现CNN(卷积神经网络)模型进行回归数据分析

阅读文章


通过从正态分布或从历史值中重采样随机生成ϵt的值,我们可以迭代地模拟该模型的未来样本路径。

因此,如果{ϵ ∗ T + 1}是从时间T + 1的误差分布中随机抽取的,则


随时关注您喜欢的主题


是从yT + 1的预测分布中得出的一种概率。设置

y * T + 1 =(y * T + 1,yT,⋯,yT-6)然后我们可以重复此过程来获得

我们可以迭代地模拟未来的样本路径。通过反复模拟样本路径,我们基于拟合的神经网络建立了所有未来值的分布。这是对数据的9种将来可能的采样路径的模拟。每个样本路径覆盖了观测数据之后的未来20年。

plot(dat_ts) + autolayer(sim)

如果执行此操作几百或数千次,则可以很好地了解预测分布。预测区间:

plot(fcast)

模拟次数为1000。默认情况下,误差来自于正态分布。


可下载资源

关于作者

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

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

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

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

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds