Class GaussianKernel

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

public class GaussianKernel extends Gaussian implements MercerKernel<double[]>
Gaussian kernel, also referred as RBF kernel or squared exponential kernel.

k(u, v) = exp(-||u-v||2 / 2σ2)

where σ > 0 is the scale parameter of the kernel.

The Gaussian kernel is a good choice for a great deal of applications, although sometimes it is remarked as being overused.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    GaussianKernel(double sigma)
    Constructor.
    GaussianKernel(double sigma, 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.Gaussian

    k, kg, scale, 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, f, K, KG

    Methods inherited from interface smile.math.kernel.MercerKernel

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

    • GaussianKernel

      public GaussianKernel(double sigma)
      Constructor.
      Parameters:
      sigma - The length scale of kernel.
    • GaussianKernel

      public GaussianKernel(double sigma, double lo, double hi)
      Constructor.
      Parameters:
      sigma - The length scale of kernel.
      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 GaussianKernel 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.