lars_path#

sklearn.linear_model.lars_path(X, y, Xy=None, *, Gram=None, 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 演算法計算最小角度迴歸或 Lasso 路徑。

當 method='lasso' 時,最佳化目標為

(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1

當 method='lar' 時,目標函式僅以隱式方程式的形式得知(請參閱 [1] 中的討論)。

使用者指南中閱讀更多內容。

參數:
XNone 或形狀為 (n_samples, n_features) 的 ndarray

輸入資料。如果 X 為 None,則 Gram 也必須為 None。如果僅有 Gram 矩陣可用,請改用 lars_path_gram

yNone 或形狀為 (n_samples,) 的 ndarray

輸入目標。

Xy形狀為 (n_features,) 的類陣列,預設為 None

Xy = X.T @ y,可以預先計算。僅當預先計算 Gram 矩陣時才有用。

GramNone、'auto'、bool、形狀為 (n_features, n_features) 的 ndarray,預設為 None

預先計算的 Gram 矩陣 X.T @ X,如果為 'auto',則當樣本數多於特徵數時,會從給定的 X 預先計算 Gram 矩陣。

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

如果為 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_itern_features,要嘛是路徑中 alpha >= alpha_min 的節點數,以較小者為準。

active形狀為 (n_alphas,) 的 ndarray

路徑結尾處的活動變數的索引。

coefs形狀為 (n_features, n_alphas + 1) 的 ndarray

沿路徑的係數。

n_iterint

執行的疊代次數。僅當 return_n_iter 設定為 True 時才會傳回。

另請參閱

lars_path_gram

在充分統計模式下計算 LARS 路徑。

lasso_path

使用座標下降計算 Lasso 路徑。

LassoLars

使用最小角度迴歸 (又稱 Lars) 擬合的 Lasso 模型。

Lars

最小角度迴歸模型 (又稱 LAR)。

LassoLarsCV

交叉驗證的 Lasso,使用 LARS 演算法。

LarsCV

交叉驗證的最小角度迴歸模型。

sklearn.decomposition.sparse_encode

稀疏編碼。

參考文獻

範例

>>> from sklearn.linear_model import lars_path
>>> 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(X, y)
>>> alphas.shape
(3,)
>>> estimated_coef
array([[ 0.     ,  0.     ,  0.     ],
       [ 0.     ,  0.     ,  0.     ],
       [ 0.     ,  0.     ,  0.     ],
       [ 0.     , 46.96..., 97.99...],
       [ 0.     ,  0.     , 45.70...]])