【VMD-LSTM】变分模态分解-长短时记忆神经网络研究(Python代码实现)

简介: 【VMD-LSTM】变分模态分解-长短时记忆神经网络研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


⛳️座右铭:行百里者,半于九十。


📋📋📋本文目录如下:🎁🎁🎁


目录


💥1 概述


1.1 变分模态分解算法


1.2 LSTM


📚2 运行结果编辑


🎉3 参考文献


🌈4 Python代码实现


💥1 概述

参考文献:


a9a3e0ea63124a3594616cba452f05e8.png


1.1 变分模态分解算法

变分 模 态 分 解 ( variational mode decomposition,VMD) 算法是由 Dragomiretskiy 等提出的一种自动自适应、非递归的信号处理方法。此算法克服了 EMD 及其改进算法端点效应和模态分量


混叠的问题,可以将非稳定性、非线性且复杂度高的信号分解为多个相对平稳的子序列,在求解过


程中可自适应匹配最佳中心特征,极大程度地迎合高频率复杂信号的分解。


1.2 LSTM

长短时记忆( long-short term memory,LSTM) 神经网络是 Hochreiter 等提出的一种改进后的循环式神经网络,可有效解决循环式神经网络存在的梯度爆炸和阶段性梯度消失的问题。在传统


循环式神经网络基础上,在隐含层增设记忆模块,可使信息较长时间地储存和遗传,其结构如图 1


所示。


fdaa91c48a8c476793f80bc2cb793656.png


📚2 运行结果


573d1e200a6449b8a945cc4d8129c883.png

d05b1bc3d4e1401baa985e337876ba7b.png


部分代码:

def GRU_predict(data=None, epochs=100, predict_duration=len(test), fitting=None): 
    trainX,trainY,scalarY = create_train_test_set(data, co_imf_predict_for_fitting=fitting) 
    x_train,x_test = trainX[:-predict_duration],trainX[-predict_duration:] 
    y_train,y_test = trainY[:-predict_duration],trainY[-predict_duration:]
    train_X = x_train.reshape((x_train.shape[0], x_train.shape[1], x_train.shape[2])) 
    test_X = x_test.reshape((x_test.shape[0], x_test.shape[1], x_test.shape[2])) 
    model = GRU_model(train_X.shape) 
    patience = epochs//10 
    EarlyStop = EarlyStopping(monitor='val_loss', patience=5*patience, verbose=0, mode='auto') 
    Reduce = ReduceLROnPlateau(monitor='val_loss', patience=patience, verbose=0, mode='auto')
    history = model.fit(train_X, y_train, epochs=epochs, batch_size=32, validation_split=0.1, verbose=0, shuffle=True, callbacks=[EarlyStop,Reduce]) 
    y_test_predict = model.predict(test_X) 
    df_gru_evaluation = evaluation_model(y_test, y_test_predict) 
    y_test_predict = y_test_predict.ravel().reshape(-1,1) 
    y_test_predict_result = scalarY.inverse_transform(y_test_predict) 
    y_test_raw = scalarY.inverse_transform(y_test)    
    df_predict_raw = pd.DataFrame({'raw': y_test_raw.ravel(), 'predict': y_test_predict_result.ravel()}, index=range(len(y_test_raw))) # Output
    df_train_loss= pd.DataFrame({'loss': history.history['loss'], 'val_loss': history.history['val_loss']}, index=range(len(history.history['val_loss'])))
    return df_predict_raw, df_gru_evaluation, df_train_loss


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。


[1]邴其春,张伟健,沈富鑫,胡嫣然,高鹏,刘东杰.基于变分模态分解和LSTM的短时交通流预测[J].重庆理工大学学报(自然科学),2023,37(05):169-177.


🌈4 Python代码实现


相关文章
|
11月前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
270 0
|
11月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
651 2
|
11月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
823 1
|
10月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
1202 0
|
10月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
377 0
|
10月前
|
传感器 机器学习/深度学习 数据采集
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
【航空发动机寿命预测】基于SE-ResNet网络的发动机寿命预测,C-MAPSS航空发动机寿命预测研究(Matlab代码实现)
627 0
|
文字识别 算法 前端开发
100行Python代码实现一款高精度免费OCR工具
近期Github开源了一款基于Python开发、名为Textshot的截图工具,刚开源不到半个月已经500+Star。
100行Python代码实现一款高精度免费OCR工具
|
11月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1709 102
|
11月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
525 104
|
11月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
414 103

热门文章

最新文章

推荐镜像

更多