Kernel functions and utilities¶
Methods related to calculation of kernel function values and kernel matrices.
-
mklaren.kernel.kernel.
center_kernel
(K)¶ Center a kernel matrix.
\[\mathbf{K}_{c} = (\mathbf{I}-\dfrac{\mathbf{11}^T}{n})\mathbf{K}(\mathbf{I}-\dfrac{\mathbf{11}^1}{n})\]Parameters: K – ( numpy.ndarray
) Kernel matrix of shape(n, n)
.Returns: ( numpy.ndarray
) Centered kernel for a sample of points.
-
mklaren.kernel.kernel.
center_kernel_low_rank
(G)¶ Center a the feature matrix such that \(\mathbf{G}_c \mathbf{G}_c^T\) is centered.
\[\mathbf{G}_c = (\mathbf{I} - \dfrac{\mathbf{11}^T}{n})\mathbf{G}\]Parameters: G – ( numpy.ndarray
) Low-rank approximation of the feature matrix of shape(n, k)
.Returns: ( numpy.ndarray
) Centered low-rank approximation of the feature space.
-
mklaren.kernel.kernel.
correct_xy
(x, y)¶ Convert matrices to dense and correct shapes.
Parameters: - x – (
numpy.ndarray
) 2D or 1D array - y – (
numpy.ndarray
) 2D or 1D array
Returns: (
numpy.ndarray
) Convert x, y to dense, 2D arrays.- x – (
-
mklaren.kernel.kernel.
exponential_absolute
(x, y, sigma=2.0, gamma=None)¶ The exponential quadratic / radial basis kernel (RBF) kernel.
\[k(\mathbf{x}, \mathbf{y}) = exp\{\dfrac{\|\mathbf{x} - \mathbf{y}\|^2}{\sigma^2} \}\]or
\[k(\mathbf{x}, \mathbf{y}) = exp\{\gamma \|\mathbf{x} - \mathbf{y}\|^2 \}\]param x: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param y: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param sigma: ( float
) Length scale.param gamma: ( float
) Scale.return: ( numpy.ndarray
) Kernel value/matrix between data points.
-
mklaren.kernel.kernel.
exponential_cosine_kernel
(x, y, gamma=1, omega=1)¶ A sum of exponential quadratic and a cosine kernel.
\[d = \|\mathbf{x} - \mathbf{y}\|\]\[k(\mathbf{x}, \mathbf{y}) = \dfrac{1}{2} exp\{\dfrac{d^2}{\sigma^2}\} + \dfrac{1}{2} cos(\omega d^2)\]param x: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param y: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param omega: ( float
) Frequency of the oscillation.param gamma: ( float
) Scale.return: ( numpy.ndarray
) Kernel value/matrix between data points.
-
mklaren.kernel.kernel.
exponential_kernel
(x, y, sigma=2.0, gamma=None)¶ The exponential quadratic / radial basis kernel (RBF) kernel.
\[k(\mathbf{x}, \mathbf{y}) = exp\{\dfrac{\|\mathbf{x} - \mathbf{y}\|^2}{\sigma^2} \}\]or
\[k(\mathbf{x}, \mathbf{y}) = exp\{\gamma \|\mathbf{x} - \mathbf{y}\|^2 \}\]param x: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param y: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param sigma: ( float
) Length scale.param gamma: ( float
) Scale.return: ( numpy.ndarray
) Kernel value/matrix between data points.
-
mklaren.kernel.kernel.
kernel_row_normalize
(K)¶ Divide inner products of examples by their norm in the feature space, effectively computing angles. Applycable only to symmetric kernels.
Parameters: K – ( numpy.ndarray
) Kernel matrix of shape(n, n)
.Returns: ( numpy.ndarray
) Row-normalized kernel for a sample of points.
-
mklaren.kernel.kernel.
kernel_sum
(x, y, kernels, kernels_args, kernels_weights=None)¶ Sum of arbitrary kernel functions. :param x: (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. :param y: (numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. :param kernels: (Iterable
) Iterable of pointers to kernels. :param kernels_args: (Iterable
) Iterable with dictionaries, of the same length as kernels.Arguments are passed to kernels as kwargs.Parameters: kernels_weights – ( Iterable
) Iterable with kernel weights, of the same length as kernels.Returns:
-
mklaren.kernel.kernel.
kernel_to_distance
(K)¶ Divide inner products of examples by their norm in the feature space, effectively computing angles. Applycable only to symmetric kernels.
Parameters: K – ( numpy.ndarray
) Kernel matrix or Kinterface of shape(n, n)
.Returns: ( numpy.ndarray
) Distance matrix in the feature space induced by K.
-
mklaren.kernel.kernel.
linear_kernel
(x, y, b=0)¶ The linear kernel (the usual dot product in n-dimensional space).
\[k(\mathbf{x}, \mathbf{y}) = b + \mathbf{x}^T \mathbf{y}\]Parameters: - x – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - y – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - b – (
float
) Bias term.
Returns: (
numpy.ndarray
) Kernel value/matrix between data points.- x – (
-
mklaren.kernel.kernel.
linear_kernel_noise
(x, y, b=1, noise=1)¶ The linear kernel (the usual dot product in n-dimensional space). A noise term is added explicitly to avoid singular kernel matrices
\[k(\mathbf{x}, \mathbf{y}) = b + \mathbf{x}^T \mathbf{y} + noise \cdot (\mathbf{x} == \mathbf{y})\]Parameters: - x – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - y – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - b – (
float
) Bias term. - noise – (
float
) Noise term.
Returns: (
numpy.ndarray
) Kernel value/matrix between data points.- x – (
-
mklaren.kernel.kernel.
matern32_gpy
(x, y, lengthscale=1)¶ Temp: GPy wrapper for the matern kernel.
-
mklaren.kernel.kernel.
matern52_gpy
(x, y, lengthscale=1)¶ Temp: GPy wrapper for the matern kernel.
-
mklaren.kernel.kernel.
matern_kernel
(x, y, l=1.0, nu=1.5)¶ The Matern kernel wrapped from Scikit learn.
\[k(\mathbf{x}, \mathbf{y}) = \sigma^2 \dfrac{2^{1-\]u}}{Gamma{ u}} (sqrt{2 u} dfrac{d}{l})^{ u} K_{ u} (sqrt{2 u} dfrac{d}{l})
where {Gamma } Gamma is the gamma function, {K_{u }} K_{ u }
is the modified Bessel function of the second kind, and l andu are non-negative parameters of the covariance.
param x: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param y: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param l: ( float
) Length scale.param nu: ( float
) Differentiability of the kernel.return: ( numpy.ndarray
) Kernel value/matrix between data points.
-
mklaren.kernel.kernel.
periodic_gpy
(x, y, lengthscale=1, period=6.28)¶ Temp: GPy wrapper for the matern kernel.
-
mklaren.kernel.kernel.
periodic_kernel
(x, y, sigma=1, per=1, l=1)¶ The periodic kernel. Defined as in http://www.cs.toronto.edu/~duvenaud/cookbook/index.html.
\[k(\mathbf{x}, \mathbf{y}) = \sigma^2 exp\{-2 \pi sin(\dfrac{\|\mathbf{x} - \mathbf{y}\|}{per})/l \}\]param x: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param y: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param per: ( float
) Period.param l: ( float
) Length scale.param sigma: ( float
) Variance.return: ( numpy.ndarray
) Kernel value/matrix between data points.
-
mklaren.kernel.kernel.
poly_kernel
(x, y, degree=2, b=0)¶ The polynomial kernel.
\[k(\mathbf{x}, \mathbf{y}) = (b + \mathbf{x}^T \mathbf{y})^p\]Parameters: - x – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - y – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - degree – (
float
) Polynomial degree. - b – (
float
) Bias term.
Returns: (
numpy.ndarray
) Kernel value/matrix between data points.- x – (
-
mklaren.kernel.kernel.
random_kernel
(n)¶ Generate a random kernel matrix of shape
(n, n)
.Parameters: n – ( int
) Number of examples.Returns: ( numpy.ndarray
) Random positive semidefinite kernel matrix of shape(n, n)
.
-
mklaren.kernel.kernel.
rbf_kernel
(x, y, sigma=2.0, gamma=None)¶ The exponential quadratic / radial basis kernel (RBF) kernel.
\[k(\mathbf{x}, \mathbf{y}) = exp\{\dfrac{\|\mathbf{x} - \mathbf{y}\|^2}{\sigma^2} \}\]or
\[k(\mathbf{x}, \mathbf{y}) = exp\{\gamma \|\mathbf{x} - \mathbf{y}\|^2 \}\]param x: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param y: ( numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
.param sigma: ( float
) Length scale.param gamma: ( float
) Scale.return: ( numpy.ndarray
) Kernel value/matrix between data points.
-
mklaren.kernel.kernel.
sigmoid_kernel
(x, y, c=1, b=0)¶ The sigmoid kernel.
\[k(\mathbf{x}, \mathbf{y}) = tan(c \mathbf{x}^T \mathbf{y} + b)\]Parameters: - x – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - y – (
numpy.ndarray
) Data point(s) of shape(n_samples, n_features)
or(n_features, )
. - c – (
float
) Scale. - b – (
float
) Bias.
Returns: (
numpy.ndarray
) Kernel value/matrix between data points.- x – (