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