资源简介
主要是粒子群算法优化BP神经网络算法,注释写得很清楚,希望对你们有帮助

代码片段和文件信息
%% 该代码为基于PSO和BP网络的预测
%% 清空环境
clc
clear
%读取数据
% load data input output
% input= xlsread(‘C:\Users\lenovo\Documents\MATLAB\input_1.xlsx‘); %读取excel里面的混沌数据作为输入
% output= xlsread(‘C:\Users\lenovo\Documents\MATLAB\output1.xlsx‘);
% %训练数据和预测数据
% input_train=input(1:200:)‘; %输入训练数据,前1900个输入数据
% input_test=input(201:300:)‘; %输入预测数据,后100个输入数据
% output_train=output(1:200)‘; %输出训练数据,前1900个输出数据
% output_test=output(201:300)‘; %输出预测数据,后100个输出数据
% train_input= xlsread(‘C:\Users\lenovo\Documents\MATLAB\train_input.xlsx‘‘V1:AO25192‘); %读取excel里面的混沌数据作为输入
% train_output= xlsread(‘C:\Users\lenovo\Documents\MATLAB\train_output.xlsx‘);
% test_input= xlsread(‘C:\Users\lenovo\Documents\MATLAB\test_input.xlsx‘‘V1:AO11850‘); %读取excel里面的混沌数据作为输入
% test_output= xlsread(‘C:\Users\lenovo\Documents\MATLAB\test_output.xlsx‘);
train_input= xlsread(‘C:\Users\lenovo\Documents\MATLAB\train_input.xlsx‘); %读取excel里面的混沌数据作为输入
train_output= xlsread(‘C:\Users\lenovo\Documents\MATLAB\train_output.xlsx‘);
test_input= xlsread(‘C:\Users\lenovo\Documents\MATLAB\test_input.xlsx‘); %读取excel里面的混沌数据作为输入
test_output= xlsread(‘C:\Users\lenovo\Documents\MATLAB\test_output.xlsx‘);
input=train_input;
input_train=input‘; %输入训练数据,前1900个输入数据
test_input=test_input;
input_test=test_input‘; %输入预测数据,后100个输入数据
train_output=train_output;
output_train=train_output‘; %输出训练数据,前1900个输出数据
test_output=test_output;
output_test=test_output‘; %输出预测数据,后100个输出数据
inputnum=size(input_train1); %输入层节点数 size(input_train1)
hiddennum=40; %隐含层节点数
outputnum=5; %输出层节点数
%初始化编码长度,以免后面出现超维错误gl
numsum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum; %编码长度
%选连样本输入输出数据归一化
[inputninputps]=mapminmax(input_train);
[outputnoutputps]=mapminmax(output_train);
%构建一个前馈BP网络
net=newff(41205);
% net=newff(inputnoutputnhiddennum);
% net=newff(minmax(inputn)[hiddennum5]{‘tansig‘‘purelin‘}‘traingd‘);
% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;
maxgen=2; % 进化次数 2
sizepop=numsum; %种群规模110
Vmax=0.5; %速度限制
Vmin=-0.5;
popmax=5; %种群限制
popmin=-5;
%%产生初始粒子和速度
for i=1:sizepop %随机产生一个种群
pop(i:)=5*rands(1numsum); %初始种群,gl 此处例程是pop(i:)=5*rands(121);把21换成了numsum。
V(i:)=rands(1numsum); %初始化速度, gl此处例程是V(i:)=rands(1numsum);把21换成了numsum。
fitness(i)=fun(pop(i:)inputnumhiddennumoutputnumnetinputnoutputn);%计算适应度
% fitness(i:)=fun(pop(i:)inputnumhiddennumoutputnumnetinputnoutputn);%计算适应度
end
% 个体极值和群体极值
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex:); %全局最佳
gbest=pop; %个体最佳
fitnessgbest=fitness; %个体最佳适应度值
fitnesszbest=bestfitness; %全局最佳适应度值
%% 迭代寻优
for i=1:maxgen
i
for j=1:sizepop
%速度更新
V(j:) = V(j:) + c1*rand*(gbest(j:) - pop(j:)) + c2*rand*(zbest - pop(j:));
% V(j:) = V(j:) + c1*rand*(gbest(j:) - pop(j:)) + c2*rand*(zbest(j:) - pop(j:));
V(jfind(V(j:)>Vmax))=Vmax;
V(j
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6070 2018-10-08 21:34 pso优化BP\bp.m
文件 2062 2018-10-08 16:22 pso优化BP\fun.m
文件 1825174 2018-09-29 11:59 pso优化BP\test_input.xlsx
文件 235526 2018-09-29 11:59 pso优化BP\test_output.xlsx
文件 4021212 2018-10-04 10:34 pso优化BP\train_input.xlsx
文件 503922 2018-09-27 14:40 pso优化BP\train_output.xlsx
目录 0 2018-10-10 20:35 pso优化BP
----------- --------- ---------- ----- ----
6593966 7
- 上一篇:STM32F103 模糊自整定增量式PID控制电机速度
- 下一篇:rust 程序设计
相关资源
- 改进的BP神经网络算法
- 基于bp神经网络的表情识别
- 自适应粒子群优化算法及其应用
- 基于ARIMA、BP神经网络与GM的组合模型
- 基于双隐含层BP神经网络的预测
- 基于PSO优化BP神经网络的水质预测研究
- BP神经网络算法逼近一个正弦函数
- 粒子群微电网优化调度
- 微电网PSO优化算法
- 粒子群算法参考论文权威
- Particle Swarm Optimization粒子群算法原版
- 基于主成分分析与BP神经网络的雾天能
- 基于BP神经网络的挖掘机液压系统故障
- 基于粒子群算法优化RBF神经网络的异
- BP神经网络在手机评价中的应用
- 基于因素分析与BP神经网络的上市公司
- BP神经网络计算过程详解
- 论文研究-基于优化支持向量机的人脸
- 基于BP神经网络电力系统短期负荷预测
- BP神经网络用于两类图片识别分类
- 粒子群优化及智能故障诊断
- 群体智能.ppt
- 基于改进粒子群算法的配电网分布式
- 各种优化BP神经网络算法
- 基于BP神经网络的车牌识别技术
- 基于LabVIEW的BP神经网络算法的设计实
- bp神经网络图像识别
- 基于BP神经网络的人脸识别的源代码
- 1000MW超超临界机组主汽温建模及其精
- BP神经网络在GPS高程拟合中的应用
评论
共有 条评论