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...]])