ledoit_wolf#

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

估計收縮的 Ledoit-Wolf 共變異數矩陣。

請參閱使用者指南以了解更多資訊。

參數:
X形狀為 (n_samples, n_features) 的類陣列 (array-like)

用於計算共變異數估計的資料。

assume_centeredbool,預設值為 False

若為 True,則資料在計算前不會進行中心化處理。這對於處理平均值非常接近零但不完全為零的資料很有用。若為 False,則資料在計算前會進行中心化處理。

block_sizeint,預設值為 1000

共變異數矩陣將被分割成的區塊大小。這純粹是記憶體最佳化,不會影響結果。

回傳值:
shrunk_cov形狀為 (n_features, n_features) 的 ndarray

收縮後的共變異數。

shrinkagefloat

用於計算收縮估計的凸組合中的係數。

備註

正規化(收縮)的共變異數為

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