sklearn.covariance.MinCovDet

class sklearn.covariance.MinCovDet(*, store_precision=True, assume_centered=False, support_fraction=None, random_state=None)

[源码]

最小协方差决定(MCD):协方差的稳健估计器。

最小协方差决定估计器适用于高斯分布数据,也可适用于单峰、对称分布数据。它并不意味着用于多模态数据(用于拟合MinCovDet对象的算法在这种情况下很可能失败)。我们应该考虑投影追踪方法来处理多模态数据集。

用户指南中阅读更多内容。

参数 说明
store_precision bool, default=True
指定是否存储估计的精度。
assume_centered bool, default=False
如果为True,则计算稳健位置和协方差估计的支持度,并重新计算协方差估计,而不会先将数据中心化。这在处理均值显着等于零但不完全为零的数据时很有用。如果为False,则直接使用FastMCD算法计算稳健位置和协方差,而无需进行其他处理。
support_fraction float, default=None
支持MCD原始估算的点数比例。如果为None,则将在算法中使用support_fraction的最小值:[n_sample + n_features + 1] / 2,范围是(0,1)。
random_state int or RandomState instance, default=None
确定用于数据混洗的伪随机数生成器。在多个函数调用之间传递同一个整数值以获得重复的结果。请参阅:Glossary <random_state>
属性 说明
raw_location_ ndarray of shape (n_features,)
修正和重新加权前的稳健估计位置。
raw_covariance_ ndarray of shape (n_features, n_features)
修正和重新加权之前的原始稳健估计协方差。
raw_support_ ndarray of shape (n_samples,)
在修正和重新加权之前,用于计算位置和形状的原始稳健估计的观测数据掩模。
location_ ndarray of shape (n_features,)
估计的稳健位置。
covariance_ ndarray of shape (n_features, n_features)
估计的稳健协方差矩阵。
precision_ ndarray of shape (n_features, n_features)
估计的伪逆矩阵。(仅在store_precision为True时存储)
support_ ndarray of shape (n_samples,)
用于计算位置和形状的稳健估计的观测掩模。
dist_ ndarray of shape (n_samples,)
训练集(fit称为)观测值的马氏距离。

参考

R9f63e655f7bd-Rouseeuw1984 P. J. Rousseeuw. Least median of squares regression. J. Am Stat Ass, 79:871, 1984.

R9f63e655f7bd-Rousseeuw A Fast Algorithm for the Minimum Covariance Determinant Estimator, 1999, American Statistical Association and the American Society for Quality, TECHNOMETRICS

R9f63e655f7bd-ButlerDavies R. W. Butler, P. L. Davies and M. Jhun, Asymptotics For The Minimum Covariance Determinant Estimator, The Annals of Statistics, 1993, Vol. 21, No. 3, 1385-1400

示例

>>> import numpy as np
>>> from sklearn.covariance import MinCovDet
>>> 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=[00],
...                                   cov=real_cov,
...                                   size=500)
>>> cov = MinCovDet(random_state=0).fit(X)
>>> cov.covariance_
array([[0.7411..., 0.2535...],
       [0.2535..., 0.3053...]])
>>> cov.location_
array([0.0813... , 0.0427...])

方法

方法 说明
correct_covariance(self, data) 对原始的最小协方差行列式估计值进行修正。
error_norm(self, comp_cov[, norm, scaling, …]) 计算两个协方差估计量之间的均方误差。
fit(self, X[, y]) 用FastMCD算法拟合最小协方差决定。
get_params(self[, deep]) 获取此估估算器的参数。
get_precision(self) 获取精度矩阵
mahalanobis(self, X) 计算给定观测值的平方马氏距离
reweight_covariance(self, data) 重新加权原始最小协方差决定估计。
score(self, X_test[, y]) 使用self.covariance_计算高斯数据集的对数似然值,作为其协方差矩阵的估计量。
set_params(self, **params) 设置此估算器的参数。
__init__(self, *, store_precision=True, assume_centered=False, support_fraction=None, random_state=None)

[源码]

初始化self. 请参阅help(type(self))以获得准确的说明。

correct_covariance(self, data)

[源码]

对原始的最小协方差决定估计值进行修正。

使用Rousseeuw和Van Driessen在[RVD]中建议的经验校正因子进行修正。

参数 说明
data array-like of shape (n_samples, n_features)
用于计算原始估计值的数据集,具有p个特征和n个样本的数据矩阵。
返回值 说明
covariance_corrected ndarray of shape (n_features, n_features)
校正的稳健协方差估计。

参考资料

[RVD] Fast Algorithm for the Minimum Covariance Determinant Estimator, 1999, American Statistical Association and the American Society for Quality, TECHNOMETRICS

error_norm(self, comp_cov, norm='frobenius', scaling=True, squared=True

[源码]

计算两个协方差估计量之间的均方误差。(在Frobenius规范的意义上)。

参数 说明
comp_cov array-like of shape (n_features, n_features)
要比较的协方差。
norm {“frobenius”, “spectral”}, default=”frobenius”
用于计算误差的规范类型,可用的误差类型:
- ‘frobenius’ (default):
- ‘spectral’:
这里的A是 (comp_cov - self.covariance_)的误差
scaling bool, default=True
如果为True(默认),则平方误差范数除以n_features。如果为False,则不会重新调整平方误差范数。
squared bool, default=True
是计算平方误差范数还是误差范数。如果为True(默认),则返回平方误差范数。如果为False,则返回误差范数。
返回值 说明
result float
selfcomp_cov协方差估计量之间的均方误差(按照Frobenius范式的含义) 。
fit(self,X,y = None )

[源码]

用FastMCD算法拟合最小协方差决定。

参数 说明
X array-like of shape (n_samples, n_features)
训练数据,其中n_samples是样本数量,n_features是特征数量。
y Ignored
未使用,出于API一致性目的而存在。
返回值 说明
self object
get_params(self, deep=True)

[源码]

获取此估计量的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算器与其所包含子对象的参数。
返回值 说明
params mapping of string to any
参数名称映射到其值。
get_precision(self)

[源码]

获取精确度矩阵。

返回值 说明
precision_ array-like of shape (n_features, n_features)
与当前协方差对象关联的精度矩阵。
mahalanobis(self, X)

[源码]

计算给定观测值的平方马氏距离。

参数 说明
X array-like of shape (n_samples, n_features)
观测值,用来计算马氏距离。假定观测值与fit中使用的数据来自相同的分布。
返回值 说明
dist ndarray of shape (n_samples,)
观测值的平方马氏距离。
reweight_covariance(self, data)

[源码]

重新加权原始最小协方差决定的估计值。

使用Rousseeuw在 [RVDriessen]中描述的方法(相当于在计算位置和协方差估计之前从数据集中删除离群点)重新计算观测值的权重。

参数 说明
data array-like of shape (n_samples, n_features)
用于计算原始估计值的数据集,具有p个特征和n个样本的数据矩阵。
返回值 说明
location_reweighted ndarray of shape (n_features,)
重新加权的稳健位置估计。
covariance_reweighted ndarray of shape (n_features, n_features)
重新加权的稳健协方差估计。
support_reweighted ndarray of shape (n_samples,), dtype=bool
用于计算重新加权的稳健定位和协方差估计的观测掩模。

参考资料

[RVDriessen] A Fast Algorithm for the Minimum Covariance Determinant Estimator, 1999, American Statistical Association and the American Society for Quality, TECHNOMETRICS

score(self, X_test, y=None)

[源码]

使用self.covariance_作为协方差矩阵的估计值来计算高斯数据集的对数似然 。

参数 说明
X_test array-like of shape (n_samples, n_features)
计算似然性的测试数据集,其中n_samples是样本数,n_features是特征数。假定X_test与拟合(包括中心化)使用的数据来自相同的分布。
y Ignored
未使用,出于API一致性目的而存在。
返回值 说明
res float
数据集以self.covariance_作为其协方差矩阵的估计量的似然性。
set_params(self, **params)

[源码]

设置此估计器的参数。

该方法适用于简单的估计器以及嵌套对象(例如管道)。后者具有形式参数<component>__<parameter>以便可以更新嵌套对象的每个组件。

参数 说明
**params dict
估算器参数。
返回值 参数
self object
估算器对象。