package sklearn

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type tag = [
  1. | `RationalQuadratic
]
type t = [ `NormalizedKernelMixin | `Object | `RationalQuadratic | `StationaryKernelMixin ] Obj.t
val of_pyobject : Py.Object.t -> t
val to_pyobject : [> tag ] Obj.t -> Py.Object.t
val as_normalized_kernel : t -> [ `NormalizedKernelMixin ] Obj.t
val as_stationary_kernel : t -> [ `StationaryKernelMixin ] Obj.t
val create : ?length_scale:float -> ?alpha:float -> ?length_scale_bounds:[ `Tuple of float * float | `Fixed ] -> ?alpha_bounds:[ `Tuple of float * float | `Fixed ] -> unit -> t

Rational Quadratic kernel.

The RationalQuadratic kernel can be seen as a scale mixture (an infinite sum) of RBF kernels with different characteristic length scales. It is parameterized by a length scale parameter :math:`l>0` and a scale mixture parameter :math:`\alpha>0`. Only the isotropic variant where length_scale :math:`l` is a scalar is supported at the moment. The kernel is given by:

.. math:: k(x_i, x_j) = \left( 1 + \fracd(x_i, x_j)^2 2\alpha l^2\right)^

\alpha

}

where :math:`\alpha` is the scale mixture parameter, :math:`l` is the length scale of the kernel and :math:`d(\cdot,\cdot)` is the Euclidean distance. For advice on how to set the parameters, see e.g. 1_.

Read more in the :ref:`User Guide <gp_kernels>`.

.. versionadded:: 0.18

Parameters ---------- length_scale : float > 0, default=1.0 The length scale of the kernel.

alpha : float > 0, default=1.0 Scale mixture parameter

length_scale_bounds : pair of floats >= 0 or 'fixed', default=(1e-5, 1e5) The lower and upper bound on 'length_scale'. If set to 'fixed', 'length_scale' cannot be changed during hyperparameter tuning.

alpha_bounds : pair of floats >= 0 or 'fixed', default=(1e-5, 1e5) The lower and upper bound on 'alpha'. If set to 'fixed', 'alpha' cannot be changed during hyperparameter tuning.

References ---------- .. 1 `David Duvenaud (2014). 'The Kernel Cookbook: Advice on Covariance functions'. <https://www.cs.toronto.edu/~duvenaud/cookbook/>`_

Examples -------- >>> from sklearn.datasets import load_iris >>> from sklearn.gaussian_process import GaussianProcessClassifier >>> from sklearn.gaussian_process.kernels import Matern >>> X, y = load_iris(return_X_y=True) >>> kernel = RationalQuadratic(length_scale=1.0, alpha=1.5) >>> gpc = GaussianProcessClassifier(kernel=kernel, ... random_state=0).fit(X, y) >>> gpc.score(X, y) 0.9733... >>> gpc.predict_proba(X:2,:) array([0.8881..., 0.0566..., 0.05518...], [0.8678..., 0.0707... , 0.0614...])

val clone_with_theta : theta:[> `ArrayLike ] Np.Obj.t -> [> tag ] Obj.t -> Py.Object.t

Returns a clone of self with given hyperparameters theta.

Parameters ---------- theta : ndarray of shape (n_dims,) The hyperparameters

val diag : x:[> `ArrayLike ] Np.Obj.t -> [> tag ] Obj.t -> [> `ArrayLike ] Np.Obj.t

Returns the diagonal of the kernel k(X, X).

The result of this method is identical to np.diag(self(X)); however, it can be evaluated more efficiently since only the diagonal is evaluated.

Parameters ---------- X : ndarray of shape (n_samples_X, n_features) Left argument of the returned kernel k(X, Y)

Returns ------- K_diag : ndarray of shape (n_samples_X,) Diagonal of kernel k(X, X)

val get_params : ?deep:bool -> [> tag ] Obj.t -> Dict.t

Get parameters of this kernel.

Parameters ---------- deep : bool, default=True If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns ------- params : dict Parameter names mapped to their values.

val is_stationary : [> tag ] Obj.t -> Py.Object.t

Returns whether the kernel is stationary.

val set_params : ?params:(string * Py.Object.t) list -> [> tag ] Obj.t -> t

Set the parameters of this kernel.

The method works on simple kernels as well as on nested kernels. The latter have parameters of the form ``<component>__<parameter>`` so that it's possible to update each component of a nested object.

Returns ------- self

val to_string : t -> string

Print the object to a human-readable representation.

val show : t -> string

Print the object to a human-readable representation.

val pp : Stdlib.Format.formatter -> t -> unit

Pretty-print the object to a formatter.