采用黑翅鸢优化算法BKA-CNN-LSTM、CNN-LSTM、LSTM、CNN四模型多变量回归预测,多输入单输出(Matlab)
代码功能
该代码实现了一个多模型回归预测,通过CNN、LSTM、CNN-LSTM及优化后的BKA-CNN-LSTM模型对数据进行预测,并进行全面的性能对比与可视化分析。BKA优化隐藏层节点数、初始学习率、L2正则化系数。黑翅鸢优化算法(Black-winged kite algorithm,BKA)是一种受自然启发的群智能优化算法,其灵感来源于黑翅鸢(Black-winged kite)这种动物的生存策略。因为黑翅鸢在攻击和迁徙中表现出高度的适应性和智能行为。核心功能包括:
- 数据预处理:导入、随机打乱、训练/测试集划分、归一化
- 深度学习建模:构建CNN/LSTM/CNN-LSTM/BKA-CNN-LSTM四类模型
- 智能优化:使用BKA算法优化CNN-LSTM超参数
- 预测与评估:计算RMSE/MAE/MAPE/R²等指标
- 可视化分析:损失曲线/预测对比/误差分析/雷达图/罗盘图等图表
算法步骤与技术路线
1. 数据预处理
%% 核心步骤
res = xlsread('data.xlsx'); % 导入Excel数据
res = res(randperm(num_samples), :);% 随机打乱数据
[p_train, ps_input] = mapminmax(P_train); % 归一化到[0,1]
p_train = reshape(p_train, f_, 1, 1, M); % 转换为4D张量(CNN输入)
- 技术特点:数据规范化 + 维度转换适配深度学习输入
2. 多模型构建
(1) CNN模型
layers = [imageInputLayer([f_, 1, 1])convolution2dLayer([3,1], 16) % 卷积核3×1batchNormalizationLayerreluLayerfullyConnectedLayer(outdim)regressionLayer];
(2) LSTM模型
layers = [sequenceInputLayer(f_)lstmLayer(20, 'OutputMode','last') % 20个隐藏单元fullyConnectedLayer(outdim)regressionLayer];
(3) CNN-LSTM融合模型
lgraph = layerGraph();
tempLayers = [sequenceInputLayer([f_,1,1])sequenceFoldingLayer()];
lgraph = addLayers(lgraph, tempLayers);
% 添加卷积层和LSTM层...
lgraph = connectLayers(lgraph, "seqfold/out", "conv_1");
3. BKA优化算法
%% 超参数优化
best_hd = round(Best_pos(1,3)); % 最优LSTM节点数
best_lr = abs(Best_pos(1,2)); % 最优学习率
best_l2 = abs(Best_pos(1,1)); % 最优L2正则化系数
- 优化参数:LSTM节点数(5-100)、学习率(0.001-0.1)、L2正则化(0.001-0.03)
- 优化机制:BKA搜索最优解
4. 预测与评估
%% 核心评估函数
function [RMSE, R2, MAE, MAPE, MSE] = calc_error(T_true, T_pred)
关键参数设定
参数类别 | 参数名 | 设定值 | 作用 |
---|---|---|---|
数据划分 | num_size | 0.7 | 训练集占比 |
CNN | ConvolutionSize | [3,1] | 卷积核尺寸 |
NumFilters | 16→32 | 特征图数量 | |
LSTM | NumHiddenUnits | 20 | 隐藏层单元数 |
训练参数 | MaxEpochs | 500 | 最大训练轮数 |
MiniBatchSize | 256 | 批处理大小 | |
InitialLearnRate | 5e-3~5e-2 | 初始学习率 | |
BKA优化 | SearchAgents | 5 | 种群规模 |
Max_iterations | 6 | 最大迭代次数 |
运行环境要求
- MATLAB版本:R2020b或更高
- 依赖函数:
mapminmax
(数据归一化)BKA.m
(优化算法)fical.m
(优化目标函数)radarChart.m
(雷达图绘制)
应用场景
- 金融预测:股票价格/汇率波动预测
- 环境科学:PM2.5浓度预测/气温变化预测
- 交通规划:客流量预测/出租车需求预测
技术亮点
- 多模型对比:CNN/LSTM/CNN-LSTM/BKA-CNN-LSTM四模型
- 智能优化:BKA算法自动调参提升模型性能
- 可视化体系:
- 训练过程监控(损失/误差曲线)
- 预测结果对比(折线图/组合图)
- 模型性能评估(雷达图/罗盘图/柱状图)
- 全面评估指标:RMSE/MAE/MAPE/R²/MSE五维评价
通过系统化的模型对比和可视化分析,该代码为回归预测提供了完整的解决方案,特别适合需要模型优化和性能验证的研究场景。
数据集
效果