资源简介
遗传算法优化bp神经网络.zip

代码片段和文件信息
%% 此程序为BP神经网络和基于遗传算法优化的BP神经网络预测效果对比
% 清空环境变量
clearclose all
clc
warning off
%% 读取数据
data=xlsread(‘数据.xlsx‘);
input=data(:1:end-1);
output=data(:end);
%% 设置训练数据和预测数据
L=length(output); %总样本个数
num=150; %设置训练样本个数
input_train = input(1:num:)‘;
output_train = output(1:num:)‘;
input_test = input(num+1:end:)‘;
output_test = output(num+1:end:)‘;
disp([‘训练样本数‘num2str(num)])
disp([‘测试样本数‘num2str(L-num)])
%% 数据归一化
[inputninputps]=mapminmax(input_train);%归一化到[-11]之间,inputps用来作下一次同样的归一化
[outputnoutputps]=mapminmax(output_train);
inputn_test=mapminmax(‘apply‘input_testinputps);% 对测试样本数据进行归一化
%% 节点个数
inputnum=size(input_train1); %输入层节点个数
outputnum=size(output_train1); %输出层节点个数
hiddennum=10;
%% 构建BP神经网络
disp(‘ ‘)
disp(‘标准的BP神经网络:‘)
net0=newff(inputnoutputnhiddennum{‘tansig‘‘purelin‘}‘trainlm‘‘learngdm‘);% 建立模型
%网络参数配置
net0.trainParam.epochs=1000; % 训练次数,这里设置为1000次
net0.trainParam.lr=0.01; % 学习速率,这里设置为0.01
net0.trainParam.goal=0.00001; % 训练目标最小误差,这里设置为0.0001
net0.trainParam.show=25; % 显示频率,这里设置为每训练25次显示一次
net0.trainParam.mc=0.01; % 动量因子
net0.trainParam.min_grad=1e-6; % 最小性能梯度
net0.trainParam.max_fail=6; % 最高失败次数
%开始训练
[net0tr0]=train(net0inputnoutputn);
figure
plotperform(tr0) %训练集的误差曲线
%预测
an0=sim(net0inputn_test); %用训练好的模型进行仿真
%预测结果反归一化与误差计算
test_simu0=mapminmax(‘reverse‘an0outputps); %把仿真得到的数据还原为原始的数量级
%误差指标
[mae0mse0rmse0mape0error0errorPercent0]=calc_error(output_testtest_simu0);
%% 遗传算法寻最优权值阈值
disp(‘ ‘)
disp(‘GA优化BP神经网络:‘)
net=newff(inputnoutputnhiddennum{‘tansig‘‘purelin‘}‘trainlm‘‘learngdm‘);% 建立模型
%网络参数配置
net.trainParam.epochs=1000; % 训练次数,这里设置为1000次
net.trainParam.lr=0.01; % 学习速率,这里设置为0.01
net.trainParam.goal=0.00001; % 训练目标最小误差,这里设置为0.0001
net.trainParam.show=25; % 显示频率,这里设置为每训练25次显示一次
net.trainParam.mc=0.01; % 动量因子
net.trainParam.min_grad=1e-6; % 最小性能梯度
net.trainParam.max_fail=6; % 最高失败次数
save data inputnum hiddennum outputnum net inputn outputn inputn_test outputps output_test
%初始化ga参数
PopulationSize_Data=10; %初始种群规模
MaxGenerations_Data=30; %最大进化代数
CrossoverFraction_Data=0.8; %交叉概率
MigrationFraction_Data=0.2; %变异概率
nvars=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum; %自变量个数
lb=repmat(-3nvars1); %自变量下限
ub=repmat(3nvars1); %自变量上限
%调用遗传算法函数
options = optimoptions(‘ga‘);
options = optimoptions(options‘PopulationSize‘ PopulationSize_Data);
options = optimoptions(options‘CrossoverFraction‘ CrossoverFraction_Data);
options = optimoptions(options‘MigrationFraction‘ MigrationFraction_Data);
options = optimoptions(options‘MaxGenerations‘ MaxGenerations_Data);
options = optimoptions(options‘SelectionFcn‘ @selectionroulette); %轮盘赌选择
options = optimoptions(options
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 564 2020-09-02 01:32 遗传算法优化bp神经网络\calc_error.p
文件 402 2020-09-02 01:32 遗传算法优化bp神经网络\fitness.p
文件 5367 2020-09-02 01:29 遗传算法优化bp神经网络\main.m
文件 17448 2020-09-02 01:28 遗传算法优化bp神经网络\数据.xlsx
- 上一篇:正则表达式中re.1.png
- 下一篇:Elsevier 的word模板
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论