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...]])