
连续小波变换(CWT)+时间序列预测!融合时频分析与深度学习的预测新思路
前言
本期更新推出一种基于连续小波变换(Continuous Wavelet Transform, CWT)与VGG模型的时间序列预测方法,将传统时频分析技术与深度学习相结合,有效解决了复杂时间序列的建模难题。通过将一维时序信号转换为二维时频图像,充分利用卷积神经网络(CNN)对图像特征的强大提取能力,在保证时序局部特征的同时,显著提升模型对非平稳信号的适应性。
1.模型简介
模型核心思想
(1)时频转换:利用CWT捕捉时序信号的时频局部特性,生成高分辨率的时频图像;
(2)特征学习:借助VGG模型提取时频图像的深层语义特征;
(3)预测建模:通过全连接网络将图像特征映射为未来时间点的预测值。
2.数据处理流程
2.1 滑动窗口介绍
在时间序列预测问题中,滑动窗口是一种常用的数据处理方法,用于将时间序列数据转换为模型的输入特征和输出标签。滑动窗口的基本思想是以固定的时间窗口长度对时间序列进行切片,每次滑动一定的步长,从而生成一系列的子序列。这些子序列可以作为模型的输入特征,同时可以对应相同长度的下一个时间步的数据作为输出标签。这样就可以将时间序列数据转换为监督学习问题的数据集,用于训练和测试预测模型。
具体来说,对于一个时间序列 [x1, x2, x3, ..., xn],滑动窗口的过程如下:
(1)择固定长度的时间窗口,比如长度为w。
(2)从序列的起始位置开始,取前w个数据作为输入特征,同时取第w+1个数据作为输出标签,形成第一个样本。
(3)然后向后滑动一个固定的步长,取第2到w+1个数据作为输入特征,同时取第w+2个数据作为输出标签,形成第二个样本,依此类推,直到序列末尾。
比如序列长为20,滑动窗口设置为4
滑动窗口.png
训练集,滑动:
滑动.png
构造训练集数据和对应标签:
训练集.png
构造测试集数据和对应标签:
测试集.png
通过滑动窗口的处理,原始的时间序列数据被转换为一系列的样本,每个样本包括了固定长度的输入特征和对应的输出标签,用于模型的训练和测试。滑动窗口技术可以帮助模型捕捉时间序列数据的局部模式和趋势,提高模型对时间序列的预测能力。
2.2 数据预处理与特征工程流程
(1) 滑动窗口分割
①输入:原始时间序列 X={x1,x2,...,xT}
②操作:
- 生成窗口序列:W={W1,W2,...,WN},Wi={xi,xi+1,...,xi+L−1}
- 窗口长度 L:截取局部时序片段(如 L=128)
数据集制作.png
(2) 连续小波变换(CWT)
①参数配置:
- 小波基函数:Morlet小波('morl',兼顾时频分辨率)
- 尺度范围:scales=[1,2,...,64]scales=[1,2,...,64](控制频率分辨率)
②操作:
对每个窗口Wi
时频图.png
3.基于CWT+VGG的预测模型
3.1 定义VGG模型,设置参数,训练模型
模型训练.png
3.2预测结果可视化
预测拟合.png
3.3 模型评估
模型评估.png
本次主要推出一种时频图像结合深度学习模型的预测思路,时频图像的变换方式,不同参数的尝试,不同模型的组合预测,还有很大的探索空间!
比如上述模型中小波基函数的选择,其他参数的设置例如:窗口值的选择,小波参数,时频图参数等等,都还有很多不同尝试的组合,来进一步提升模型预测效果!
