ShrunkCovariance#
- class sklearn.covariance.ShrunkCovariance(*, store_precision=True, assume_centered=False, shrinkage=0.1)[原始碼]#
具有收縮的共變異數估計器。
請參閱使用者指南以了解更多資訊。
- 參數:
- store_precisionbool,預設值=True
指定是否儲存估計的精確度。
- assume_centeredbool,預設值=False
若為 True,則在計算前不會將資料置中。當處理平均值接近但不完全為零的資料時很有用。若為 False,則會在計算前將資料置中。
- shrinkagefloat,預設值=0.1
用於計算收縮估計的凸組合中的係數。範圍為 [0, 1]。
- 屬性:
- covariance_形狀為 (n_features, n_features) 的 ndarray
估計的共變異數矩陣
- location_形狀為 (n_features,) 的 ndarray
估計的位置,即估計的平均值。
- precision_形狀為 (n_features, n_features) 的 ndarray
估計的偽反矩陣。(僅在 store_precision 為 True 時儲存)
- 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
最小共變異數行列式(共變異數的穩健估計器)。
OAS
Oracle 近似收縮估計器。
注意事項
正規化的共變異數由以下公式給出
(1 - shrinkage) * cov + shrinkage * mu * np.identity(n_features)
其中 mu = trace(cov) / n_features
範例
>>> import numpy as np >>> from sklearn.covariance import ShrunkCovariance >>> 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) >>> cov = ShrunkCovariance().fit(X) >>> cov.covariance_ array([[0.7387..., 0.2536...], [0.2536..., 0.4110...]]) >>> cov.location_ array([0.0622..., 0.0193...])
- error_norm(comp_cov, norm='frobenius', scaling=True, squared=True)[原始碼]#
計算兩個共變異數估計器之間的均方誤差。
- 參數:
- comp_cov形狀為 (n_features, n_features) 的類陣列 (array-like)
要比較的共變異數。
- 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,則傳回誤差範數。
- 傳回值:
- result浮點數 (float)
在 Frobenius 範數意義下,
self
和comp_cov
共變異數估計器之間的均方誤差。
- fit(X, y=None)[原始碼]#
將收縮共變異數模型擬合到 X。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like)
訓練資料,其中
n_samples
是樣本數,而n_features
是特徵數。- y忽略
未使用,為了 API 的一致性而存在。
- 傳回值:
- self物件 (object)
傳回實例本身。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南,了解路由機制如何運作。
- 傳回值:
- routingMetadataRequest
一個
MetadataRequest
,封裝路由資訊。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deepbool,預設值=True
如果為 True,則會傳回此估計器的參數以及包含的子物件(也是估計器)。
- 傳回值:
- params字典 (dict)
參數名稱對應到其值的字典。
- get_precision()[原始碼]#
精確度矩陣的 getter。
- 傳回值:
- precision_形狀為 (n_features, n_features) 的類陣列 (array-like)
與目前共變異數物件關聯的精確度矩陣。
- mahalanobis(X)[原始碼]#
計算給定觀測值的平方馬氏距離。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like)
觀測值,我們計算其馬氏距離。假設觀測值是從擬合中使用的資料相同的分佈中抽取。
- 傳回值:
- 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
是從與擬合中使用的資料相同的分佈中抽取(包括中心化)。- y忽略
未使用,為了 API 的一致性而存在。
- 傳回值:
- res浮點數 (float)
X_test
的對數似然率,其中self.location_
和self.covariance_
分別作為高斯模型平均值和共變異數矩陣的估計器。