Class PolynomialKernel

java.lang.Object
smile.math.kernel.Polynomial
smile.math.kernel.PolynomialKernel
All Implemented Interfaces:
Serializable, ToDoubleBiFunction<double[],double[]>, Function, DotProductKernel, MercerKernel<double[]>

public class PolynomialKernel extends Polynomial implements MercerKernel<double[]>
The polynomial kernel.

k(u, v) = (γ uTv - λ)d

where γ is the scale of the used inner product, λ the offset of the used inner product, and d the order of the polynomial kernel.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    PolynomialKernel(int degree)
    Constructor with scale 1 and offset 0.
    PolynomialKernel(int degree, double scale, double offset)
    Constructor.
    PolynomialKernel(int degree, double scale, double offset, 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.Polynomial

    degree, k, kg, offset, 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.kernel.DotProductKernel

    apply, f, K

    Methods inherited from interface smile.math.Function

    inv

    Methods inherited from interface smile.math.kernel.MercerKernel

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

    • PolynomialKernel

      public PolynomialKernel(int degree)
      Constructor with scale 1 and offset 0.
      Parameters:
      degree - The degree of polynomial.
    • PolynomialKernel

      public PolynomialKernel(int degree, double scale, double offset)
      Constructor.
      Parameters:
      degree - The degree of polynomial.
      scale - The scale parameter.
      offset - The offset parameter.
    • PolynomialKernel

      public PolynomialKernel(int degree, double scale, double offset, double[] lo, double[] hi)
      Constructor.
      Parameters:
      degree - The degree of polynomial. The degree is fixed during hyperparameter tuning.
      scale - The scale parameter.
      offset - The offset parameter.
      lo - The lower bound of scale and offset for hyperparameter tuning.
      hi - The upper bound of scale and offset 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 PolynomialKernel 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.