Probabilistic neural network.
The package PNN implements the algorithm proposed by Specht (1990). It is written in the statistical langage R. It solves a common problem in automatic learning. Knowing a set of observations described by a vector of quantitative variables, we classify them in a given number of groups. Then, the algorithm is trained with this datasets and should guess afterwards the group of any new observation. This neural network has the main advantage to begin generalization instantaneously even with a small set of known observations.
The package PNN exports four functions. These funtions are documented with examples and provided with unit tests:
learn
: Create a
new Probabilist neural network with a new training set or
update an existing one with new known observations.
smooth
: Set the smoothing parameter.
If the value is not known, a genetic algorithm search the
best value.
perf
: Compute the
performance of the Probabilist neural network.
guess
: Guess the category of a new
observation.
To help the use of PNN, the package contains a
dataset norms
. You could find more
documentation at the package website:
http://flow.chasset.net/pnn/.
The Probabilist neural network ist the main object used
by the four functions. It is a list
with several
description fields:
model
: A name
of the model ("Probabilistic neural network" by default).
set
: The raw training set.
category.column
: See above.
categories
: The categories found in the
category.column
field.
k
: The number
of variables.
n
: The number of
observations.
sigma
: The smoothing
parameter.
observed
: A list
of
observed categories.
guessed
: A list
of guessed categories.
success
: The number
of times that the neural network chooses the right
category.
fails
: The number of times that
the neural network fails to guess the right category.
success_rate
: The rate of sucess over all
observations in training set.
bic
: It is an
adapted version of the Bayesian Information Criterion
helping to compare different version of Probabilist
neural networks.
PierreOlivier Chasset
Specht D.F. (1990). Probabilistic neural networks. Neural networks, 3(1):109118.
learn
, smooth
,
perf
, guess
,
norms
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  library(pnn)
data(norms)
# The long way
pnn < learn(norms)
pnn < smooth(pnn, sigma=0.9)
pnn$sigma
## Not run: pnn < perf(pnn) # Optional
## Not run: pnn$success_rate # Optional
guess(pnn, c(1,1))
guess(pnn, c(2,1))
guess(pnn, c(1.5,1))
# The short way
guess(smooth(learn(norms), sigma=0.8), c(1,1))
guess(smooth(learn(norms), sigma=0.8), c(2,1))
guess(smooth(learn(norms), sigma=0.8), c(1.5,1))
# Demonstrations
## Not run: demo("normstrainingset", "pnn")
## Not run: demo("smalltrainingset", "pnn")

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.