org.encog.neural.pnn

## Class BasicPNN

- java.lang.Object
- - org.encog.ml.BasicML
  - - org.encog.neural.pnn.AbstractPNN
    - - org.encog.neural.pnn.BasicPNN

- All Implemented Interfaces:
    Serializable, MLClassification, MLError, MLInput, MLInputOutput, MLMethod, MLOutput, MLProperties, MLRegression

      public class BasicPNN
      extends AbstractPNN
      implements MLRegression, MLError, MLClassification

  This class implements either a: Probabilistic Neural Network (PNN) General Regression Neural Network (GRNN) To use a PNN specify an output mode of classification, to make use of a GRNN specify either an output mode of regression or un-supervised autoassociation. The PNN/GRNN networks are potentially very useful. They share some similarities with RBF-neural networks and also the Support Vector Machine (SVM). These network types directly support the use of classification. The following book was very helpful in implementing PNN/GRNN's in Encog. Advanced Algorithms for Neural Networks: A C++ Sourcebook by Timothy Masters, PhD (http://www.timothymasters.info/) John Wiley & Sons Inc (Computers); April 3, 1995, ISBN: 0471105880
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BasicPNN(PNNKernelType kernel, PNNOutputMode outmodel, int inputCount, int outputCount)` Construct a BasicPNN network.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `calculateError(MLDataSet data)` Calculate the error of the ML method, given a dataset.
    `int` | `classify(MLData input)` Classify the input into a group.
    `MLData` | `compute(MLData input)` Compute the output from this network.
    `int[]` | `getCountPer()`
    `double[]` | `getPriors()`
    `BasicMLDataSet` | `getSamples()`
    `double[]` | `getSigma()`
    `void` | `setSamples(BasicMLDataSet samples)`
    `void` | `updateProperties()` Update any objeccts when a property changes.

    - ### Methods inherited from class org.encog.neural.pnn.AbstractPNN

      `getDeriv, getDeriv2, getError, getExclude, getInputCount, getKernel, getOutputCount, getOutputMode, isSeparateClass, isTrained, resetConfusion, setError, setExclude, setSeparateClass, setTrained`

    - ### Methods inherited from class org.encog.ml.BasicML

      `getProperties, getPropertyDouble, getPropertyLong, getPropertyString, setProperty, setProperty, setProperty`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.encog.ml.MLInput

      `getInputCount`

    - ### Methods inherited from interface org.encog.ml.MLOutput

      `getOutputCount`

- - ### Constructor Detail

    - #### BasicPNN

          public BasicPNN(PNNKernelType kernel,
                  PNNOutputMode outmodel,
                  int inputCount,
                  int outputCount)

      Construct a BasicPNN network.
      Parameters:
        `kernel` - The kernel to use.
        `outmodel` - The output model for this network.
        `inputCount` - The number of inputs in this network.
        `outputCount` - The number of outputs in this network.

  - ### Method Detail

    - #### compute

          public MLData compute(MLData input)

      Compute the output from this network.
      Specified by:
        `compute` in interface `MLRegression`
      Specified by:
        `compute` in class `AbstractPNN`
      Parameters:
        `input` - The input to the network.
      Returns:
        The output from the network.

    - #### getCountPer

          public int[] getCountPer()

      Returns:
        the countPer

    - #### getPriors

          public double[] getPriors()

      Returns:
        the priors

    - #### getSamples

          public BasicMLDataSet getSamples()

      Returns:
        the samples

    - #### getSigma

          public double[] getSigma()

      Returns:
        the sigma

    - #### setSamples

          public void setSamples(BasicMLDataSet samples)

      Parameters:
        `samples` - the samples to set

    - #### updateProperties

          public void updateProperties()

      Update any objeccts when a property changes.
      Specified by:
        `updateProperties` in interface `MLProperties`
      Specified by:
        `updateProperties` in class `BasicML`

    - #### calculateError

          public double calculateError(MLDataSet data)

      Calculate the error of the ML method, given a dataset.
      Specified by:
        `calculateError` in interface `MLError`
      Parameters:
        `data` - The dataset.
      Returns:
        The error.

    - #### classify

          public int classify(MLData input)

      Classify the input into a group.
      Specified by:
        `classify` in interface `MLClassification`
      Parameters:
        `input` - The input data to classify.
      Returns:
        The group that the data was classified into.

Copyright © 2014. All Rights Reserved.