[R] Is input pre-processing needed for nnet module?

Prof Brian Ripley ripley at stats.ox.ac.uk
Wed Jun 16 17:53:26 CEST 2004

If you read the reference on the help page, you will find out the answer.
After all, as the DESCRIPTION says, this is support software for a book.

On Wed, 16 Jun 2004, Agostino.Manzato at osmer.fvg.it wrote:

> Hi,
> I used the nnet R module to classify my data using Neural Networks:
> nnet(input_matrix, obs_vect, size=h, linout=FALSE, entropy=TRUE)
> I used as NN input my "raw" data. 
> After that I tried to use the normalized input data (with z-scores,
> i.e. mean=0 and std=1) and have found NNs with a little smaller 
> Cross Entropy Error.
> My question is: 
> Is it *wrong* to feed nnet directly with the raw input data?
> I found in
> http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html
> that it depends on the minimization training algorithm:
> - "Steepest descent is very sensitive to scaling.
> - Quasi-Newton and conjugate gradient methods... therefore are scale 
> sensitive. However,... are less scale sensitive than pure gradient
> descent.
> - Newton-Raphson and Gauss-Newton, if implemented correctly, are
> theoretically invariant under scale changes..."
> I know that nnet is a Quasi-Newton algorithm, so it make sense 
> that I found a small improvement using the normalized data.
> Can someone confirme if it is really so?

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-help mailing list