matlab bp神经网络的简单小例子

因为要写论文做实验,所以自己研究了一些关于神经网络的算法,用matlab做的一些小测试,使用的是《matlab神经网络43个案例分析》这本书,感觉还不错,分享一下。

使用每行的前4个数据预测第5个数据的值。

资源地址    http://download.csdn.net/detail/u012749168/9640849

<span style="font-family: Arial, Helvetica, sans-serif;">%读取数据,读取之前必须先加入到matlab中去</span>
xlsfile='ceshi.xlsx'
%组织训练数据的输入和输出,输入时2880个4维数据,输出是2880个1维数据
[input1]=xlsread(xlsfile,1,'B1:E2880');
[output1]=xlsread(xlsfile,1,'A1:A2880');
%测试数据的输入时95个4维输入和95个1维输出
[input2]=xlsread(xlsfile,1,'B2881:E2976');
[output2]=xlsread(xlsfile,1,'A2881:A2976');
%训练数据的归一化,输入的数据样本是一行是一个,归一化的时候是所有样本中同维度点的数据归一化,matlab归一化行,因此要转置一下inputs是归一化后的记录参数,为
%了保持一致性,我们后面还要对测试样本进行同条件的归一化以及反归一化的复原操作
[inputn,inputps]=mapminmax(input1');
[outputn,outputps]=mapminmax(output1');
%创建BP神经网络,把优化的参数都给列出来了
net=newff(inputn,outputn,8);%8个隐含层
net.trainParam.epochs=1000;%迭代次数为100次
net.trainParam.lr=0.1;%学习速率为0.1
net.trainParam.goal=0.001%目标误差
%训练神经网络
net=train(net,inputn,outputn);
%测试输入数据归一化
inputn_test=mapminmax('apply',input2',inputps);
%仿真
an=sim(net,inputn_test);
%对仿真输出值进行反归一化操作
BPoutput=mapminmax('reverse',an,outputps);
%画出实际输出和预测输出的图像,画在同一个框中
figure(1)
plot(BPoutput,':og')
hold on 
plot(output2,'-*');
%算一下误差率
error=BPoutput-output2'
mean(abs((error)./BPoutput))

有什么问题大家可以留言一起讨论

  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值