- NMSE = mse(trnopdb-net(trnipdb))/MSE00
Rsq from NMSE in NN
3 views (last 30 days)
I am trying to find out the best number of hidden neurons for a network. I am training the network in a loop with different number of hidden neurons and storing the value of NMSE and Rsq for each iteration.
My ip database size is 20 x 714 and op database is 3 x 714. I am dividing the dataset as 70% training and 15% for validation and testing each.
I have computed NMSE and Rsq in the usual manner,
MSE00 = mean(var(trnopdb',1))
NMSE = mse(trnopdb'-net(trnipdb'))/MSE00
Rsq = 1 - NMSE
Now I have the following queries,
- The value of Rsq is negative. It does not lie between 0 and 1. What am I doing wrong?
- Also, matlab nnfit displays Rtraining, Rvalidation, Rtesting and Rall as positive values. So what is the relation between Rsq and the R values?
- Is it possible to extract the R values from the network info?
- Should I consider Rtesting as the network performance criteria or the other R values?
I am sure there might be lots of info about these trivial questions. Nonetheless I seem to have these doubts. So any help would be great. Thanks in advance.
Greg Heath on 1 Apr 2019
Edited: Greg Heath on 1 Apr 2019
i.e., NO TRANSPOSES
2. Rsq = R^2
3. Yes. Use separate calculations for the training, validation and training subsets.
4. I typically make 10 or more designs differing by random number initializations. Then I use the summary stats of NMSE.
Hope this helps
Thank you for formally accepting my answer