class
sklearn.linear_model.
LassoCV
(eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, normalize=False, precompute='auto', max_iter=1000, tol=0.0001, copy_X=True, cv=None, verbose=False, n_jobs=None, positive=False, random_state=None, selection='cyclic')
沿着正則化路徑迭代擬合的Lasso模型。
最佳模型由交叉驗證得到。
目標函數
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
參數(Parameters)
- eps:float, optional
路徑長度。eps=1e-3即alpha_min / alpha_max = 1e-3。
- n_alphas:int, optional
正則化路徑中alpha的個數。
- alphas:numpy array, optional
alpha組成的list。如果為None,自動選擇alpha。
- fit_intercept:boolean, default True
是否計算截距。如果為False,對數據進行去中心化處理。
- normalize:boolean, optional, default False
當fit_intercept=False時,該參數忽略。如果為normalize=True,使用回歸模型之前先對回歸數據X進行去均值和除以l2范數的處理。如果要對數據X進行標准化,令normalize=False,並在調用fit方法之前,使用sklearn.preprocessing.StandardScaler進行標准化
。
- precompute:True | False | ‘auto’ | array-like
是否使用事先計算好的Gram矩陣來加速模型計算。如果precompute='auto',讓程序自動決定。Gram矩陣可以作為參數被傳遞。對於稀疏數據,通常令precompute=True,保留稀疏性。
- max_iter:int, optional
最大迭代次數。
- tol:float, optional
優化容忍度:如果更新大於tol,繼續優化,直到小於tol。
- copy_X:boolean, optional, default True
如果copy_X=True,復制X;如果copy_X=False,覆蓋上次運行的X。
- cv:int, cross-validation generator or an iterable, optional
確定交叉驗證划分策略。
-
- None:使用默認的5折
- integer:折數
- CV splitter
- (train, test)划分數組
- verbose:bool or integer
輸出的詳細程度。
- n_jobs:int or None, optional (default=None)
交叉驗證時使用的CPU個數。
- None:1個CPU(不包括使用
joblib.parallel_backend
) - -1:所有CPU
- positive:bool, optional
如果positive=True,強制將系數設為正數。
- random_state:int, RandomState instance or None, optional, default None
偽隨機數發生器種子,隨機選擇特征來更新模型。如果為int,random_state即為隨機數發生器使用的種子;如果為RandomState實例,random_state即為隨機數發生器;如果為None,隨機數發生器為np.random使用的隨機數發生器實例。該參數僅當selection=‘random’時使用。
- selection:str, default ‘cyclic’
如果為‘random’,每次迭代都會更新隨機系數,而不是按順序遍歷每個特征。該參數值可以使得算法更快收斂,尤其當tol>1e-4時。
屬性(Attributes)
- alpha_:float
交叉驗證選擇的懲罰項。
- coef_:array, shape (n_features,) | (n_targets, n_features)
系數向量。目標函數中的w。
- intercept_:float | array, shape (n_targets,)
決策函數的依賴項。
- mse_path_:array, shape (n_alphas, n_folds)
每一個alpha、每一折交叉驗證的測試集均方誤差。
- alphas_:numpy array, shape (n_alphas,)
alpha網格。
- dual_gap_:ndarray, shape ()
最佳alpha(alpha_)優化結束時的dual gap。
- n_iter_:int
坐標下降法求解達到容忍度時的迭代次數。
注意
為避免不必要的內存占用,X應為numpy數組。
方法(Methods)
fit
(self, X, y):使用坐標下降法擬合模型。get_params
(self[, deep]):獲得Lasso模型的參數。path
(X, y[, eps, n_alphas, alphas, …]):使用坐標下降法計算Lasso path。predict
(self, X):模型預測。score
(self, X, y[, sample_weight]):返回預測誤差。set_params
(self, \*\*params):設置估計器的參數。