本文以MATLAB自带的脂肪数据集为例,将数据保存在EXCEL工作簿内,方便替换数据使用,以下介绍粒子群算法优化BP神经网络预测的MATLAB代码编写,主要流程包括1. 读取数据 2.划分训练集和测试集 3.归一化 4.确定BP神经网络的隐含层最优节点数量 5. 使用粒子群算法优化BP的神经网络权重和阈值 6. 利用优化后的参数训练BP神经网络 7. 计算BP和PSO-BP的测试集预测误差,包括MAE、RMSE、MAPE、拟合优度R方,以及作优化前后的预测值和真实值对比图。
一般来说通过加入启发式算法以及调试好参数后,模型的预测性能将具有明显的提升。下图是优化结果,相对误差从28%降低到7%,粒子群算法的优化效果非常明显。
以下是粒子群算法PSO优化BP预测代码:
1. 初始化代码
clear % 清除工作区,防止工作区存在相关变量对代码产生影响
close all % 关闭所有已有图像
clc % 清空命令行窗口
2. 读取数据代码
data=xlsread('数据.xlsx','Sheet1','A1:N252'); %%使用xlsread函数读取EXCEL中对应范围的数据即可
%输入输出数据
input=data(:,1:end-1); %data的第一列-倒数第二列为特征指标
output=data(:,end)