2024年新算法-鹦鹉优化器(PO)优化BP神经网络回归预测
亮点:
输出多个评价指标:R2,RMSE,MSE,MAPE和MAE
满足需求,分开运行和对比的都有对应的主函数:main_BP, main_PO, main_BPvsBP_PO,并且详细中文注释
方便快捷:替换excel数据即可运行自己的数据集
出图丰富:不仅有预测结果对比,还有预测误差的可视化
一、鹦鹉优化器(Parrot optimizer, PO)
摘要:随机优化方法作为一种有效的优化方法,在解决复杂优化问题中发挥着重要作用。本文介绍了鹦鹉优化器(PO),一种有效的优化方法,其灵感来自经过训练的Pyrrhura Molinae鹦鹉的关键行为。通过定性分析和综合实验,展示了Parrot优化器在处理各种优化问题时的独特特性。性能评估包括在35个函数上对提出的PO进行基准测试,包括IEEE CEC 2022测试集中的经典案例和问题,并将其与8个流行算法进行比较。结果生动地突出了PO在探索和利用特性方面的竞争优势。此外,通过参数敏感性实验探讨了所提出的PO在不同配置下的适应性。开发的PO应用于工程设计问题时,证明了其有效性和优越性。为了进一步将评估扩展到实际应用中,我们将PO应用于疾病诊断和医学图像分割问题,这些问题在医学领域具有高度相关性和重要意义。实验结果表明,PO算法优于现有的一些算法,是一种很有发展前景和竞争力的算法。
参考文献:Parrot optimizer: Algorithm and applications to medical problems
Doi: 10.1016/j.compbiomed.2024.108064
二、BP神经网络
在今天的数字化时代,BP神经网络(反向传播神经网络)成为了机器学习和人工智能领域的一项重要技术。这种网络模型通过模仿人脑的处理方式,能够学习并解决复杂的非线性问题,是许多现代AI应用的基础。BP神经网络通过其多层结构处理信息,每一层由多个神经元组成,神经元之间通过“权重”和“偏置”参数相连接。这些参数在网络的训练初期被随机初始化,以引入必要的随机性,帮助网络有效避开局部最优解,探索全局最优解。训练过程中,网络通过输入样本进行前向传播,计算输出误差,然后通过反向传播算法调整权重和偏置,逐步减少误差,优化模型性能。这一过程不断重复,直至网络达到预期的准确性。BP神经网络的强大功能使其在回归/分类、图像识别、语音处理、自然语言处理等多个领域得到广泛应用。随着技术的不断进步,BP神经网络仍将在智能化探索中扮演重要角色,推动科技创新的边界不断拓展。
三、PO-BP神经网络
在追求神经网络最优性能的过程中,参数优化扮演着核心角色。传统的梯度下降法虽广泛应用于网络训练,但在某些复杂的回归预测任务中,它们常受限于慢速收敛和陷入局部最优。引入基于牛顿-拉斐尔方法的优化器(PO),我们提供了一种高效的替代方案,特别适合处理具有复杂数据问题。通过建立目标函数,对神经网络的权重和偏置进行优化,得到更好的模型。
四、实验结果
数据集使用的是波士顿房价数据集,可以直接替换数据运行自己的数据集:
点击mian_BP运行结果,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:
点击main_PO运行结果如下,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:
PO收敛曲线如下:
点击mainBPvsBPPO运行结果,并且输出评价指标R2,RMSE,MSE,MAPE和MAE:
所有图片:
预测结果对比图:
预测误差对比图:
所有评价指标:
部分代码如下:
% BestF: Best value in a certain iteration
% WorstF: Worst value in a certain iteration
% GBestF: Global best fitness value
% AveF: Average value in each iteration
if (max(size(ub)) == 1)
ub = ub .* ones(1, dim);
lb = lb .* ones(1, dim);
end
%% Initialization
X0 = initialization(N, dim, ub, lb); % Initialization
X = X0;
% Compute initial fitness values
fitness = zeros(1, N);
for i = 1:N
fitness(i) = fobj(X(i, :),hiddennum, net, p_train, t_train);
end
[fitness, index] = sort(fitness); % sort
GBestF = fitness(1); % Global best fitness value
fitness1=GBestF;
AveF = mean(fitness);
for i = 1:N
X(i, :) = X0(index(i), :);
end
curve = zeros(1, Max_iter);
%avg_fitness_curve = zeros(1, Max_iter);
GBestX = X(1, :); % Global best position
X_new = X;
search_history = zeros(N, Max_iter, dim);
fitness_history = zeros(N, Max_iter);
%% Start search
原创改进算法添加shudongyouma,可使用迭代次数、评估次数,可以改进经典的,先进的算法,所有结果和图一键运行出来。
可做回归/分类预测。
论文、SCI、EI、核心、学报、普刊、会议、专利、软著等均可提供辅导。
目前改进海洋捕食者、雪融和小龙虾已售,绝不二次销售。
部分理论来源于网络,如有侵权,请联系删除。
五、完整代码获取
点击获取代码https://mbd.pub/o/bread/ZpWUlZ5x