sklearn.covariance.graphical_lasso(emp_cov, alpha, *, cov_init=None, mode='cd', tol=0.0001, enet_tol=0.0001, max_iter=100, verbose=False, return_costs=False, eps=2.220446049250313e-16, return_n_iter=False)[source]

l1-penalized covariance estimator

Read more in the User Guide.

Changed in version v0.20: graph_lasso has been renamed to graphical_lasso

emp_covndarray of shape (n_features, n_features)

Empirical covariance from which to compute the covariance estimate.


The regularization parameter: the higher alpha, the more regularization, the sparser the inverse covariance. Range is (0, inf].

cov_initarray of shape (n_features, n_features), default=None

The initial guess for the covariance. If None, then the empirical covariance is used.

mode{‘cd’, ‘lars’}, default=’cd’

The Lasso solver to use: coordinate descent or LARS. Use LARS for very sparse underlying graphs, where p > n. Elsewhere prefer cd which is more numerically stable.

tolfloat, default=1e-4

The tolerance to declare convergence: if the dual gap goes below this value, iterations are stopped. Range is (0, inf].

enet_tolfloat, default=1e-4

The tolerance for the elastic net solver used to calculate the descent direction. This parameter controls the accuracy of the search direction for a given column update, not of the overall parameter estimate. Only used for mode=’cd’. Range is (0, inf].

max_iterint, default=100

The maximum number of iterations.

verbosebool, default=False

If verbose is True, the objective function and dual gap are printed at each iteration.

return_costsbool, default=Flase

If return_costs is True, the objective function and dual gap at each iteration are returned.

epsfloat, default=eps

The machine-precision regularization in the computation of the Cholesky diagonal factors. Increase this for very ill-conditioned systems. Default is np.finfo(np.float64).eps.

return_n_iterbool, default=False

Whether or not to return the number of iterations.

covariancendarray of shape (n_features, n_features)

The estimated covariance matrix.

precisionndarray of shape (n_features, n_features)

The estimated (sparse) precision matrix.

costslist of (objective, dual_gap) pairs

The list of values of the objective function and the dual gap at each iteration. Returned only if return_costs is True.


Number of iterations. Returned only if return_n_iter is set to True.


The algorithm employed to solve this problem is the GLasso algorithm, from the Friedman 2008 Biostatistics paper. It is the same algorithm as in the R glasso package.

One possible difference with the glasso R package is that the diagonal coefficients are not penalized.