【CEEMDAN-VMD-Transformer】双重分解+Transformer多变量时序预测,多变量输入模型。matlab代码,2023b及其以上。
1.CEEMDAN分解,计算样本熵,根据样本熵进行kmeans聚类,调用VMD对高频分量二次分解,VMD分解的高频分量与前分量作为Transformer模型的目标输出分别预测后相加。
2.CEEMDAN-VMD-Transformer模型处理数据,具有更高的准确率,能够跟踪数据的趋势以及变化。VMD 模型处理非线性、非平稳以及复杂的数据,表现得比EMD 系列更好,因此将重构的数据通过VMD 模型分解,提高了模型的准确度。
评价指标包括:R2、MAE、MSE、RMSE和MAPE等,代码质量极高,方便学习和替换数据。参数可方便更改,程序和excel数据放在一个文件夹,注释明细。
%% 优化算法优化前,构建优化前的TCN模型
numChannels = orm;
maxPosition = 256*2;
numHeads = 4;
numKeyChannels = numHeads*32;
layers = [
sequenceInputLayer(numChannels,Name="input")
positionEmbeddingLayer(numChannels,maxPosition,Name="pos-emb");
additionLayer(2, Name="add")
selfAttentionLayer(numHeads,numKeyChannels,'AttentionMask','causal')
selfAttentionLayer(numHeads,numKeyChannels)
indexing1dLayer("last")
fullyConnectedLayer(n_out)
regressionLayer];
lgraph = layerGraph(layers);
lgraph = connectLayers(lgraph,"input","add/in2");
智能算法及其模型预测