Getting started with the RSNNS package
The Stuttgart Neural Network Simulator (SNNS) is a library containing many standard implementations of neural networks. This package wraps the SNNS functionality to make it available from within R.
If you have problems using RSNNS, find a bug, or have suggestions, please do not write to the general R lists or contact the authors of the original SNNS software. Instead, you should: File an issue on github (bugs/suggestions), Ask your question on Stackoverflow under the tag RSNNS, or write to the mailing list (firstname.lastname@example.org). If all that fails, then you can also contact the maintainer directly by email.
If you use the package, please cite the following work in your publications:
Bergmeir, C. and Ben<U+00ED>tez, J.M. (2012), Neural Networks in R Using the Stuttgart Neural Network Simulator: RSNNS. Journal of Statistical Software, 46(7), 1-26. http://www.jstatsoft.org/v46/i07/
The package has a hierarchical architecture with three levels:
RSNNS high-level api (rsnns)
RSNNS low-level api (SnnsR)
The api of our C++ port of SNNS (SnnsCLib)
Many demos for using both low-level and high-level api of the package are available. To get a list of them, type:
It is a good idea to start with the demos of the high-level api (which is much more convenient to use). E.g., to access the iris classification demo type:
or for the laser regression demo type:
As the high-level api is already quite powerful and flexible, you'll most
probably normally end up using one of the functions:
assoz, with some pre- and postprocessing. These S3 classes are
all subclasses of
You might also want to have a look at the original SNNS program and the SNNS User Manual 4.2, especially pp 67-87 for explications on all the parameters of the learning functions, and pp 145-215 for detailed (theoretical) explications of the methods and advice on their use. And, there is also the javaNNS, the sucessor of SNNS from the original authors. It makes the C core functionality available from a Java GUI.
Demos ending with "SnnsR" show the use of the low-level api. If you want to do special things with neural networks that are currently not implemented in the high-level api, you can see in this demos how to do it. Many demos are present both as high-level and low-level versions.
The low-level api consists mainly of the class
which internally holds a pointer to a C++ object of the class
SnnsCLib, i.e., an instance of the SNNS kernel. The class furthermore
implements a calling mechanism for methods of the
SnnsCLib object, so
that they can be called conveniently using the "$"-operator. This calling
mechanism also allows for transparent masking of methods or extending the
kernel with new methods from within R. See
$,SnnsR-method. R-functions that are added by RSNNS to the
kernel are documented in this manual under topics beginning with
SnnsRObject$. Documentation of the original SNNS kernel user interface
functions can be found in the SNNS User Manual 4.2 pp 290-314. A call to,
e.g., the SNNS kernel function
krui_getNoOfUnits(...) can be done with
SnnsRObject$getNoOfUnits(...). However, a few functions were excluded
from the wrapping for various reasons. Fur more details and other known
issues see the file /inst/doc/KnownIssues.
Another nice tool is the
NeuralNetTools package, that can be used to
visualize and analyse the networks generated with RSNNS.
Most of the example data included in SNNS is also present in this package, see
A comprehensive report with many examples showing the usage of RSNNS, developed by Seymour Shlien, is available here:
Bergmeir, C. and Ben<U+00ED>tez, J.M. (2012), 'Neural Networks in R Using the Stuttgart Neural Network Simulator: RSNNS', Journal of Statistical Software, 46(7), 1-26. http://www.jstatsoft.org/v46/i07/
General neural network literature:
Bishop, C. M. (2003), Neural networks for pattern recognition, University Press, Oxford.
Haykin, S. S. (1999), Neural networks :a comprehensive foundation, Prentice Hall, Upper Saddle River, NJ.
Kriesel, D. ( 2007 ), A Brief Introduction to Neural Networks. http://www.dkriesel.com
Ripley, B. D. (2007), Pattern recognition and neural networks, Cambridge University Press, Cambridge.
Rojas, R. (1996), Neural networks :a systematic introduction, Springer-Verlag, Berlin.
Rumelhart, D. E.; Clelland, J. L. M. & Group, P. R. (1986), Parallel distributed processing :explorations in the microstructure of cognition, Mit, Cambridge, MA etc..
Literature on the original SNNS software:
Zell, A. et al. (1998), 'SNNS Stuttgart Neural Network Simulator User Manual, Version 4.2', IPVR, University of Stuttgart and WSI, University of T<U+00FC>bingen. http://www.ra.cs.uni-tuebingen.de/SNNS/welcome.html
javaNNS, the sucessor of the original SNNS with a Java GUI: http://www.ra.cs.uni-tuebingen.de/software/JavaNNS
Zell, A. (1994), Simulation Neuronaler Netze, Addison-Wesley.
A function to plot networks from the