MATLAB神经网络工具箱(代码简单实现)

根据网上搜素的关于MATLAB神经网络工具箱的GUI操作,结合书上的代码来跑了一遍,发现代码是引用了神经网络工具箱来做工作

%% 该代码为基于BP神经网络的预测算
%% 清空环境变量
clc
clear

%% 训练数据预测数据提取及归一化
%下载输入输出数据
load data input output

%从12000间随机排序
k=rand(1,2000);
[m,n]=sort(k);

%找出训练数据和预测数据
input_train=input(n(1:1900),:)';
output_train=output(n(1:1900));
input_test=input(n(1901:2000),:)';
output_test=output(n(1901:2000));

%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);

%% BP网络训练
% %初始化网络结构
net=newff(inputn,outputn,5);

net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.00004;

%网络训练
net=train(net,inputn,outputn);

%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);

%网络预测输出
an=sim(net,inputn_test);

%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);

%% 结果分析

figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*');
legend('预测输出','期望输出')
title('BP网络预测输出','fontsize',12)
ylabel('函数输出','fontsize',12)
xlabel('样本','fontsize',12)
%预测误差
error=BPoutput-output_test;


figure(2)
plot(error,'-*')
title('BP网络预测误差','fontsize',12)
ylabel('误差','fontsize',12)
xlabel('样本','fontsize',12)

figure(3)
plot((output_test-BPoutput)./BPoutput,'-*');
title('神经网络预测误差百分比')

errorsum=sum(abs(error));

newff:BP神经网络参数设置函数,构建了一个带参数神经网络
net=newff(P,T,S,TF,BTF,BLF,PL,IPF,OPF,DDF)
P:输入数据矩阵
T:输出数据矩阵
S:隐含层节点数
TF:节点传递函数,包括硬限幅传递函数hardlim、对称硬限幅传递函数hardlims、现象传递函数purelin、正切S型传递函数tansig、对数S型传递函数logsig。
BTF:训练函数
BLF:网络学习函数
PF:性能分析函数
IPF:输入处理函数
OPF:输出处理函数
DDF:验证数据划分函数

trian:BP神经网络训练函数
[net,tr]=train(NET,X,T,Pi,Ai)
NET:待训练网络
X:输入数据矩阵
T:输出数据矩阵
Pi:初始化输入层条件
Ai:初始化输出层条件
net:训练好的网络
tr:训练过程记录

sim:BP神经网络预测函数
y=sim(net,x)
net:训练好的网络
x:输入数据
y:网络预测数据

猜你喜欢

转载自blog.csdn.net/qq_24182661/article/details/81254373