OAS#
- class sklearn.covariance.OAS(*, store_precision=True, assume_centered=False)[source]#
Oracle 近似收縮估計器。
請參閱使用者指南以了解更多資訊。
- 參數:
- store_precisionbool,預設值 = True
指定是否儲存估計的精確度。
- assume_centeredbool,預設值 = False
如果為 True,則在計算之前不會將資料置中。當處理平均值幾乎但不完全為零的資料時很有用。如果為 False(預設值),則在計算之前會將資料置中。
- 屬性:
- 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
用於檢測高斯分佈數據集中離群值的物件。
EmpiricalCovariance
最大似然共變異數估計器。
GraphicalLasso
使用 l1 懲罰估計器的稀疏逆共變異數估計。
GraphicalLassoCV
使用交叉驗證選擇 l1 懲罰的稀疏逆共變異數。
LedoitWolf
LedoitWolf 估計器。
MinCovDet
最小共變異數行列式 (共變異數的穩健估計器)。
ShrunkCovariance
具有收縮的共變異數估計器。
註解
正規化的共變異數為
(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features),
其中 mu = trace(cov) / n_features,而 shrinkage 由 OAS 公式給出 (參見 [1])。
此處實作的收縮公式與 [1] 中的方程式 23 不同。在原始文章中,公式 (23) 表示 2/p (p 為特徵數量) 在分子和分母中都乘以 Trace(cov*cov),但此操作被省略,因為對於較大的 p,2/p 的值非常小,以至於不會影響估計器的值。
參考文獻
範例
>>> import numpy as np >>> from sklearn.covariance import OAS >>> from sklearn.datasets import make_gaussian_quantiles >>> real_cov = np.array([[.8, .3], ... [.3, .4]]) >>> rng = np.random.RandomState(0) >>> X = rng.multivariate_normal(mean=[0, 0], ... cov=real_cov, ... size=500) >>> oas = OAS().fit(X) >>> oas.covariance_ array([[0.7533..., 0.2763...], [0.2763..., 0.3964...]]) >>> oas.precision_ array([[ 1.7833..., -1.2431... ], [-1.2431..., 3.3889...]]) >>> oas.shrinkage_ np.float64(0.0195...)
- error_norm(comp_cov, norm='frobenius', scaling=True, squared=True)[來源]#
計算兩個共變異數估計器之間的均方誤差。
- 參數:
- comp_cov形狀為 (n_features, n_features) 的類陣列
要比較的共變異數。
- norm{"frobenius", "spectral"}, default="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)[來源]#
將 Oracle Approximating Shrinkage 共變異數模型擬合到 X。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
訓練資料,其中
n_samples
是樣本數,而n_features
是特徵數。- y已忽略
未使用,為符合 API 一致性而依慣例存在。
- 傳回值:
- selfobject
傳回實例本身。
- get_metadata_routing()[來源]#
取得此物件的中繼資料路由。
請查看 使用指南,了解路由機制的運作方式。
- 傳回值:
- routingMetadataRequest
一個
MetadataRequest
,封裝路由資訊。
- get_params(deep=True)[來源]#
取得此估計器的參數。
- 參數:
- deepbool,預設值為 True
如果為 True,將傳回此估計器和包含的子物件 (屬於估計器) 的參數。
- 傳回值:
- paramsdict
參數名稱對應到其值。
- get_precision()[來源]#
精度矩陣的 Getter。
- 傳回值:
- precision_形狀為 (n_features, n_features) 的類陣列
與目前共變異數物件相關聯的精度矩陣。
- mahalanobis(X)[來源]#
計算給定觀測值的平方馬氏距離。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
我們計算其馬氏距離的觀測值。假設觀測值是從與擬合中使用的資料相同的分佈中提取的。
- 傳回值:
- dist形狀為 (n_samples,) 的 ndarray
觀測值的平方馬氏距離。
- score(X_test, y=None)[來源]#
計算在估計的高斯模型下,
X_test
的對數似然率。高斯模型由其平均值和共變異數矩陣定義,分別由
self.location_
和self.covariance_
表示。- 參數:
- X_test形狀如 (n_samples, n_features) 的類陣列資料
我們計算其似然率的測試資料,其中
n_samples
是樣本數,而n_features
是特徵數。X_test
假設與用於擬合的資料(包括中心化)來自相同的分佈。- y已忽略
未使用,為符合 API 一致性而依慣例存在。
- 傳回值:
- res浮點數
X_test
的對數似然率,其中self.location_
和self.covariance_
分別作為高斯模型平均值和共變異數矩陣的估計值。