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
self
和comp_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_
分別作為高斯模型均值和共變異數矩陣的估計值。