Neural Network code
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have written a code in Matlab for neural network training and testing. But, it is not working as expected. I am training the network with input and target and testing it with test input and plotting the response against the actual response. mse is too high. The value of mse that I am getting is 15.4. Is there any mistake in the code? Can you take a look at the code and help me out !!
load a1.txt ( Input )
load a4.txt (Target)
load b1.txt (Test input)
load b4.txt (actual output)
P=[a1(1:2986,1)];
T=[a4(1:2986,1)];
a=[b1(1:2986,1)];
s=[b4(1:2986,1)];
[pn1,PS] = mapminmax(P');
[tn1,TS] = mapminmax(T');
[an1,AS]= mapminmax(a');
[sn1,SS]= mapminmax(s');
netnew1=newfit(pn1,tn1,[]);
[netnew1,tr1]=train (netnew1,pn1,tn1);
y2=sim(netnew1,an1);
y2_again = mapminmax('reverse',y2',TS);
plot(y2_again,'r');
hold;
plot(s);
d=(y2_again-s).^2;
mse1=mean(d);
Thanks & Regards,
Haritha Srinivasan
0 commentaires
Réponse acceptée
Lucas García
le 6 Oct 2011
Your code is basically creating a network with only one layer of neurons. With newfit this means that the network is trying to find the line that best fits the network.
However, your data might have a couple of nonlinearities (it doesn't necessarily have to be linear). Introducing a second layer of neurons will help to capture those situations. To do so, pick a number of neurons for your hidden layer (this depends on the complexity of your data). For example:
n = 25;
netnew1=newfit(pn1,tn1,n);
Now the response of your network should have been improved.
0 commentaires
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Sequence and Numeric Feature Data Workflows dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!