LedoitWolf#

class sklearn.covariance.LedoitWolf(*, store_precision=True, assume_centered=False, block_size=1000)[原始碼]#

LedoitWolf 估計器。

Ledoit-Wolf 是一種特殊的收縮形式,其中收縮係數是使用 O. Ledoit 和 M. Wolf 的公式計算的,如“A Well-Conditioned Estimator for Large-Dimensional Covariance Matrices”中所述,Ledoit 和 Wolf,Journal of Multivariate Analysis,第 88 卷,第 2 期,2004 年 2 月,第 365-411 頁。

請參閱 使用者指南 以獲取更多資訊。

參數:
store_precisionbool,預設值=True

指定是否儲存估計的精確度。

assume_centeredbool,預設值=False

如果為 True,則在計算之前不會將資料居中。當處理平均值幾乎但不完全為零的資料時很有用。如果為 False (預設值),則會在計算之前將資料居中。

block_sizeint,預設值=1000

在 Ledoit-Wolf 估計期間,將協方差矩陣分割成的區塊大小。這純粹是記憶體優化,不會影響結果。

屬性:
covariance_形狀為 (n_features, n_features) 的 ndarray

估計的協方差矩陣。

location_形狀為 (n_features,) 的 ndarray

估計的位置,即估計的平均值。

precision_形狀為 (n_features, n_features) 的 ndarray

估計的偽逆矩陣。(僅當 store_precision 為 True 時才會儲存)

shrinkage_float

用於計算收縮估計的凸組合中的係數。範圍為 [0, 1]。

n_features_in_int

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有都是字串的特徵名稱時才會定義。

在 1.0 版本中新增。

另請參閱

EllipticEnvelope

EllipticEnvelope:用於偵測高斯分佈資料集中離群值的物件。

EmpiricalCovariance

EmpiricalCovariance:最大似然協方差估計器。

GraphicalLasso

GraphicalLasso:使用 l1 懲罰估計器的稀疏逆協方差估計。

GraphicalLassoCV

GraphicalLassoCV:具有 l1 懲罰交叉驗證選擇的稀疏逆協方差。

MinCovDet

MinCovDet:最小協方差行列式 (協方差的穩健估計器)。

OAS

OAS:Oracle 近似收縮估計器。

ShrunkCovariance

ShrunkCovariance:具有收縮的協方差估計器。

注意事項

正則化的協方差為

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

其中 mu = trace(cov) / n_features 且收縮由 Ledoit 和 Wolf 公式給出 (請參閱參考文獻)

參考文獻

“A Well-Conditioned Estimator for Large-Dimensional Covariance Matrices”,Ledoit 和 Wolf,Journal of Multivariate Analysis,第 88 卷,第 2 期,2004 年 2 月,第 365-411 頁。

範例

>>> import numpy as np
>>> from sklearn.covariance import LedoitWolf
>>> real_cov = np.array([[.4, .2],
...                      [.2, .8]])
>>> np.random.seed(0)
>>> X = np.random.multivariate_normal(mean=[0, 0],
...                                   cov=real_cov,
...                                   size=50)
>>> cov = LedoitWolf().fit(X)
>>> cov.covariance_
array([[0.4406..., 0.1616...],
       [0.1616..., 0.8022...]])
>>> cov.location_
array([ 0.0595... , -0.0075...])
error_norm(comp_cov, norm='frobenius', scaling=True, squared=True)[原始碼]#

計算兩個協方差估計器之間的均方誤差。

參數:
comp_cov形狀為 (n_features, n_features) 的類陣列

要與之比較的協方差。

norm{“frobenius”, “spectral”},預設值=”frobenius”

用於計算誤差的範數類型。可用的誤差類型: - 'frobenius' (預設值):sqrt(tr(A^t.A)) - 'spectral':sqrt(max(eigenvalues(A^t.A)),其中 A 是誤差 (comp_cov - self.covariance_)

scalingbool,預設值=True

如果為 True (預設值),則平方誤差範數除以 n_features。如果為 False,則不重新縮放平方誤差範數。

squaredbool,預設值=True

是否計算平方誤差範數或誤差範數。如果為 True (預設值),則會傳回平方誤差範數。如果為 False,則會傳回誤差範數。

傳回:
resultfloat

selfcomp_cov 協方差估計器之間 (在 Frobenius 範數意義上) 的均方誤差。

fit(X, y=None)[原始碼]#

將 Ledoit-Wolf 收縮協方差模型擬合到 X。

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

訓練資料,其中 n_samples 是樣本數,n_features 是特徵數。

y已忽略

未使用,為了 API 的一致性而存在。

傳回:
self物件

傳回實例本身。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看 使用者指南,瞭解路由機制如何運作。

傳回:
routingMetadataRequest

一個 MetadataRequest,封裝了路由資訊。

get_params(deep=True)[原始碼]#

取得此估計器的參數。

參數:
deepbool,預設值=True

如果為 True,則會傳回此估計器和包含的子物件 (為估計器) 的參數。

傳回:
paramsdict

將參數名稱對應到其值的字典。

get_precision()[原始碼]#

取得精確度矩陣(precision matrix)的 getter。

傳回:
precision_形狀為 (n_features, n_features) 的類陣列(array-like)

與目前共變異數物件相關聯的精確度矩陣。

mahalanobis(X)[原始碼]#

計算給定觀測值的平方馬氏距離(squared Mahalanobis distances)。

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

我們計算馬氏距離的觀測值。假設這些觀測值與 fit 中使用的資料來自相同的分佈。

傳回:
dist形狀為 (n_samples,) 的 ndarray

觀測值的平方馬氏距離。

score(X_test, y=None)[原始碼]#

計算在估計的高斯模型下,X_test 的對數似然值。

高斯模型由其均值和共變異數矩陣定義,分別由 self.location_self.covariance_ 表示。

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

我們計算其似然性的測試資料,其中 n_samples 是樣本數,n_features 是特徵數。假設 X_test 與 fit 中使用的資料(包括中心化)來自相同的分佈。

y已忽略

未使用,為了 API 的一致性而存在。

傳回:
res浮點數

X_test 的對數似然值,其中 self.location_self.covariance_ 分別作為高斯模型均值和共變異數矩陣的估計值。

set_params(**params)[原始碼]#

設定此估計器的參數。

此方法適用於簡單的估計器以及巢狀物件(例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**params字典

估計器參數。

傳回:
self估計器實例

估計器實例。