圖形套索#
- 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 懲罰共變異數估計器。
在使用者指南中閱讀更多資訊。
在 v0.20 版本中變更:graph_lasso 已重新命名為 graphical_lasso
- 參數:
- emp_cov形狀為 (n_features, n_features) 的類陣列
用於計算共變異數估計的經驗共變異數。
- alphafloat
正規化參數:alpha 越高,正規化程度越高,逆共變異數越稀疏。範圍是 (0, inf]。
- mode{‘cd’, ‘lars’}, default=’cd’
要使用的 Lasso 求解器:座標下降或 LARS。對於非常稀疏的底層圖,其中 p > n,請使用 LARS。在其他地方,請優先選擇 cd,它在數值上更穩定。
- tolfloat, default=1e-4
宣告收斂的容忍度:如果對偶間隙低於此值,則會停止迭代。範圍是 (0, inf]。
- enet_tolfloat, default=1e-4
用於計算下降方向的彈性網求解器的容忍度。此參數控制給定列更新的搜尋方向的準確性,而不是整體參數估計的準確性。僅用於 mode=’cd’。範圍是 (0, inf]。
- max_iterint, default=100
最大迭代次數。
- verbosebool, default=False
如果 verbose 為 True,則會在每次迭代時列印目標函數和對偶間隙。
- return_costsbool, default=False
如果 return_costs 為 True,則會傳回每次迭代時的目標函數和對偶間隙。
- epsfloat, default=eps
在計算 Cholesky 對角線因子時的機器精度正規化。對於病態系統,請增加此值。預設值為
np.finfo(np.float64).eps
。- return_n_iterbool, default=False
是否傳回迭代次數。
- 傳回:
- covariance形狀為 (n_features, n_features) 的 ndarray
估計的共變異數矩陣。
- precision形狀為 (n_features, n_features) 的 ndarray
估計的(稀疏)精度矩陣。
- costs(目標值, 對偶間隙) 配對的列表
每次迭代的目標函數值和對偶間隙值列表。僅在 return_costs 為 True 時傳回。
- n_iterint
迭代次數。僅在
return_n_iter
設定為 True 時傳回。
另請參閱
GraphicalLasso
使用 l1 懲罰估計器進行稀疏逆共變異數估計。
GraphicalLassoCV
使用 l1 懲罰的交叉驗證選擇進行稀疏逆共變異數。
註釋
用於解決此問題的演算法是 Friedman 2008 年生物統計學論文中的 GLasso 演算法。它與 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...]])