基于self-attention的BILSTM时间序列预测Python程序
基于self-attention的BILSTM时间序列预测Python程序
特色:1、单变量,多变量输入,自由切换
2、单步预测,多步预测,自动切换
3、基于Pytorch架构
4、多个评估指标(MAE,MSE,R2,MAPE等)
5、数据从excel文件中读取,更换简单
6、标准框架,数据分为训练集、验证集,测试集
全部完整的代码,保证可以运行的代码看这里。
!!!如果第一个链接打不开,请点击个人首页,查看我的个人介绍。
(搜索到的产品后,点头像,就能看到全部代码)
1、BILSTM-selfAttention模型背景简介
BILSTM是双向LSTM,与单向LSTM相比较,它同样包含两个LSTM,分别从前向后和从后向前扫描整个序列。这种结构使得模型能够同时考虑过去和未来的信息,更加准确地捕捉序列数据中的特征信息。
因此,BILSTM-selfAttention模型采用双向LSTM网络结合self-attention机制,在更好地捕捉序列数据特征的同时,提高了模型预测能力。
2、BILSTM-selfAttention模型优点总结
本模型的优点有:
-
BILSTM双向LSTM可以同时考虑过去和未来的信息,更全面地捕捉序列数据中的特征信息; self-attention机制能够更好地处理序列数据之间的关系,为BILSTM网络提供各个时间步不同的辅助信息,帮助提高预测准确率。
train_ratio = 0.7 # 训练集比例 val_ratio = 0.15 # 验证集比例 test_ratio = 0.15 # 测试集比例 input_length = 48 # 输入数据长度,多步预测建议长,单步预测建议短 output_length = 1 # 输出数据长度,1为单步预测,1以上为多步预测 请注意,随着输出长度的增长,模型训练时间呈指数级增长 learning_rate = 0.1 # 学习率 estimators = 100 # 迭代次数 max_depth = 5 # 树模型的最大深度 interval_length = 2000 # 预测数据长度,最长不可以超过总数据条数 scalar = True # 是否使用归一化 scalar_contain_labels = True # 归一化过程是否包含目标值的历史数据 target_value = load # 需要预测的列名,可以在excel中查看
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
C语言---输出九九乘法表