logo资料库

时间序列预测17:CNN-LSTM 实现用电量/发电量预测.pdf

第1页 / 共1页
资料共1页,全文预览结束
时间序列预测17::CNN-LSTM 实现用电量 时间序列预测 接上文,本文介绍了CNN-LSTM模型实现单、多变量多时间步预测的家庭用电量预测任务。 实现用电量/发电量预测 发电量预测 文章目录1. CNN-LSTM1.1 CNN 模型模型1.2 完整代码 文章目录 完整代码 1. CNN-LSTM 1.1 CNN 模型模型 卷积神经网络(CNN)可用作编码器-解码器结构中的编码器。 CNN不直接支持序列输入;相反,一维CNN能够读取序列输 入并自动学习显着特征。然后可以由LSTM解码器解释这些内容。CNN和LSTM的混合模型称为CNN-LSTM模型,在编码器- 解码器结构中一起使用。CNN希望输入的数据具有与LSTM模型相同的3D结构,尽管将多个特征作为不同的通道读取,但效 果相同。 为简化示例,重点放在具有单变量输入的CNN-LSTM上,但是可以很容易地对其进行更新以使用多变量输入,这是一项练 习。和以前一样,使用14天的每日总功耗输入序列。编码器为一个简单有效的CNN模型,由两个卷积层和一个最大池化层组 成,然后将其结果平坦化。 第一层卷积读取输入序列,并将结果投影到特征图上。第二层卷积在第一层创建的特征图上执行相同的操作,尝试放大其显著 特征。每个卷积层使用64个特征图(filters=64),并以3个时间步长的内核大小(kernel_size=3)读取输入序列。最大池化层降采 样成原来特征图尺寸的1/4来简化特征图。然后将提取的特征图展平为一个长向量,将其用作解码过程的输入。代码实现: model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(n_timesteps,n_features))) model.add(Conv1D(filters=64, kernel_size=3, activation='relu')) model.add(MaxPooling1D(pool_size=2)) model.add(Flatten()) 1.2 完整代码 完整代码 完整代码以单变量多步预测演示,要想修改多变量,只需要修改sliding_window() 和 forecast() 函数即可,可以参考上一篇文章:
分享到:
收藏