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 範數意義下,selfcomp_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_ 分別作為高斯模型平均值和共變異數矩陣的估計器。

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

設定此估算器的參數。

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

參數:
**paramsdict

估算器參數。

傳回值:
self估算器實例

估算器實例。