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