sklearn.covariance.GraphicalLasso

class sklearn.covariance.GraphicalLasso(alpha=0.01, *, mode='cd', tol=0.0001, enet_tol=0.0001, max_iter=100, verbose=False, assume_centered=False)

[源码]

使用l1-惩罚估计量的稀疏逆协方差估计。

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

v0.20版中已更改: GraphLasso已重命名为GraphicalLasso

参数 说明
alpha float, default=0.01
正则化参数:alpha值越大,正则化程度越高,逆协方差矩阵越稀疏。范围是(0,inf]。
mode {‘cd’, ‘lars’}, default=’cd’
设置lasso求解器:坐标下降(cd)或LARS。LARS用于特征数量大于样本数量的非常稀疏的情况。在数值更稳定的情况首先cd。
tol float, default=1e-4
声明收敛的容差:如果两次迭代结果的差值低于此值,则停止迭代。范围是(0,inf]。
enet_tol float, default=1e-4
用于计算下降方向的弹性网求解器的容差。该参数控制给定列更新搜索方向的准确性,而不是整体参数估计的准确性。仅用于mode ='cd'。范围是(0,inf]。
max_iter int, default=100
最大迭代次数。
verbose bool, default=False
如果设置为True,则在每次迭代时绘制目标函数和对偶间隙。
assume_centered bool, default=False
如果为True,则在计算之前数据不会中心化,这在处理均值几乎为零但不完全为零的数据时很有用。如果为False,则在计算之前会将数据中心化。
属性 说明
location_ ndarray of shape (n_features,)
估计位置,即估计平均值。
covariance_ ndarray of shape (n_features, n_features)
估计协方差矩阵
precision_ ndarray of shape (n_features, n_features)
估计的伪逆矩阵。
n_iter_ int
运行的迭代次数。

另见

graphical_lassoGraphicalLassoCV

示例

>>> import numpy as np
>>> from sklearn.covariance import GraphicalLasso
>>> true_cov = np.array([[0.80.00.20.0],
...                      [0.00.40.00.0],
...                      [0.20.00.30.1],
...                      [0.00.00.10.7]])
>>> np.random.seed(0)
>>> X = np.random.multivariate_normal(mean=[0000],
...                                   cov=true_cov,
...                                   size=200)
>>> cov = GraphicalLasso().fit(X)
>>> np.around(cov.covariance_, decimals=3)
array([[0.8160.0490.2180.019],
       [0.0490.3640.0170.034],
       [0.2180.0170.3220.093],
       [0.0190.0340.0930.69 ]])
>>> np.around(cov.location_, decimals=3)
array([0.0730.04 , 0.0380.143])

方法

方法 说明
error_norm(self, comp_cov[, norm, scaling, …]) 计算两个协方差估计量之间的均方误差。
fit(self, X[, y]) 使GraphicalLasso模型拟合X。
get_params(self[, deep]) 获取此估计器的参数。
get_precision(self) 获取精确矩阵。
mahalanobis(self, X) 计算给定观测值的平方马氏距离。
score(self, X_test[, y]) 使用self.covariance_计算高斯数据集的对数似然值,作为其协方差矩阵的估计量。
set_params(self, **params) 设置此估计器的参数。
__init__(self, alpha=0.01, *, mode='cd', tol=0.0001, enet_tol=0.0001, max_iter=100, verbose=False, assume_centered=False)

[源码]

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

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 )

[源码]

拟合GraphicalLasso模型。

参数 说明
X array-like of shape (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,)
观测值的平方马氏距离。
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
估计器对象。