shrunk_covariance#

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

计算对角线上收缩的协方差矩阵。

Read more in the User Guide.

参数:
emp_cov形状如 (…, n_features, n_features) 的类数组对象

要收缩的协方差矩阵,至少为二维 ndarray。

shrinkagefloat, default=0.1

用于计算收缩估计量的凸组合系数。范围为 [0, 1]。

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

收缩后的协方差矩阵。

注意事项

正则化(收缩)协方差由下式给出

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

其中 mu = trace(cov) / n_features

示例

>>> 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.739, 0.254],
       [0.254, 0.411]])