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
norms. You could find more
documentation at the package website:
The Probabilist neural network ist the main object used
by the four functions. It is a
list with several
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
k: The number of variables.
n: The number of observations.
sigma: The smoothing parameter.
listof observed categories.
listof 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.
Specht D.F. (1990). Probabilistic neural networks. Neural networks, 3(1):109-118.
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("norms-trainingset", "pnn") ## Not run: demo("small-trainingset", "pnn")
Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.