首页 > 代码库 > [matlab]bp神经网络工具箱学习笔记
[matlab]bp神经网络工具箱学习笔记
基本就三个函数:
newff():创建一个bp神经网络
train():训练函数
sim():仿真函数
同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全
工具箱:Neural net fitting
textread使用方法:http://blog.sina.com.cn/s/blog_9e67285801010bju.html
ex1.
clear; clc;%注意P矩阵,matlab默认将一列作为一个输入P=[0.5152 0.8173 1.0000 ; 0.8173 1.0000 0.7308; 1.0000 0.7308 0.1390; 0.7308 0.1390 0.1087; 0.1390 0.1087 0.3520; 0.1087 0.3520 0.0000;]‘;%以第四个月的销售量归一化处理后作为目标向量T=[0.7308 0.1390 0.1087 0.3520 0.0000 0.3761];%创建一个BP神经网络,每一个输入向量的取值范围为[0 ,1],隐含层有5个神经元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,训练函数为梯度下降函数,即标准学习算法net=newff([0 1;0 1;0 1],[5,1],{‘tansig‘,‘logsig‘},‘traingd‘);%minmax(P)net.trainParam.epochs=1500;%最大迭代次数.net.trainParam.goal=0.01; %训练的误差精度%设置学习速率为0.1LP.lr=0.1;net=train(net,P,T); a=[0.1;0.2;0.3];a=premnmx(a);b=sim(net,a);b=postmnmx(b,0,1);b
ex2.
P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2;9.6 10.3 9 10.3 10.1 10 9.6 9 9.6 9.2 9.5 9 9.5 9.7;3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5 3.4 3.1 3.6 3.45;2.15 2.2 2.2 2.2 2 2.15 2.14 2.1 2.1 2.1 2.15 2 2.1 2.15;140 120 140 150 80 130 130 100 130 140 115 80 90 130;2.8 3.4 3.5 2.8 1.5 3.2 3.5 1.8 3.5 2.5 2.8 2.2 2.7 4.6;11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11 11.9 13 11.1 10.85;50 70 50 80 50 60 65 40 65 50 50 50 70 70];T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24 2.24 2.2 2.2 2.35];[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);%创建网络net=newff(minmax(P),[8,6,1],{‘tansig‘,‘tansig‘,‘purelin‘},‘trainlm‘);%此时的minmax函数是正确的,minmax是在每一行取最大最小值,而这也是有意义的%设置训练次数net.trainParam.epochs = 5000;%设置收敛误差net.trainParam.goal=0.0000001;%训练网络[net,tr]=train(net,p1,t1);%TRAINLM, Epoch 0/5000, MSE 0.533351/1e-007, Gradient 18.9079/1e-010%TRAINLM, Epoch 24/5000, MSE 8.81926e-008/1e-007, Gradient 0.0022922/1e-010%TRAINLM, Performance goal met. %输入数据a=[3.0;9.3;3.3;2.05;100;2.8;11.2;50];%将输入数据归一化a=premnmx(a);%放入到网络输出数据b=sim(net,a);%将得到的数据反归一化得到预测数据c=postmnmx(b,mint,maxt);c
ex3.
close all;clear;clc;%读取训练数据[f1,f2,f3,f4,class] = textread(‘Train.txt‘,‘%f%f%f%f%d‘,75,‘delimiter‘,‘,‘);%特征值归一化[input,minI,maxI] = premnmx( [f1,f2,f3,f4 ]‘) ;%构造输出矩阵s=length(class) ;output=zeros(s,3) ;for i=1:s output(i,class(i)) = 1 ;end%output=class‘;%创建神经网络net = newff( minmax(input),[10 3],{ ‘logsig‘,‘purelin‘ },‘traingdx‘ ); %设置训练参数net.trainparam.show=50 ;net.trainparam.epochs=500 ;net.trainparam.goal=0.01 ;net.trainParam.lr=0.01 ;%开始训练net=train(net,input,output‘) ; %读取测试数据[t1 t2 t3 t4 c]=textread(‘Test.txt‘,‘%f%f%f%f%d‘,75,‘delimiter‘,‘,‘);%测试数据归一化testInput=tramnmx([t1,t2,t3,t4]‘,minI,maxI);%仿真Y = sim(net,testInput)%统计识别正确率[s1,s2]=size( Y ) ;hitNum=0 ;for i=1:s2 [m,Index]=max( Y(:,i)); if(Index==c(i)) hitNum=hitNum+1; endendsprintf(‘识别率是 %3.3f%%‘,100*hitNum/s2)
拟合曲线:
[matlab]bp神经网络工具箱学习笔记
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。