Why the neural network creates the same output values for the different inputs?

2 次查看(过去 30 天)
I created a neural network model as you can see the model code. Firstly I normalized the data between 0 and 1, then I divided the input and target data for test and validation. I see that the all validation output values (y) is the same. I checked the normalized validation input data, it doesn't contain an error.
(Xtn: Normalized input test values, Xvn: Normalized input validation values, Ytn: Normalized target test values, Y:Normalized validation output values, Ye: Denormalized validation output values)
Can you help me?
Data=xlsread('Data31.10.xlsx'); Input=Data(:,4:12); Target=Data(:,end);
I=Input';
T=Target';
A=minmax(I); Min=A(:,1); Max=A(:,2); Fark=Max-Min; In=(I-Min)./Fark;
Tmin=min(T); Tmax=max(T);
nofdata=size(In,2);
ntd=round(nofdata*trainingrate);
Xtn=In(:,1:ntd);
Xvn=In(:, ntd+1:end);
Yt=T(1:ntd);
Yv=T(ntd+1:end);
Ytn=(Yt-Tmin)./(Tmax-Tmin);
net=newff(Xtn, Ytn, [n1,n2], {'logsig', 'logsig', 'logsig'}, 'trainlm');
net=train(net,Xtn,Ytn);
y=sim(net,Xvn);
ye=y*(Tmax-Tmin)+Tmin;
  3 个评论

请先登录,再进行评论。

回答(1 个)

Greg Heath
Greg Heath 2018-11-7
Where is your training data?
Typically, the data division is
train/val/test = 70%/15%/15%
Hope this helps,
Greg

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by