资源简介
主要是粒子群算法优化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神经网络的权值和阈值
- 血管图像分割
- 5篇关于bp神经网络与pid的学术论文
- BP神经网络实现手写体数字识别
- 一种基于改进粒子群算法的PID参数整
- 粒子群算法分布式电源选址定容
- 粒子群优化算法在阵列天线方向图中
- 基于BP神经网络的高斯模糊图像复原方
- 并行化实现基于BP神经网络的手写体数
- BP神经网络识别语音特征
- bp神经网络手写字符汉字识别
- MPI并行编程技术实现对粒子群算法并
- 毕业设计BP神经网络方法对车牌照字符
- 神经网络office插件NNX
- 数学建模获奖论文分类整理:粒子群
- 粒子群算法及应用_纪震著.pdf
- 《粒子群优化算法》 李丽 牛奔著
- 基于粒子群的K均值聚类算法
- 灰狼优化算法和粒子群优化算法比较
- 车牌识别-opencv
- 基于BP神经网络的数字识别系统源代码
- BP神经网络分类算法
- BP神经网络的车牌字符识别的研究
- 粒子群算法及应用
- 《粒子群算法及其工业应用-钱锋著
- 粒子群优化算法的RBF模型,做预测
评论
共有 条评论