负荷预测 | Matlab基于Transformer-LSTM多变量时间序列多步预测

目录

效果一览



基本介绍

1.Matlab基于Transformer-LSTM多变量时间序列多步预测;

2.多变量时间序列数据集(负荷数据集),采用前96*2个时刻预测的特征和负荷数据预测未来96个时刻的负荷数据;

3.excel数据方便替换,运行环境matlab2023及以上,展示最后96个时间步的预测对比图,评价指标MAE、MAPE、RMSE、MSE、R2;

注:程序和数据放在一个文件夹。

4.程序语言为matlab,程序可出预测效果图,指标图;

5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

程序设计

  • 完整程序和数据获取方式私信博主回复Matlab基于Transformer-LSTM多变量时间序列多步预测。
python 复制代码
%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
​
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
​
%%  数据平铺
​
for i = 1:size(p_train,2)
    trainD{i,:} = (reshape(p_train(:,i),or_dim,[]));
end
​
​
​
for i = 1:size(p_test,2)
    testD{i,:} = (reshape(p_test(:,i),or_dim,[]));
end
​
​
targetD =  t_train';
targetD_test  =  t_test';
​
%% 模型
numChannels = or_dim;
maxPosition = 256*2;
numHeads = 4;
numKeyChannels = numHeads*32;
layers = [ 
    sequenceInputLayer(numChannels,Name="input")
    positionEmbeddingLayer(numChannels,maxPosition,Name="pos-emb");
    additionLayer(2, Name="add")
options = trainingOptions(solver, ...
    'Plots','none', ...
    'MaxEpochs', maxEpochs, ...
    'MiniBatchSize', miniBatchSize, ...
    'Shuffle', shuffle, ...
    'InitialLearnRate', learningRate, ...
    'GradientThreshold', gradientThreshold, ...
    'ExecutionEnvironment', executionEnvironment);
​

参考资料

1 http://t.csdn.cn/pCWSp

2 https://download.csdn.net/download/kjm13182345320/87568090?spm=1001.2014.3001.5501

3 https://blog.csdn.net/kjm13182345320/article/details/129433463?spm=1001.2014.3001.5501

相关推荐
Evand J5 小时前
【MATLAB例程,PMSM19】永磁同步电机(PMSM)基于多速率无迹卡尔曼滤波(UKF)的转速与转子位置估计。测量缺失、状态预测与恢复性能分析
开发语言·matlab·电机·ekf·卡尔曼·电机滤波
星夜离尘561 天前
MATLAB 离散数据分箱:半开区间、末端点与计数、加权和、平均
算法·matlab
一起学安全技术2 天前
拆大模型 03|注意力的一句话版本:不用论文讲清 Attention
深度学习·算法·语言模型·transformer
风巽·剑染春水2 天前
【Generative AI综述】生成式人工智能在医学影像中的应用(ACME-2026)
人工智能·transformer·gan·vae·生成模型·扩散模型·医学影像
机器学习之心2 天前
5 个特征、2 个输出:让 DBO 替 CNN-Transformer 挑结构,再用 SHAP 把黑箱撬开
人工智能·cnn·transformer·cnn-transformer
Evand J3 天前
【MATLAB例程介绍】(17)永磁同步电机(PMSM)基于自适应无迹卡尔曼滤波(AUKF)的电流噪声在线估计。测量噪声协方差自适应与转速估计对比仿真
开发语言·matlab·卡尔曼滤波·无迹卡尔曼滤波·pmsm·电机滤波
bryant_meng3 天前
【TNT】《Transformer in Transformer》
人工智能·深度学习·transformer·word embedding·tnt·sentence embed
严肃小白兔4 天前
MATLAB 绘图与科研论文插图制作:图形设计、统计表达与矢量导出
开发语言·matlab·科研绘图
布吉岛的石头5 天前
Java 程序员第 50 阶段14:灾难性遗忘与回放
人工智能·深度学习·transformer
严肃小白兔5 天前
MATLAB 数值计算中的精度与误差问题:浮点运算、误差传播与数值稳定性
人工智能·算法·matlab