Class MaternKernel

java.lang.Object
smile.math.kernel.Matern
smile.math.kernel.MaternKernel
All Implemented Interfaces:
Serializable, ToDoubleBiFunction<double[],double[]>, Function, IsotropicKernel, MercerKernel<double[]>

public class MaternKernel extends Matern implements MercerKernel<double[]>
The class of Matérn kernels is a generalization of the Gaussian/RBF. It has an additional parameter nu which controls the smoothness of the kernel function. The smaller nu, the less smooth the approximated function is. As nu -> inf, the kernel becomes equivalent to the Gaussian/RBF kernel. When nu = 1/2, the kernel becomes identical to the Laplacian kernel. The Matern kernel become especially simple when nu is half-integer. Important intermediate values are 3/2 (once differentiable functions) and 5/2 (twice differentiable functions).
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    MaternKernel(double sigma, double nu)
    Constructor.
    MaternKernel(double sigma, double nu, double lo, double hi)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    double[]
    hi()
    Returns the upper bound of hyperparameters (in hyperparameter tuning).
    double[]
    Returns the hyperparameters of kernel.
    double
    k(double[] x, double[] y)
    Kernel function.
    double[]
    kg(double[] x, double[] y)
    Computes the kernel and its gradient over hyperparameters.
    double[]
    lo()
    Returns the lower bound of hyperparameters (in hyperparameter tuning).
    of(double[] params)
    Returns the same kind kernel with the new hyperparameters.

    Methods inherited from class smile.math.kernel.Matern

    f, k, kg, scale, smoothness, toString

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface smile.math.Function

    inv

    Methods inherited from interface smile.math.kernel.IsotropicKernel

    apply, K, KG

    Methods inherited from interface smile.math.kernel.MercerKernel

    apply, applyAsDouble, K, K, KG
  • Constructor Details

    • MaternKernel

      public MaternKernel(double sigma, double nu)
      Constructor.
      Parameters:
      sigma - The length scale of kernel.
      nu - The smoothness of the kernel function. Only 0.5, 1.5, 2.5 and Inf are accepted.
    • MaternKernel

      public MaternKernel(double sigma, double nu, double lo, double hi)
      Constructor.
      Parameters:
      sigma - The length scale of kernel.
      nu - The smoothness of the kernel function. Only 0.5, 1.5, 2.5 and Inf are accepted. The smoothness parameter is fixed during hyperparameter for tuning.
      lo - The lower bound of length scale for hyperparameter tuning.
      hi - The upper bound of length scale for hyperparameter tuning.
  • Method Details

    • k

      public double k(double[] x, double[] y)
      Description copied from interface: MercerKernel
      Kernel function.
      Specified by:
      k in interface MercerKernel<double[]>
      Parameters:
      x - an object.
      y - an object.
      Returns:
      the kernel value.
    • kg

      public double[] kg(double[] x, double[] y)
      Description copied from interface: MercerKernel
      Computes the kernel and its gradient over hyperparameters.
      Specified by:
      kg in interface MercerKernel<double[]>
      Parameters:
      x - an object.
      y - an object.
      Returns:
      the kernel value and gradient.
    • of

      public MaternKernel of(double[] params)
      Description copied from interface: MercerKernel
      Returns the same kind kernel with the new hyperparameters.
      Specified by:
      of in interface MercerKernel<double[]>
      Parameters:
      params - the hyperparameters.
      Returns:
      the same kind kernel with the new hyperparameters.
    • hyperparameters

      public double[] hyperparameters()
      Description copied from interface: MercerKernel
      Returns the hyperparameters of kernel.
      Specified by:
      hyperparameters in interface MercerKernel<double[]>
      Returns:
      the hyperparameters of kernel.
    • lo

      public double[] lo()
      Description copied from interface: MercerKernel
      Returns the lower bound of hyperparameters (in hyperparameter tuning).
      Specified by:
      lo in interface MercerKernel<double[]>
      Returns:
      the lower bound of hyperparameters.
    • hi

      public double[] hi()
      Description copied from interface: MercerKernel
      Returns the upper bound of hyperparameters (in hyperparameter tuning).
      Specified by:
      hi in interface MercerKernel<double[]>
      Returns:
      the upper bound of hyperparameters.