1. Unlike the MLP classifier (patternnet), the RBF classifier (newrb) is automatically trained, without trn/val/tst data division, when it is created. Therefore a. Data division (0.7,0.15,0.15 ?)must be performed, explicitly, before the call of newrb. b. Only use training data in the call of newrb. c. Do not use train. d. Choose the best of multiple designs using the val data. e. Obtain an UNBIASED estimate of performance on unseen data using the tst data
2. The input dimension of I = 769 is at least an order of magnitude too large for a practical net. It is a prime number, so it is not just an unfolding (image(:)). So my 1st question is, how was the input obtained?
3. The number of examples, N = 54, can at most, define a 53-D space. So there, needs to be a drastic dimensionality reduction.
4. If you are considering PCA for dimensionality reduction feature extraction, that may not be the best choice for classification. I recommend using PLS to maximize class separation instead of PCA which maximizes the class mixture spread.
5. After the dimensionality reduction, transform the inputs via zscore or mapstd to have zero-mean and unit-variance.
6. For c classes, the target should consist of columns from the c-dimensional unit matrix eye(c) (Do you have c=4?).
7. Find the optimal spread via trial and error. Considering the zscore input normalization, start with spread = 1 and change it by factors of 2 to narrow the search range (e.g.,[ ...,0.25, 0.5,1,2,4,...]
8. For an I-H-c node topology, try the practical training goal
MSEgoal = 0.01*Ndof*mean(var(target'))/Ntrneq
where
Ntrneq = Ntrn*c
Ndof = Ntrneq - Nw
Nw = (I*H+1)+H+1)*c
See some of my posted examples in the NEWSGROUP and ANSWERS. Search on
Hope this helps.
Thank you for formally accepting my answer
Greg
Best Answer