org.apache.commons.math3.ml.neuralnet.sofm

## Class NeighbourhoodSizeFunctionFactory

- java.lang.Object
- - org.apache.commons.math3.ml.neuralnet.sofm.NeighbourhoodSizeFunctionFactory

-     public class NeighbourhoodSizeFunctionFactory
      extends Object

  Factory for creating instances of `NeighbourhoodSizeFunction`.
  Since:
    3.3

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static NeighbourhoodSizeFunction` | `exponentialDecay(double initValue, double valueAtNumCall, long numCall)` Creates an exponential decay `function`.
    `static NeighbourhoodSizeFunction` | `quasiSigmoidDecay(double initValue, double slope, long numCall)` Creates an sigmoid-like `NeighbourhoodSizeFunction function`.

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

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

- - ### Method Detail

    - #### exponentialDecay

          public static NeighbourhoodSizeFunction exponentialDecay(double initValue,
                                                   double valueAtNumCall,
                                                   long numCall)

      Creates an exponential decay `function`. It will compute `a e-x / b`, where `x` is the (integer) independent variable and
      - `a = initValue`
      - `b = -numCall / ln(valueAtNumCall / initValue)`
      Parameters:
        `initValue` - Initial value, i.e. `value(0)`.
        `valueAtNumCall` - Value of the function at `numCall`.
        `numCall` - Argument for which the function returns `valueAtNumCall`.
      Returns:
        the neighbourhood size function.
      Throws:
        `NotStrictlyPositiveException` - if `initValue <= 0`.
        `NotStrictlyPositiveException` - if `valueAtNumCall <= 0`.
        `NumberIsTooLargeException` - if `valueAtNumCall >= initValue`.
        `NotStrictlyPositiveException` - if `numCall <= 0`.

    - #### quasiSigmoidDecay

          public static NeighbourhoodSizeFunction quasiSigmoidDecay(double initValue,
                                                    double slope,
                                                    long numCall)

      Creates an sigmoid-like `NeighbourhoodSizeFunction function`. The function `f` will have the following properties:
      - `f(0) = initValue`
      - `numCall` is the inflexion point
      - `slope = f'(numCall)`
      Parameters:
        `initValue` - Initial value, i.e. `value(0)`.
        `slope` - Value of the function derivative at `numCall`.
        `numCall` - Inflexion point.
      Returns:
        the neighbourhood size function.
      Throws:
        `NotStrictlyPositiveException` - if `initValue <= 0`.
        `NumberIsTooLargeException` - if `slope >= 0`.
        `NotStrictlyPositiveException` - if `numCall <= 0`.

Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.