sklearn.kernel_ridge
.KernelRidge¶

class
sklearn.kernel_ridge.
KernelRidge
(alpha=1, *, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None)[source]¶ Kernel ridge regression.
Kernel ridge regression (KRR) combines ridge regression (linear least squares with l2norm regularization) with the kernel trick. It thus learns a linear function in the space induced by the respective kernel and the data. For nonlinear kernels, this corresponds to a nonlinear function in the original space.
The form of the model learned by KRR is identical to support vector regression (SVR). However, different loss functions are used: KRR uses squared error loss while support vector regression uses epsiloninsensitive loss, both combined with l2 regularization. In contrast to SVR, fitting a KRR model can be done in closedform and is typically faster for mediumsized datasets. On the other hand, the learned model is nonsparse and thus slower than SVR, which learns a sparse model for epsilon > 0, at predictiontime.
This estimator has builtin support for multivariate regression (i.e., when y is a 2darray of shape [n_samples, n_targets]).
Read more in the User Guide.
 Parameters
 alphafloat or arraylike of shape (n_targets,), default=1.0
Regularization strength; must be a positive float. Regularization improves the conditioning of the problem and reduces the variance of the estimates. Larger values specify stronger regularization. Alpha corresponds to
1 / (2C)
in other linear models such asLogisticRegression
orLinearSVC
. If an array is passed, penalties are assumed to be specific to the targets. Hence they must correspond in number. See Ridge regression and classification for formula. kernelstring or callable, default=”linear”
Kernel mapping used internally. This parameter is directly passed to
pairwise_kernel
. Ifkernel
is a string, it must be one of the metrics inpairwise.PAIRWISE_KERNEL_FUNCTIONS
. Ifkernel
is “precomputed”, X is assumed to be a kernel matrix. Alternatively, ifkernel
is a callable function, it is called on each pair of instances (rows) and the resulting value recorded. The callable should take two rows from X as input and return the corresponding kernel value as a single number. This means that callables fromsklearn.metrics.pairwise
are not allowed, as they operate on matrices, not single samples. Use the string identifying the kernel instead. gammafloat, default=None
Gamma parameter for the RBF, laplacian, polynomial, exponential chi2 and sigmoid kernels. Interpretation of the default value is left to the kernel; see the documentation for sklearn.metrics.pairwise. Ignored by other kernels.
 degreefloat, default=3
Degree of the polynomial kernel. Ignored by other kernels.
 coef0float, default=1
Zero coefficient for polynomial and sigmoid kernels. Ignored by other kernels.
 kernel_paramsmapping of string to any, default=None
Additional parameters (keyword arguments) for kernel function passed as callable object.
 Attributes
 dual_coef_ndarray of shape (n_samples,) or (n_samples, n_targets)
Representation of weight vector(s) in kernel space
 X_fit_{ndarray, sparse matrix} of shape (n_samples, n_features)
Training data, which is also required for prediction. If kernel == “precomputed” this is instead the precomputed training matrix, of shape (n_samples, n_samples).
See also
sklearn.linear_model.Ridge
Linear ridge regression.
sklearn.svm.SVR
Support Vector Regression implemented using libsvm.
References
Kevin P. Murphy “Machine Learning: A Probabilistic Perspective”, The MIT Press chapter 14.4.3, pp. 492493
Examples
>>> from sklearn.kernel_ridge import KernelRidge >>> import numpy as np >>> n_samples, n_features = 10, 5 >>> rng = np.random.RandomState(0) >>> y = rng.randn(n_samples) >>> X = rng.randn(n_samples, n_features) >>> clf = KernelRidge(alpha=1.0) >>> clf.fit(X, y) KernelRidge(alpha=1.0)
Methods
fit
(X, y[, sample_weight])Fit Kernel Ridge regression model
get_params
([deep])Get parameters for this estimator.
predict
(X)Predict using the kernel ridge model
score
(X, y[, sample_weight])Return the coefficient of determination \(R^2\) of the prediction.
set_params
(**params)Set the parameters of this estimator.

fit
(X, y, sample_weight=None)[source]¶ Fit Kernel Ridge regression model
 Parameters
 X{arraylike, sparse matrix} of shape (n_samples, n_features)
Training data. If kernel == “precomputed” this is instead a precomputed kernel matrix, of shape (n_samples, n_samples).
 yarraylike of shape (n_samples,) or (n_samples, n_targets)
Target values
 sample_weightfloat or arraylike of shape (n_samples,), default=None
Individual weights for each sample, ignored if None is passed.
 Returns
 selfreturns an instance of self.

get_params
(deep=True)[source]¶ Get parameters for this estimator.
 Parameters
 deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
 Returns
 paramsdict
Parameter names mapped to their values.

predict
(X)[source]¶ Predict using the kernel ridge model
 Parameters
 X{arraylike, sparse matrix} of shape (n_samples, n_features)
Samples. If kernel == “precomputed” this is instead a precomputed kernel matrix, shape = [n_samples, n_samples_fitted], where n_samples_fitted is the number of samples used in the fitting for this estimator.
 Returns
 Cndarray of shape (n_samples,) or (n_samples, n_targets)
Returns predicted values.

score
(X, y, sample_weight=None)[source]¶ Return the coefficient of determination \(R^2\) of the prediction.
The coefficient \(R^2\) is defined as \((1  \frac{u}{v})\), where \(u\) is the residual sum of squares
((y_true  y_pred) ** 2).sum()
and \(v\) is the total sum of squares((y_true  y_true.mean()) ** 2).sum()
. The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value ofy
, disregarding the input features, would get a \(R^2\) score of 0.0. Parameters
 Xarraylike of shape (n_samples, n_features)
Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape
(n_samples, n_samples_fitted)
, wheren_samples_fitted
is the number of samples used in the fitting for the estimator. yarraylike of shape (n_samples,) or (n_samples, n_outputs)
True values for
X
. sample_weightarraylike of shape (n_samples,), default=None
Sample weights.
 Returns
 scorefloat
\(R^2\) of
self.predict(X)
wrt.y
.
Notes
The \(R^2\) score used when calling
score
on a regressor usesmultioutput='uniform_average'
from version 0.23 to keep consistent with default value ofr2_score
. This influences thescore
method of all the multioutput regressors (except forMultiOutputRegressor
).

set_params
(**params)[source]¶ Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object. Parameters
 **paramsdict
Estimator parameters.
 Returns
 selfestimator instance
Estimator instance.