Documentation of 'smile.vq.GrowingNeuralGas' Java class
GrowingNeuralGas
smile.vq

Class GrowingNeuralGas

  • All Implemented Interfaces:
    Clustering<double[]>


    public class GrowingNeuralGas
    extends java.lang.Object
    implements Clustering<double[]>
    Growing Neural Gas. As an extension of Neural Gas, Growing Neural Gas can add and delete nodes during algorithm execution. The growth mechanism is based on growing cell structures and competitive Hebbian learning.

    Compared to Neural Gas, GNG has the following distinctions:

    • The system has the ability to add and delete nodes.
    • Local Error measurements are noted at each step helping it to locally insert/delete nodes.
    • Edges are connected between nodes, so a sufficiently old edges is deleted. Such edges are intended place holders for localized data distribution.
    • Such edges also help to locate distinct clusters (those clusters are not connected by edges).

    References

    1. B. Fritzke. A growing neural gas network learns topologies. NIPS, 1995.
    See Also:
    KMeans, NeuralGas, NeuralMap
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class and Description
      static class  GrowingNeuralGas.Neuron
      The neuron vertex in the growing neural gas network.
    • Constructor Summary

      Constructors 
      Constructor and Description
      GrowingNeuralGas(int d)
      Constructor.
      GrowingNeuralGas(int d, double epsBest, double epsNeighbor, int maxEdgeAge, int lambda, double alpha, double beta)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      GrowingNeuralGas.Neuron[] neurons()
      Returns the neurons in the network.
      void partition(int k)
      Clustering neurons into k clusters.
      int predict(double[] x)
      Cluster a new instance to the nearest neuron.
      void update(double[] x)
      Update the Neural Gas with a new signal.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • GrowingNeuralGas

        public GrowingNeuralGas(int d)
        Constructor.
        Parameters:
        d - the dimensionality of signals.
      • GrowingNeuralGas

        public GrowingNeuralGas(int d,
                                double epsBest,
                                double epsNeighbor,
                                int maxEdgeAge,
                                int lambda,
                                double alpha,
                                double beta)
        Constructor.
        Parameters:
        d - the dimensionality of signals.
        epsBest - the fraction to update nearest neuron.
        epsNeighbor - the fraction to update neighbors of nearest neuron.
        maxEdgeAge - the maximum age of edges.
        lambda - if the number of input signals so far is an integer multiple of lambda, insert a new neuron.
        alpha - decrease error variables by multiplying them with alpha during inserting a new neuron.
        beta - decrease all error variables by multiply them with beta.
    • Method Detail

      • neurons

        public GrowingNeuralGas.Neuron[] neurons()
        Returns the neurons in the network.
        Returns:
        the neurons in the network.
      • update

        public void update(double[] x)
        Update the Neural Gas with a new signal.
      • partition

        public void partition(int k)
        Clustering neurons into k clusters.
        Parameters:
        k - the number of clusters.
      • predict

        public int predict(double[] x)
        Cluster a new instance to the nearest neuron.
        Specified by:
        predict in interface Clustering<double[]>
        Parameters:
        x - a new instance.
        Returns:
        the cluster label. If the method partition() was called, this is the cluster id of nearest neuron. Otherwise, it is just the index of neuron.

DataMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.