BP非线性回归时,在训练集上效果很好,但是在预测集上效果很差,试过L-M,贝叶斯正则化,动量梯度下降法,提前停止等方法,但是没有效果。想用dropout的方看是否能解决过拟合的问题,但是不知道要加在哪,代码怎么具体实现。希望大佬帮忙解答一下。想在matlab上实现,万分感谢。
input=[input1;input2];
output=[output1;output2];
%从1到1500之间随机排序
k=rand(1,640);
[m,n]=sort(k);
%找出训练数据和预测数据
input_train=input1(n(1:540),:)';
output_train=output1(n(1:540),:)';
input_test=input2(n(541:640),:)';
output_test=output2(n(541:640),:)';
%选择样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%%BP网络训练
%%初始化网络结构
net=newff(inputn,outputn,10,{'tansig','purelin'},'trainbr');
net.trainParam.epochs=50;
net.trainParam.lr=0.01;
net.trainParam.goal=0.00001;
%网络训练
net=train(net,inputn,outputn);
%%BP网络训练
%%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);%%结果分析
https://blog.csdn.net/GreatXiang888/article/details/99310164
同问
我也不会