本帖最后由 万俟辰怀 于 2020-4-30 15:48 编辑
数据是13维,即13个解释变量,和一个被解释变量
BP网络采用13-11-1的结构,代码如下:
%% 该代码为基于PSO和BP网络的预测
%% 清空环境
clc;
clear all;
close all;
%读取数据
p = csvread('C:\Users\DELL\Desktop\神经网络\code\explanatory.csv',1,0,[1,0,51,12]);
t = csvread('C:\Users\DELL\Desktop\神经网络\code\explained.csv',1,0,[1,0,51,0]);
p=p';
t=t';
%节点个数
inputnum=13;
hiddennum=11;
outputnum=1;
Samnum=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum;
%训练数据和预测数据
[input_train,input_val,input_test] =dividerand(p,0.7,0.15,0.15);
[output_train,output_val,output_test] =dividerand(t,0.7,0.15,0.15);
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train,0,1);
[outputn,outputps]=mapminmax(output_train,0,1);
%构建网络
net=newff(inputn,outputn,hiddennum,{'tansig','purelin'});
% 参数初始化
%粒子群算法中的两个参数,个体和社会的学习因子,加速度常数
c1 = 2.05;
c2 = 2.05;
c=c1+c2;
fai=2/abs((2-c-sqrt(c^2-4*c)));