资源简介
遗传算法优化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模板
相关资源
- 虚拟同步机仿真.zip
- main.zip
- 接码平台.zip
- vue组件精讲.rar
- 七月在线_深度学习_矩阵与凸优化_第
- 特征选择方法.rar
- libraries.zip
- install.rar
- CUMCM-2019-Problem-A-Chinese.pdf
- rer.zip
- vue.js全套视频教程(共12章——百度链
- Scratch素材包11.zip
- 坦克大战游戏源码素材文档.zip
- DeepLearnToolbox-regression.zip
- 小米平板2刷机带双系统带root完美版
- p_mod11a2_lst.zip
- 1ACP11月5日_791.docx
- ekfukf.zip
- 几十个开源的STM32项目.zip
- 1f8ffe22d0d64dfaab315d91f23cc94e.doc
- VxWorks操作系统指南.pdf
- proxy_switchyomega-2.5.20-an+fx.rar
- 线报采集接码监控.rar
- .ppt
- SVPWMfaultmix.slx
- banksystem.zip
- 风云ddos.rar
- 所有手机密码解锁_以后就不用花钱去
- Elasticsearch实战完整书签.pdf
- ETAP安装.rar
评论
共有 条评论