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

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

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

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

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

目录

💥1 概述

1.1 变分模态分解算法

1.2 LSTM

📚2 运行结果​编辑

🎉3 参考文献

🌈4 Python代码实现


💥1 概述

参考文献:

1.1 变分模态分解算法

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

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

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

1.2 LSTM

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

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

所示。

📚2 运行结果

 

部分代码:

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代码实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值