- 积分
- 2892
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-7-15
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 无敌泡 于 2015-6-9 11:43 编辑
把全部代码贴上来,供初学者使用
- %% 清空环境变量
- clc
- clear
- %% 训练数据预测数据提取及归一化
- %下载输入输出数据
- load ndata input output
- input=input
- output=output
- %从1到2000间随机排序
- k=rand(1,3006);
- [m,n]=sort(k);
- %找出训练数据和预测数据
- input_train=input(n(1:2600),:)';
- output_train=output(n(1:2600),:)';
- input_test=input(n(2601:3006),:)';
- output_test=output(n(2601:3006),:)';
- %选连样本输入输出数据归一化
- [inputn,inputps]=mapminmax(input_train);
- [outputn,outputps]=mapminmax(output_train);
- %% BP网络训练
- % %初始化网络结构
- % test from 4-10
- net=newff(inputn,outputn,5);
- net.trainParam.epochs=2000;%训练步数
- net.trainParam.lr=0.1;%学习速率
- net.trainParam.goal=0.0002;%目标最小误差
- %网络训练
- 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,':or','linewidth',2)
- hold on
- plot(output_test,'-*');
- legend('预测API值','实际API值')
- title('BP网络预测输出','fontsize',12)
- ylabel('函数输出','fontsize',12)
- xlabel('样本','fontsize',12)
- %预测误差
- error=BPoutput-output_test;
- xdwc=(abs(error)./output_test)
- figure(2)
- plot(abs(error)./output_test,'-*')
- title('BP网络预测相对误差','fontsize',12)
- ylabel('相对误差','fontsize',12)
- xlabel('样本','fontsize',12)
- figure(3)
- plot(abs(output_test-BPoutput)./BPoutput,'-*');
- title('神经网络预测误差百分比')
- errorsum=sum(abs(error));
复制代码
|
|