shrunk_covariance (original) (raw)

sklearn.covariance.shrunk_covariance(emp_cov, shrinkage=0.1)[source]#

Calculate covariance matrices shrunk on the diagonal.

Read more in the User Guide.

Parameters:

emp_covarray-like of shape (…, n_features, n_features)

Covariance matrices to be shrunk, at least 2D ndarray.

shrinkagefloat, default=0.1

Coefficient in the convex combination used for the computation of the shrunk estimate. Range is [0, 1].

Returns:

shrunk_covndarray of shape (…, n_features, n_features)

Shrunk covariance matrices.

Notes

The regularized (shrunk) covariance is given by:

(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features)

where mu = trace(cov) / n_features.

Examples

import numpy as np from sklearn.datasets import make_gaussian_quantiles from sklearn.covariance import empirical_covariance, shrunk_covariance real_cov = np.array([[.8, .3], [.3, .4]]) rng = np.random.RandomState(0) X = rng.multivariate_normal(mean=[0, 0], cov=real_cov, size=500) shrunk_covariance(empirical_covariance(X)) array([[0.73..., 0.25...], [0.25..., 0.41...]])