graphical_lasso#

sklearn.covariance.graphical_lasso(emp_cov, alpha, *, mode='cd', tol=0.0001, enet_tol=0.0001, max_iter=100, verbose=False, return_costs=False, eps=np.float64(2.220446049250313e-16), return_n_iter=False)[源代码]#

L1-惩罚协方差估计量。

阅读更多的 User Guide .

在 v0.20 版本发生变更: graph_lasso已更名为graphical_lasso

参数:
emp_cov形状类似阵列(n_features,n_features)

根据其计算协方差估计的经验协方差。

alpha浮子

正规化参数:Alpha越高,正规化越多,逆协方差越稀疏。范围为(0,inf]。

mode' CD ',',默认=' CD '

要使用的Lasso解算器:坐标下降或LARS。将LARS用于非常稀疏的基础图,其中p > n。其他地方更喜欢数字上更稳定的CD。

tolfloat,默认= 1 e-4

声明收敛的容差:如果对偶间隙低于此值,则停止迭代。范围为(0,inf]。

enet_tolfloat,默认= 1 e-4

用于计算下降方向的弹性网解算器的容差。此参数控制给定列更新的搜索方向的准确性,而不是总体参数估计的准确性。仅用于模式=' CD '。范围为(0,inf]。

max_iterint,默认=100

最大迭代次数。

verbose布尔,默认=假

如果verbose为True,则在每次迭代时打印目标函数和双重间隙。

return_costs布尔,默认=假

如果Return_costs为True,则返回每次迭代的目标函数和双重间隙。

epsfloat,默认=eps

Cholesky对角线因子计算中的机器精度正规化。对于条件非常恶劣的系统,请增加这一比例。默认值为 np.finfo(np.float64).eps .

return_n_iter布尔,默认=假

是否返回迭代次数。

返回:
covariance形状的nd数组(n_features,n_features)

估计的协方差矩阵。

precision形状的nd数组(n_features,n_features)

估计的(稀疏)精度矩阵。

costs(objective,dual_gap)对列表

每次迭代时目标函数和双重差距的值列表。仅在Return_costs为True时返回。

n_iterint

迭代次数。只有在以下情况下才返回 return_n_iter 设置为True。

参见

GraphicalLasso

Sparse inverse covariance estimation with an l1-penalized estimator.

GraphicalLassoCV

具有l1罚分的交叉验证选择的稀疏逆协方差。

注意到

用于解决这个问题的算法是来自弗里德曼2008年生物统计学论文的格拉索算法。与R中的算法相同 glasso 包.

glasso R包是对角线系数不受惩罚。

示例

>>> import numpy as np
>>> from sklearn.datasets import make_sparse_spd_matrix
>>> from sklearn.covariance import empirical_covariance, graphical_lasso
>>> true_cov = make_sparse_spd_matrix(n_dim=3,random_state=42)
>>> rng = np.random.RandomState(42)
>>> X = rng.multivariate_normal(mean=np.zeros(3), cov=true_cov, size=3)
>>> emp_cov = empirical_covariance(X, assume_centered=True)
>>> emp_cov, _ = graphical_lasso(emp_cov, alpha=0.05)
>>> emp_cov
array([[ 1.68...,  0.21..., -0.20...],
       [ 0.21...,  0.22..., -0.08...],
       [-0.20..., -0.08...,  0.23...]])