Class BinarySparseMaternKernel
java.lang.Object
smile.math.kernel.Matern
smile.math.kernel.BinarySparseMaternKernel
- All Implemented Interfaces:
Serializable, ToDoubleBiFunction<int[],int[]>, IsotropicKernel, MercerKernel<int[]>, Function
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:
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionBinarySparseMaternKernel(double sigma, double nu) Constructor.BinarySparseMaternKernel(double sigma, double nu, double lo, double hi) Constructor. -
Method Summary
Modifier and TypeMethodDescriptiondouble[]hi()Returns the upper bound of hyperparameters (in hyperparameter tuning).double[]Returns the hyperparameters of kernel.doublek(int[] x, int[] y) Kernel function.double[]kg(int[] x, int[] 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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface IsotropicKernel
apply, K, KGMethods inherited from interface MercerKernel
apply, applyAsDouble, K, K, KG
-
Constructor Details
-
BinarySparseMaternKernel
public BinarySparseMaternKernel(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.
-
BinarySparseMaternKernel
public BinarySparseMaternKernel(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(int[] x, int[] y) Description copied from interface:MercerKernelKernel function.- Specified by:
kin interfaceMercerKernel<int[]>- Parameters:
x- an object.y- an object.- Returns:
- the kernel value.
-
kg
public double[] kg(int[] x, int[] y) Description copied from interface:MercerKernelComputes the kernel and its gradient over hyperparameters.- Specified by:
kgin interfaceMercerKernel<int[]>- Parameters:
x- an object.y- an object.- Returns:
- the kernel value and gradient.
-
of
Description copied from interface:MercerKernelReturns the same kind kernel with the new hyperparameters.- Specified by:
ofin interfaceMercerKernel<int[]>- Parameters:
params- the hyperparameters.- Returns:
- the same kind kernel with the new hyperparameters.
-
hyperparameters
public double[] hyperparameters()Description copied from interface:MercerKernelReturns the hyperparameters of kernel.- Specified by:
hyperparametersin interfaceMercerKernel<int[]>- Returns:
- the hyperparameters of kernel.
-
lo
public double[] lo()Description copied from interface:MercerKernelReturns the lower bound of hyperparameters (in hyperparameter tuning).- Specified by:
loin interfaceMercerKernel<int[]>- Returns:
- the lower bound of hyperparameters.
-
hi
public double[] hi()Description copied from interface:MercerKernelReturns the upper bound of hyperparameters (in hyperparameter tuning).- Specified by:
hiin interfaceMercerKernel<int[]>- Returns:
- the upper bound of hyperparameters.
-