美洲组织#

sklearn.covariance.oas(X, *, assume_centered=False)[源代码]#

使用Oracle逼近收缩估计协方差。

阅读更多的 User Guide .

参数:
X形状类似阵列(n_samples,n_features)

计算协方差估计值的数据。

assume_centered布尔,默认=假

如果为True,则数据在计算前不会集中。对于处理均值明显等于零但不完全为零的数据很有用。如果为假,则在计算之前将数据集中。

返回:
shrunk_cov形状类似阵列(n_features,n_features)

缩小协方差。

shrinkage浮子

Coefficient in the convex combination used for the computation of the shrunk estimate.

注意到

正规化协方差是:

(1 -收缩) * cov + shrinkage * μ * NP. identification(n_features),

其中mu = trace(cov)/ n_features,收缩率由OAS公式给出(参见 [1]) .

此处实施的收缩公式与Eq不同。23在 [1]. 在原文中,公式(23)规定2/p(p是特征数量)在分子和分母中都乘以Trace(cov*cov),但省略了此操作,因为对于大p,2/p的值太小了,不会影响估计器的值。

引用

示例

>>> import numpy as np
>>> from sklearn.covariance import oas
>>> rng = np.random.RandomState(0)
>>> real_cov = [[.8, .3], [.3, .4]]
>>> X = rng.multivariate_normal(mean=[0, 0], cov=real_cov, size=500)
>>> shrunk_cov, shrinkage = oas(X)
>>> shrunk_cov
array([[0.7533..., 0.2763...],
       [0.2763..., 0.3964...]])
>>> shrinkage
np.float64(0.0195...)