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.

emp_cov2D ndarray, shape (n_features, n_features)

Empirical covariance from which to compute the covariance estimate.

alphapositive float

The regularization parameter: the higher alpha, the more regularization, the sparser the inverse covariance.

cov_init2D array (n_features, n_features), optional

The initial guess for the covariance.

mode{‘cd’, ‘lars’}

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.

tolpositive float, optional

The tolerance to declare convergence: if the dual gap goes below this value, iterations are stopped.

enet_tolpositive float, optional

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’.

max_iterinteger, optional

The maximum number of iterations.

verboseboolean, optional

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

return_costsboolean, optional

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

epsfloat, optional

The machine-precision regularization in the computation of the Cholesky diagonal factors. Increase this for very ill-conditioned systems.

return_n_iterbool, optional

Whether or not to return the number of iterations.

covariance2D ndarray, shape (n_features, n_features)

The estimated covariance matrix.

precision2D ndarray, 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.