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
  • Constructor Details

    • NeighbourhoodSizeFunctionFactory

      private NeighbourhoodSizeFunctionFactory()
      Class contains only static methods.
  • Method Details

    • 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.