PNN

Share:

Description

Probabilistic neural network.

Details

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.

Author(s)

Pierre-Olivier Chasset

References

Specht D.F. (1990). Probabilistic neural networks. Neural networks, 3(1):109-118.

See Also

learn, smooth, perf, guess, norms

Examples

 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.