全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1146 0
2020-01-22
小白一枚,想用matlab实现多因素影响的bp神经网络预测,在网上找了代码带入了自己的数据,测试数据都比训练数据大,然后得出的结果都接近训练值的最大值非常不准确,这个问题怎么解决呀?代码如下
x_train=[25321 28892 32570 35648 38763 39889 43052 46642 50146;
15973 18046 20032 21667 22981 26319 28537 30729 32977;
441.75 450.10 458.00 470.60 485.32 496.71 508.00 530.80 561.00];
y_train=[93.09 102.00 101.10 120.60 131.49 145.80 158.14 171.20 182.80];
%训练集归一化
[x_train_regular,x_train_maxmin] = mapminmax(x_train);
[y_train_regular,y_train_maxmin] = mapminmax(y_train);
%创建网络
rand('state',102);
net=newff(x_train_regular,y_train_regular,6,{'tansig','tansig','purelin'},'trainlm');
%设置训练次数
net.trainParam.epochs = 5000;
%设置收敛误差
net.trainParam.goal=0.0001;
%训练网络
[net,tr]=train(net,x_train_regular,y_train_regular);
%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.

%输入数据
x_test=[52700.42 55663.04 58625.66 61588.28 64550.9 67513.52 70476.14;
34787.81 36916.58 39045.35 41174.12 43302.89 45431.66 47560.43;
559.653 573.74 587.827 601.914 616.001 630.088 644.175];
%将输入数据归一化
x_test_regular = mapminmax('apply',x_test,x_train_maxmin);
%放入到网络输出数据
y_test_regular=sim(net,x_test_regular);
%将得到的数据反归一化得到预测数据
y_test_regular=mapminmax('reverse',y_test_regular,y_train_maxmin);
y_test_regular

输出结果均是182左右。。明显不对

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群