Kernels¶
A collection of common kernel / similarity functions. All kernels are continuous, bounded, and symmetric real functions which integrate to 1.
LinearKernel
¶
-
class
numpy_ml.utils.kernels.
LinearKernel
(c0=0)[source]¶ The linear (i.e., dot-product) kernel.
Notes
For input vectors \(\mathbf{x}\) and \(\mathbf{y}\), the linear kernel is:
\[k(\mathbf{x}, \mathbf{y}) = \mathbf{x}^\top \mathbf{y} + c_0\]Parameters: c0 (float) – An “inhomogeneity” parameter. When c0 = 0, the kernel is said to be homogenous. Default is 1. -
set_params
(summary_dict)[source]¶ Set the model parameters and hyperparameters using the settings in summary_dict.
Parameters: summary_dict (dict) – A dictionary with keys ‘parameters’ and ‘hyperparameters’, structured as would be returned by the summary()
method. If a particular (hyper)parameter is not included in this dict, the current value will be used.Returns: new_kernel (Kernel instance) – A kernel with parameters and hyperparameters adjusted to those specified in summary_dict.
-
PolynomialKernel
¶
-
class
numpy_ml.utils.kernels.
PolynomialKernel
(d=3, gamma=None, c0=1)[source]¶ The degree-d polynomial kernel.
Notes
For input vectors \(\mathbf{x}\) and \(\mathbf{y}\), the polynomial kernel is:
\[k(\mathbf{x}, \mathbf{y}) = (\gamma \mathbf{x}^\top \mathbf{y} + c_0)^d\]In contrast to the linear kernel, the polynomial kernel also computes similarities across dimensions of the x and y vectors, allowing it to account for interactions between features. As an instance of the dot product family of kernels, the polynomial kernel is invariant to a rotation of the coordinates about the origin, but not to translations.
Parameters: - d (int) – Degree of the polynomial kernel. Default is 3.
- gamma (float or None) – A scaling parameter for the dot product between x and y, determining the amount of smoothing/resonlution of the kernel. Larger values result in greater smoothing. If None, defaults to 1 / C. Sometimes referred to as the kernel bandwidth. Default is None.
- c0 (float) – Parameter trading off the influence of higher-order versus lower-order terms in the polynomial. If c0 = 0, the kernel is said to be homogenous. Default is 1.
-
set_params
(summary_dict)[source]¶ Set the model parameters and hyperparameters using the settings in summary_dict.
Parameters: summary_dict (dict) – A dictionary with keys ‘parameters’ and ‘hyperparameters’, structured as would be returned by the summary()
method. If a particular (hyper)parameter is not included in this dict, the current value will be used.Returns: new_kernel (Kernel instance) – A kernel with parameters and hyperparameters adjusted to those specified in summary_dict.
RBFKernel
¶
-
class
numpy_ml.utils.kernels.
RBFKernel
(sigma=None)[source]¶ Radial basis function (RBF) / squared exponential kernel.
Notes
For input vectors \(\mathbf{x}\) and \(\mathbf{y}\), the radial basis function kernel is:
\[k(\mathbf{x}, \mathbf{y}) = \exp \left\{ -0.5 \left\lVert \frac{\mathbf{x} - \mathbf{y}}{\sigma} \right\rVert_2^2 \right\}\]The RBF kernel decreases with distance and ranges between zero (in the limit) to one (when x = y). Notably, the implied feature space of the kernel has an infinite number of dimensions.
Parameters: sigma (float or array of shape (C,) or None) – A scaling parameter for the vectors x and y, producing an isotropic kernel if a float, or an anistropic kernel if an array of length C. Larger values result in higher resolution / greater smoothing. If None, defaults to \(\sqrt(C / 2)\). Sometimes referred to as the kernel ‘bandwidth’. Default is None. -
set_params
(summary_dict)[source]¶ Set the model parameters and hyperparameters using the settings in summary_dict.
Parameters: summary_dict (dict) – A dictionary with keys ‘parameters’ and ‘hyperparameters’, structured as would be returned by the summary()
method. If a particular (hyper)parameter is not included in this dict, the current value will be used.Returns: new_kernel (Kernel instance) – A kernel with parameters and hyperparameters adjusted to those specified in summary_dict.
-