运行BP神经网络预测误差大
2015-12-14 09:28
465 查看
转载自
数据为66个,17个指标输入,1个输出。
数据长短不一,最小的个位数,最大的9位数。运行下列代码后误差非常大,求大神们给减小误差的指导方向。
matlab代码如下:
clc
clear
%load
data1 input output
load matlab3 input output
P=input(1:60,:)';
T=output(1:60,:)';
input_test=input(1:60,:)';
output_test=output(1:60,:)';
%训练数据归一化
[inputn,inputs]=mapminmax(P);
[outputn,outputs]=mapminmax(T);
% 创建一个新的前向神经网络
net=newff(minmax(P),[17,1],{'tansig','purelin'},'trainbr');
% 当前输入层权值和阈值
inputWeights=net.IW{1,1};
inputbias=net.b{1};
% 当前网络层权值和阈值
layerWeights=net.LW{2,1};
layerbias=net.b{2};
% 设置训练参数
net.trainParam.show = 100;
net.trainParam.lr = 0.1;
net.trainParam.mc = 0.9;
net.trainParam.epochs = 6000;
net.trainParam.goal = 1e-3;
% 调用 TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,P,T);
%BP神经网络的预测
%预测数据归一化
%inputn_test=mapminmax('apply',input_test,inputs);
%BP神经网络预测输出
an=sim(net,P);
%输出结果反归一化
BPoutput=mapminmax('reverse',an,outputs);
%输出训练后的权值和阈值
iw1=net.iw(1);
b1=net.b(1);
iw2=net.lw(2);
ba=net.b(2);
%画图
%网络预测结果图形
figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*')
legend('预测输出','期望输出')
title('BP神经网络预测输出')
ylabel('输出')
xlabel('样本')
%网络预测误差图形
error=output_test-BPoutput;
figure(2)
plot(error,'-*')
title('BP神经网络预测误差')
ylabel('误差 error')
xlabel('样本')
%}
数据为66个,17个指标输入,1个输出。
数据长短不一,最小的个位数,最大的9位数。运行下列代码后误差非常大,求大神们给减小误差的指导方向。
matlab代码如下:
clc
clear
%load
data1 input output
load matlab3 input output
P=input(1:60,:)';
T=output(1:60,:)';
input_test=input(1:60,:)';
output_test=output(1:60,:)';
%训练数据归一化
[inputn,inputs]=mapminmax(P);
[outputn,outputs]=mapminmax(T);
% 创建一个新的前向神经网络
net=newff(minmax(P),[17,1],{'tansig','purelin'},'trainbr');
% 当前输入层权值和阈值
inputWeights=net.IW{1,1};
inputbias=net.b{1};
% 当前网络层权值和阈值
layerWeights=net.LW{2,1};
layerbias=net.b{2};
% 设置训练参数
net.trainParam.show = 100;
net.trainParam.lr = 0.1;
net.trainParam.mc = 0.9;
net.trainParam.epochs = 6000;
net.trainParam.goal = 1e-3;
% 调用 TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,P,T);
%BP神经网络的预测
%预测数据归一化
%inputn_test=mapminmax('apply',input_test,inputs);
%BP神经网络预测输出
an=sim(net,P);
%输出结果反归一化
BPoutput=mapminmax('reverse',an,outputs);
%输出训练后的权值和阈值
iw1=net.iw(1);
b1=net.b(1);
iw2=net.lw(2);
ba=net.b(2);
%画图
%网络预测结果图形
figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*')
legend('预测输出','期望输出')
title('BP神经网络预测输出')
ylabel('输出')
xlabel('样本')
%网络预测误差图形
error=output_test-BPoutput;
figure(2)
plot(error,'-*')
title('BP神经网络预测误差')
ylabel('误差 error')
xlabel('样本')
%}
相关文章推荐
- 解析在main函数之前调用函数以及对设计的作用详解
- java和matlab画多边形闭合折线图示例讲解
- C#调用Matlab生成的dll方法的详细说明
- 从java中调用matlab详细介绍
- bp神经网络及matlab实现
- 稀疏自动编码器 (Sparse Autoencoder)
- VC++与Matlab混合编程的快速实现
- Matlab 矩阵运算
- matlab与opencv部分函数的对照
- matlab神经网络工具箱创建神经网络
- 基于神经网络的预测模型
- Matlab
- MATLAB 入门教程
- matlab函数_连通区域
- MATLAB中函数模式和命令模式的区别
- MATLAB 添加自定义的模块到simulink库浏览器
- MATLAB for Mac使编辑器支持中文
- [转]matlab中plot用法
- 初学数模-MATLAB Quick Start! Part I
- 初学数模-MATLAB Quick Start! Part II