package sklearn
Module Kernels.RBFSource
val create :
?length_scale:[> `ArrayLike ] Np.Obj.t ->
?length_scale_bounds:[ `Tuple of float * float | `Fixed ] ->
unit ->
tRadial-basis function kernel (aka squared-exponential kernel).
The RBF kernel is a stationary kernel. It is also known as the 'squared exponential' kernel. It is parameterized by a length scale parameter :math:`l>0`, which can either be a scalar (isotropic variant of the kernel) or a vector with the same number of dimensions as the inputs X (anisotropic variant of the kernel). The kernel is given by:
.. math:: k(x_i, x_j) = \exp\left(- \fracd(x_i, x_j)^2
l^2
\right)
where :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 length scale parameter, see e.g. 1_.
This kernel is infinitely differentiable, which implies that GPs with this kernel as covariance function have mean square derivatives of all orders, and are thus very smooth. See 2_, Chapter 4, Section 4.2, for further details of the RBF kernel.
Read more in the :ref:`User Guide <gp_kernels>`.
.. versionadded:: 0.18
Parameters ---------- length_scale : float or ndarray of shape (n_features,), default=1.0 The length scale of the kernel. If a float, an isotropic kernel is used. If an array, an anisotropic kernel is used where each dimension of l defines the length-scale of the respective feature dimension.
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.
References ---------- .. 1 `David Duvenaud (2014). 'The Kernel Cookbook: Advice on Covariance functions'. <https://www.cs.toronto.edu/~duvenaud/cookbook/>`_
.. 2 `Carl Edward Rasmussen, Christopher K. I. Williams (2006). 'Gaussian Processes for Machine Learning'. The MIT Press. <http://www.gaussianprocess.org/gpml/>`_
Examples -------- >>> from sklearn.datasets import load_iris >>> from sklearn.gaussian_process import GaussianProcessClassifier >>> from sklearn.gaussian_process.kernels import RBF >>> X, y = load_iris(return_X_y=True) >>> kernel = 1.0 * RBF(1.0) >>> gpc = GaussianProcessClassifier(kernel=kernel, ... random_state=0).fit(X, y) >>> gpc.score(X, y) 0.9866... >>> gpc.predict_proba(X:2,:) array([0.8354..., 0.03228..., 0.1322...], [0.7906..., 0.0652..., 0.1441...])
Returns a clone of self with given hyperparameters theta.
Parameters ---------- theta : ndarray of shape (n_dims,) The hyperparameters
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)
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.
Returns whether the kernel is stationary.
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
Pretty-print the object to a formatter.