时序数据利用EEMD_LSTM模型进行预测(Python编程,数据集和代码均在压缩包,解压缩后可以直接运行,数据可以替换为股票数据,交通流量等时序数据)

运行效果(为减少录屏时间,视频中epoch设置为30,改为100效果更佳):利用EEMD_LSTM模型对时序数据进行预测(视频中epoch为30,当为100 的时候效果更佳)_哔哩哔哩_bilibili

1.数据介绍:以每天为间隔的时序数据

第一列Oxygen Consumption(氧耗)  第二列Ammonia Nitrogen(氨氮),第三列PH,第四列(Dissolved Oxygen)溶解氧

 目标:根据已知时间内的四列特征预测未来的溶解氧含量(第四列)

2.模型:EEMD_LSTM

EEMD是一种信号分解方法,它将信号分解成多个本征模态函数(IMFs),这些IMFs具有不同的频率特征。

本份代码实现了对时序数据的预测,具体地,它使用了 EEMD(Ensemble Empirical Mode Decomposition) 对时序数据进行分解,并且对分解出来的每一个 IMFs(Intrinsic Mode Functions) 进行 LSTM 模型的训练和预测,最后将多个 IMFs 的预测结果进行加权平均得到最终的预测结果。

这段代码的具体实现如下:

  1. 引入必要的库和模块,包括 numpy、pandas、sklearn、keras、matplotlib 等。
  2. 实现数据分割函数 data_split,将原始数据集划分为训练集和测试集,并且对每个数据窗口内的数据进行划分,分成输入和输出序列,用于训练 LSTM 模型。
  3. 实现数据预处理函数 data_split_LSTM,对训练集和测试集的输入和输出数据进行 reshape 处理,以符合 LSTM 模型的输入要求。(该模型用于对时间序列数据进行预测,主要用于股票价格、气温、交通流量等的预测。其中,输入数据的形状为(样本数量,时间步长,特征数量),输出数据的形状为(样本数量,预测步长,特征数量)。该模型使用均方误差作为损失函数,Adam优化算法进行优化,使用回调函数进行模型保存。)
  4. 实现 IMFs 分解函数 imf_data,对原始时序数据进行 EEMD 分解,并将分解出来的多个 IMFs 作为 LSTM 模型的输入。
  5. 实现 LSTM 模型函数 LSTM_Model,其中包括模型的定义、编译、训练和保存等操作。
  6. 实现异常值检测函数 isolutionforest,使用 IsolationForest 算法对输入数据进行异常值检测。
  7. 实现绘图函数 plot_curve,用于绘制预测结果和真实结果的对比曲线。
  8. 最后,调用各个函数完成对原始时序数据的分解、模型训练和预测、预测结果的加权平均等操作,得到最终的预测结果。

3.结果:
3.1测试集分解信号如图所示

3.2.测试集 预测值与真实值比较

 指标:

对项目感兴趣的可以关注最后一行:

import numpy as np
import pandas as pd

from pandas import read_csv
from pandas import DataFrame
from datetime import datetime
from matplotlib import pyplot
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import LabelEncoder
from sklearn.ensemble import IsolationForest
from PyEMD import EEMD
#代码:https://mbd.pub/o/bread/ZJiZm5ps 数据可以替换为股票数据,交通流量等时序数据。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深度学习的奋斗者

你的鼓励是我努力的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值