ledoit_wolf#

sklearn.covariance.ledoit_wolf(X, *, assume_centered=False, block_size=1000)[来源]#

估计收缩的 Ledoit-Wolf 协方差矩阵。

用户指南中阅读更多。

参数:
X形状为 (n_samples, n_features) 的类数组对象

用于计算协方差估计的数据。

assume_centered布尔值,默认为 False

如果为 True,数据在计算前不会被中心化。这对于平均值显著等于零但不完全为零的数据很有用。如果为 False,数据在计算前会被中心化。

block_size整型,默认为 1000

协方差矩阵将被分割成的块的大小。这纯粹是内存优化,不影响结果。

返回:
shrunk_cov形状为 (n_features, n_features) 的 ndarray

收缩协方差。

shrinkage浮点型

用于计算收缩估计的凸组合中的系数。

备注

正则化(收缩)协方差为

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

其中 mu = trace(cov) / n_features

示例

>>> import numpy as np
>>> from sklearn.covariance import empirical_covariance, ledoit_wolf
>>> real_cov = np.array([[.4, .2], [.2, .8]])
>>> rng = np.random.RandomState(0)
>>> X = rng.multivariate_normal(mean=[0, 0], cov=real_cov, size=50)
>>> covariance, shrinkage = ledoit_wolf(X)
>>> covariance
array([[0.44, 0.16],
       [0.16, 0.80]])
>>> shrinkage
np.float64(0.23)