LARS 路徑的格拉姆矩陣模式#
- sklearn.linear_model.lars_path_gram(Xy, Gram, *, n_samples, max_iter=500, alpha_min=0, method='lar', copy_X=True, eps=np.float64(2.220446049250313e-16), copy_Gram=True, verbose=0, return_path=True, return_n_iter=False, positive=False)[原始碼]#
在充分統計模式下的 lars_path。
當 method=’lasso’ 時,最佳化目標為
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
在 `method='lar'` 的情況下,目標函數僅以隱式方程式的形式為人所知(參見 [1] 中的討論)。
請在使用者指南中閱讀更多資訊。
- 參數:
- Xy形狀為 (n_features,) 的 ndarray
Xy = X.T @ y
.- Gram形狀為 (n_features, n_features) 的 ndarray
Gram = X.T @ X
.- n_samplesint
樣本的等效大小。
- max_iterint,預設值為 500
要執行的最大迭代次數,設定為無限大則無限制。
- alpha_minfloat,預設值為 0
路徑上的最小相關性。它對應於 Lasso 中的正規化參數 alpha。
- method{‘lar’, ‘lasso’},預設值為 ‘lar’
指定返回的模型。選擇
'lar'
表示最小角度迴歸,選擇'lasso'
表示 Lasso。- copy_Xbool,預設值為 True
如果為
False
,則會覆寫X
。- epsfloat,預設值為 np.finfo(float).eps
在計算 Cholesky 對角因子時的機器精度正規化。對於條件非常差的系統,請增加此值。與某些基於迭代優化的演算法中的
tol
參數不同,此參數不控制優化的容差。- copy_Grambool,預設值為 True
如果為
False
,則會覆寫Gram
。- verboseint,預設值為 0
控制輸出的詳細程度。
- return_pathbool,預設值為 True
如果
return_path==True
,則返回整個路徑,否則僅返回路徑的最後一點。- return_n_iterbool,預設值為 False
是否返回迭代次數。
- positivebool,預設值為 False
將係數限制為 >= 0。此選項僅允許與方法 ‘lasso’ 一起使用。請注意,對於較小的 alpha 值,模型係數不會收斂到普通的最小平方解。只有逐步 Lars-Lasso 演算法所達到的最小 alpha 值(當
fit_path=True
時,alphas_[alphas_ > 0.].min()
)之前的係數通常與坐標下降 lasso_path 函數的解一致。
- 返回值:
- alphas形狀為 (n_alphas + 1,) 的 ndarray
每次迭代時的最大共變異數(絕對值)。
n_alphas
是max_iter
、n_features
或路徑中alpha >= alpha_min
的節點數,取較小者。- active形狀為 (n_alphas,) 的 ndarray
路徑結束時的活動變數的索引。
- coefs形狀為 (n_features, n_alphas + 1) 的 ndarray
沿路徑的係數。
- n_iterint
運行的迭代次數。僅在
return_n_iter
設定為 True 時返回。
參見
參考文獻
範例
>>> from sklearn.linear_model import lars_path_gram >>> from sklearn.datasets import make_regression >>> X, y, true_coef = make_regression( ... n_samples=100, n_features=5, n_informative=2, coef=True, random_state=0 ... ) >>> true_coef array([ 0. , 0. , 0. , 97.9..., 45.7...]) >>> alphas, _, estimated_coef = lars_path_gram(X.T @ y, X.T @ X, n_samples=100) >>> alphas.shape (3,) >>> estimated_coef array([[ 0. , 0. , 0. ], [ 0. , 0. , 0. ], [ 0. , 0. , 0. ], [ 0. , 46.96..., 97.99...], [ 0. , 0. , 45.70...]])