2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测
亮点:
输出多个评价指标:R2,RMSE,MSE,MAPE和MAE
满足需求,分开运行和对比的都有对应的主函数:main_BP, main_SBOA, main_BPvsBP_SBOA,并且详细中文注释
方便快捷:替换excel数据即可运行自己的数据集
出图丰富:不仅有预测结果对比,还有预测误差的可视化
一. 秘书鸟优化算法(Secretary bird optimization algorithm, SBOA)
摘要:受秘书鸟在自然环境中的生存行为启发,提出一种新的基于种群的元启发式算法——秘书鸟优化算法(SBOA)。秘书鸟的生存包括持续猎食和躲避捕食者的追捕。这些信息对于提出一种新的元启发式算法至关重要,该算法利用秘书鸟的生存能力来解决现实世界的优化问题。该算法的探索阶段模拟秘书鸟捕食蛇,而利用阶段模拟它们逃离捕食者。在此阶段,秘书鸟类会观察环境,并选择最合适的方式到达安全的栖息地。这两个阶段在满足终止准则的前提下反复迭代,以找到优化问题的最优解。为了验证SBOA的性能,从收敛速度、收敛行为等方面进行了实验评估。此外,将SBOA与15种先进算法在CEC-2017和CEC-2022测试集上进行了比较。测试结果表明,SBOA在求解质量、收敛速度和稳定性方面均表现出了优异的性能。最后,利用SBOA求解12个约束工程设计问题,对无人机进行三维航迹规划。结果表明,与对比优化器相比,所提出的SBOA可以以更快的速度找到更好的解决方案,展示了其在解决现实世界优化问题方面的巨大潜力。
参考文献:Secretary bird optimization algorithm: a new metaheuristic for solving global optimization problems
Doi: 10.1007/s10462-024-10729-y
二、BP神经网络
在今天的数字化时代,BP神经网络(反向传播神经网络)成为了机器学习和人工智能领域的一项重要技术。这种网络模型通过模仿人脑的处理方式,能够学习并解决复杂的非线性问题,是许多现代AI应用的基础。BP神经网络通过其多层结构处理信息,每一层由多个神经元组成,神经元之间通过“权重”和“偏置”参数相连接。这些参数在网络的训练初期被随机初始化,以引入必要的随机性,帮助网络有效避开局部最优解,探索全局最优解。训练过程中,网络通过输入样本进行前向传播,计算输出误差,然后通过反向传播算法调整权重和偏置,逐步减少误差,优化模型性能。这一过程不断重复,直至网络达到预期的准确性。BP神经网络的强大功能使其在回归/分类、图像识别、语音处理、自然语言处理等多个领域得到广泛应用。随着技术的不断进步,BP神经网络仍将在智能化探索中扮演重要角色,推动科技创新的边界不断拓展。
三、SBOA-BP神经网络
在追求神经网络最优性能的过程中,参数优化扮演着核心角色。传统的梯度下降法虽广泛应用于网络训练,但在某些复杂的回归预测任务中,它们常受限于慢速收敛和陷入局部最优。引入基于秘书鸟方法的优化器(SBOA),我们提供了一种高效的替代方案,特别适合处理具有复杂数据问题。通过建立目标函数,对神经网络的权重和偏置进行优化,得到更好的模型。
四、实验结果
数据集使用的是波士顿房价数据集,可以直接替换数据运行自己的数据集:
点击mian_BP运行结果,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:
点击main_SBOA运行结果如下,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:
SBOA收敛曲线如下:
点击mainBPvsBPSBOA运行结果,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:
所有图片:
预测结果对比图:
预测误差对比图:
所有评价指标:
部分代码如下:
warning off % 关闭报警信息 close all % 关闭开启的图窗 clear % 清空变量 clc % 清空命令行 % 导入数据 data = xlsread('回归预测_BostonHousing.xlsx'); % 计算数据集行数和列数 [num_rows, num_columns] = size(data); % 划分训练集和测试集 temp = randperm(num_rows); % 打乱数据集 num_train = round(0.8*num_rows); % 百分之80作为训练集 P_train = data(temp(1: num_train), 1: num_columns-1)'; T_train = data(temp(1: num_train), num_columns)'; M = size(P_train, 2); P_test = data(temp(num_train: end), 1: num_columns-1)'; T_test = data(temp(num_train: end), num_columns)'; N = size(P_test, 2); % 数据归一化 [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); % 节点个数 inputnum = size(p_train, 1); % 输入层节点数 hiddennum = 5; % 隐藏层节点数 outputnum = size(t_train,1); % 输出层节点数 % 建立网络 net = newff(p_train, t_train, hiddennum); % 设置训练参数 net.trainParam.epochs = 1000; % 训练次数 net.trainParam.goal = 1e-6; % 目标误差 net.trainParam.lr = 0.01; % 学习率 net.trainParam.showWindow = 0; % 关闭窗口
五、完整代码获取
2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测https://mbd.pub/o/bread/ZpaUmZdv
原创改进算法添加shudongyouma,可使用迭代次数、评估次数,可以改进经典的,先进的算法,所有结果和图一键运行出来。
可做回归/分类预测。
论文、SCI、EI、核心、学报、普刊、会议、专利、软著等均可提供辅导。
目前改进海洋捕食者、雪融和小龙虾已售,绝不二次销售。
部分理论来源于网络,如有侵权,请联系删除。