diff --git a/sklearn/covariance/elliptic_envelope.py b/sklearn/covariance/elliptic_envelope.py index 90e5a0f6d6b6b..8f1936aeb2f72 100644 --- a/sklearn/covariance/elliptic_envelope.py +++ b/sklearn/covariance/elliptic_envelope.py @@ -3,7 +3,6 @@ # License: BSD 3 clause import numpy as np -import scipy as sp import warnings from . import MinCovDet from ..utils.validation import check_is_fitted, check_array diff --git a/sklearn/covariance/empirical_covariance_.py b/sklearn/covariance/empirical_covariance_.py index 84ad65af7a5a8..6265b1a9cca62 100644 --- a/sklearn/covariance/empirical_covariance_.py +++ b/sklearn/covariance/empirical_covariance_.py @@ -104,6 +104,9 @@ class EmpiricalCovariance(BaseEstimator): Attributes ---------- + location_ : array-like, shape (n_features,) + Estimated location, i.e. the estimated mean. + covariance_ : 2D ndarray, shape (n_features, n_features) Estimated covariance matrix @@ -111,6 +114,24 @@ class EmpiricalCovariance(BaseEstimator): Estimated pseudo-inverse matrix. (stored only if store_precision is True) + Examples + -------- + >>> import numpy as np + >>> from sklearn.covariance import EmpiricalCovariance + >>> from sklearn.datasets import make_gaussian_quantiles + >>> real_cov = np.array([[.8, .3], + ... [.3, .4]]) + >>> np.random.seed(0) + >>> X = np.random.multivariate_normal(mean=[0, 0], + ... cov=real_cov, + ... size=500) + >>> cov = EmpiricalCovariance().fit(X) + >>> cov.covariance_ # doctest: +ELLIPSIS + array([[0.7569..., 0.2818...], + [0.2818..., 0.3928...]]) + >>> cov.location_ + array([0.0622..., 0.0193...]) + """ def __init__(self, store_precision=True, assume_centered=False): self.store_precision = store_precision diff --git a/sklearn/covariance/robust_covariance.py b/sklearn/covariance/robust_covariance.py index bcd561319a053..47af47b9702dd 100644 --- a/sklearn/covariance/robust_covariance.py +++ b/sklearn/covariance/robust_covariance.py @@ -581,6 +581,24 @@ class MinCovDet(EmpiricalCovariance): Mahalanobis distances of the training set (on which `fit` is called) observations. + Examples + -------- + >>> import numpy as np + >>> from sklearn.covariance import MinCovDet + >>> from sklearn.datasets import make_gaussian_quantiles + >>> real_cov = np.array([[.8, .3], + ... [.3, .4]]) + >>> np.random.seed(0) + >>> X = np.random.multivariate_normal(mean=[0, 0], + ... cov=real_cov, + ... size=500) + >>> cov = MinCovDet(random_state=0).fit(X) + >>> cov.covariance_ # doctest: +ELLIPSIS + array([[0.7411..., 0.2535...], + [0.2535..., 0.3053...]]) + >>> cov.location_ + array([0.0813... , 0.0427...]) + References ---------- diff --git a/sklearn/covariance/shrunk_covariance_.py b/sklearn/covariance/shrunk_covariance_.py index 5a61759d665ec..4f95fd13ebf36 100644 --- a/sklearn/covariance/shrunk_covariance_.py +++ b/sklearn/covariance/shrunk_covariance_.py @@ -84,6 +84,9 @@ class ShrunkCovariance(EmpiricalCovariance): Attributes ---------- + location_ : array-like, shape (n_features,) + Estimated location, i.e. the estimated mean. + covariance_ : array-like, shape (n_features, n_features) Estimated covariance matrix @@ -95,6 +98,24 @@ class ShrunkCovariance(EmpiricalCovariance): Coefficient in the convex combination used for the computation of the shrunk estimate. + Examples + -------- + >>> import numpy as np + >>> from sklearn.covariance import ShrunkCovariance + >>> from sklearn.datasets import make_gaussian_quantiles + >>> real_cov = np.array([[.8, .3], + ... [.3, .4]]) + >>> np.random.seed(0) + >>> X = np.random.multivariate_normal(mean=[0, 0], + ... cov=real_cov, + ... size=500) + >>> cov = ShrunkCovariance().fit(X) + >>> cov.covariance_ # doctest: +ELLIPSIS + array([[0.7387..., 0.2536...], + [0.2536..., 0.4110...]]) + >>> cov.location_ + array([0.0622..., 0.0193...]) + Notes ----- The regularized covariance is given by: