时序数据深度学习笔记——CNN

对时序数据使用CNN以及CNN+LSTM组合模型进行预测,并将预测结果与基准、线性、DNN与LSTM模型的预测结果进行比较
摘要由CSDN通过智能技术生成

一、卷积神经网络

        卷积神经网络(CNN)是一种利用卷积运算的深度学习结构。这允许神经网络减少特征空间,有效地过滤输入,防止过度拟合。并且由于其可以通过卷积运算有效地滤除时间序列中的噪声,使得能够产生一系列不包括异常值的稳健特性。同时CNN通常比LSTM训练更快,因为它们的操作可以并行。

        卷积是通过一个内核来实现的,这个内核在模型拟合过程中也经过了训练。内核的步长决定了它在卷积的每一步移动的步数。在时序数据中,由于内核只能在时间维度中移动,导致内核只在一个方向(向右)移动,因此是一维卷积。另外为了防止卷积过程中丢失太多信息,通常会在原始数据的前后进行0值填充,然后不断移动内核,取其在不同位置与特征向量的点积,由于填充的关系,最终的得到的结果长度与原始特征向量的长度相同。

        输入、输出与内核长度关系:output length = input length – kernel length + 1

二、CNN模型使用

        CNN模型除了单独使用外,还可以与LSTM进行组合,形成一个单一的模型。

1、单步模式

1.1 CNN

        由于CNN卷积操作的存在,因此为了保证预测输出达到所要求的长度,需要对输入数据进行处理,处理办法有两种,一种是加大输入长度,假如内核长度为3,那么当需要预测24个步长的数据时,根据input length=output length+kernel length-1可得应输入长度为24+3-1=26;另外一种办法是使用填充,在输入的前后进行0填充,下文中使用第一种方法。

KERNEL_WIDTH = 3
LABEL_WIDTH = 24
INPUT_WIDTH = LABEL_WIDTH + KERNEL_WIDTH - 1

conv_window = DataWindow(input_width=KERNEL_WIDTH, label_width=1, shift=1, label_columns=['traffic_volume'])
wide_conv_window = DataWindow(input_width=INPUT_WIDTH, label_width=LABEL_WIDTH, shift=1, label_columns=['traffic_volume'])

cnn_model = Sequential(
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值