LassoLars#
- class sklearn.linear_model.LassoLars(alpha=1.0, *, fit_intercept=True, verbose=False, precompute='auto', max_iter=500, eps=np.float64(2.220446049250313e-16), copy_X=True, fit_path=True, positive=False, jitter=None, random_state=None)[來源]#
使用最小角度迴歸 (Lars) 擬合的 Lasso 模型。
它是一個使用 L1 先驗作為正規化器的線性模型。
Lasso 的最佳化目標是
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
在使用者指南中閱讀更多內容。
- 參數:
- alphafloat,預設值=1.0
乘以懲罰項的常數。預設值為 1.0。
alpha = 0
等同於由LinearRegression
解決的普通最小平方法。由於數值原因,不建議將alpha = 0
與 LassoLars 物件一起使用,您應該選擇 LinearRegression 物件。- fit_interceptbool,預設值=True
是否計算此模型的截距。如果設定為 false,則計算中不會使用截距(即,資料預期為居中的)。
- verbosebool 或 int,預設值=False
設定詳細程度。
- precomputebool、'auto' 或類陣列,預設值='auto'
是否使用預先計算的 Gram 矩陣來加速計算。如果設定為
'auto'
,則讓我們決定。Gram 矩陣也可以作為參數傳遞。- max_iterint,預設值=500
要執行的最大迭代次數。
- epsfloat,預設值=np.finfo(float).eps
在計算 Cholesky 對角線因子的過程中,機器精度的正規化。對於病態系統,請增加此值。與某些基於迭代最佳化的演算法中的
tol
參數不同,此參數不控制最佳化的容差。- copy_Xbool,預設值=True
如果為 True,則會複製 X;否則,可能會被覆寫。
- fit_pathbool,預設值=True
如果
True
,則完整路徑會儲存在coef_path_
屬性中。如果您要計算大型問題或多個目標的解,則將fit_path
設定為False
將會加快速度,尤其是在 alpha 較小的情況下。- positivebool,預設值=False
將係數限制為 >= 0。請注意,您可能需要移除預設為 True 的 fit_intercept。在正數限制下,對於較小的 alpha 值,模型係數不會收斂到普通的最小平方法解。只有逐步 Lars-Lasso 演算法所達到的最小 alpha 值 (
alphas_[alphas_ > 0.].min()
當 fit_path=True 時) 的係數通常與座標下降 Lasso 估計器的解一致。- jitterfloat,預設值=None
要添加到
y
值的均勻雜訊參數上限,以滿足模型一次一個計算的假設。可能有助於穩定性。在 0.23 版中新增。
- random_stateint、RandomState 實例或 None,預設值=None
決定雜訊的隨機數產生。傳遞一個 int 以便在多個函數呼叫中產生可重現的輸出。請參閱詞彙表。如果
jitter
為 None,則忽略。在 0.23 版中新增。
- 屬性:
- alphas_形狀為 (n_alphas + 1,) 或這類陣列的陣列式列表
每次迭代的最大共變異數 (絕對值)。
n_alphas
是max_iter
、n_features
,或路徑中具有alpha >= alpha_min
的節點數,以較小者為準。如果這是一個類陣列的列表,則外部列表的長度為n_targets
。- active_長度為 n_alphas 的列表或這類列表的列表
路徑末尾的活動變數索引。如果這是列表的列表,則外部列表的長度為
n_targets
。- coef_path_形狀為 (n_features, n_alphas + 1) 的陣列式或這類陣列的列表
如果傳遞列表,則預期為 n_targets 個這類陣列之一。沿路徑的係數變化值。如果
fit_path
參數為False
,則不會存在。如果這是一個類陣列的列表,則外部列表的長度為n_targets
。- coef_形狀為 (n_features,) 或 (n_targets, n_features) 的陣列式
參數向量(公式中的 w)。
- intercept_float 或形狀為 (n_targets,) 的陣列式
決策函數中的獨立項。
- n_iter_陣列式或 int
lars_path 尋找每個目標的 alpha 格點所花費的迭代次數。
- n_features_in_int
在擬合期間看到的特徵數量。
在 0.24 版中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在擬合期間看到的特徵名稱。僅當
X
具有的特徵名稱都是字串時,才會定義。在 1.0 版中新增。
另請參閱
lars_path
使用 LARS 演算法計算最小角度迴歸或 Lasso 路徑。
lasso_path
使用座標下降計算 Lasso 路徑。
Lasso
使用 L1 先驗作為正規化器(又名 Lasso)訓練的線性模型。
LassoCV
Lasso 線性模型,沿著正規化路徑進行迭代擬合。
LassoLarsCV
交叉驗證的 Lasso,使用 LARS 演算法。
LassoLarsIC
Lasso 模型擬合使用Lars演算法,並以 BIC 或 AIC 進行模型選擇。
sklearn.decomposition.sparse_encode
稀疏編碼。
範例
>>> from sklearn import linear_model >>> reg = linear_model.LassoLars(alpha=0.01) >>> reg.fit([[-1, 1], [0, 0], [1, 1]], [-1, 0, -1]) LassoLars(alpha=0.01) >>> print(reg.coef_) [ 0. -0.955...]
- fit(X, y, Xy=None)[原始碼]#
使用 X, y 作為訓練數據來擬合模型。
- 參數:
- Xarray-like,形狀為 (n_samples, n_features)
訓練數據。
- yarray-like,形狀為 (n_samples,) 或 (n_samples, n_targets)
目標值。
- Xyarray-like,形狀為 (n_features,) 或 (n_features, n_targets),預設為 None
Xy = np.dot(X.T, y) 可以預先計算。僅當格拉姆矩陣預先計算時才有用。
- 回傳值:
- self物件
回傳 self 的實例。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查閱使用者指南,了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deepbool,預設為 True
如果為 True,將回傳此估計器和包含的子物件(為估計器)的參數。
- 回傳值:
- paramsdict
參數名稱對應到它們的值。
- predict(X)[原始碼]#
使用線性模型進行預測。
- 參數:
- Xarray-like 或稀疏矩陣,形狀為 (n_samples, n_features)
樣本。
- 回傳值:
- Carray,形狀為 (n_samples,)
回傳預測值。
- score(X, y, sample_weight=None)[原始碼]#
回傳預測的決定係數。
決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和
((y_true - y_pred)** 2).sum()
,而 \(v\) 是總平方和((y_true - y_true.mean()) ** 2).sum()
。最佳可能分數為 1.0,而且可以是負數(因為模型可能任意差)。一個總是預測y
期望值的常數模型,而不考慮輸入特徵,會得到一個 \(R^2\) 分數為 0.0。- 參數:
- Xarray-like,形狀為 (n_samples, n_features)
測試樣本。對於某些估計器,這可能是預先計算的核矩陣,或是一個通用物件列表,其形狀為
(n_samples, n_samples_fitted)
,其中n_samples_fitted
是估計器擬合時使用的樣本數。- yarray-like,形狀為 (n_samples,) 或 (n_samples, n_outputs)
X
的真實值。- sample_weightarray-like,形狀為 (n_samples,),預設為 None
樣本權重。
- 回傳值:
- scorefloat
\(R^2\),
self.predict(X)
相對於y
的值。
註解
當在回歸器上呼叫
score
時使用的 \(R^2\) 分數,從 0.23 版本開始使用multioutput='uniform_average'
,以保持與r2_score
的預設值一致。這會影響所有多輸出回歸器的score
方法(除了MultiOutputRegressor
之外)。
- set_fit_request(*, Xy: bool | None | str = '$UNCHANGED$') LassoLars [原始碼]#
請求傳遞到
fit
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱使用者指南,了解路由機制如何運作。每個參數的選項為
True
:請求中繼資料,並在提供時傳遞給fit
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,且中繼估計器不會將其傳遞給fit
。None
:不請求中繼資料,且如果使用者提供,則中繼估計器會引發錯誤。str
:中繼資料應以給定的別名而非原始名稱傳遞給中繼估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留現有的請求。這允許您變更某些參數的請求,而其他參數則不變。在 1.3 版本中新增。
註解
僅當此估計器用作中繼估計器的子估計器時,此方法才相關,例如在
Pipeline
中使用。否則它沒有效果。- 參數:
- Xystr、True、False 或 None,預設為 sklearn.utils.metadata_routing.UNCHANGED
fit
中的Xy
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。
- set_params(**params)[原始碼]#
設定此估計器的參數。
此方法適用於簡單的估計器以及巢狀物件(例如
Pipeline
)。後者的參數形式為<component>__<parameter>
,因此可以更新巢狀物件的每個組件。- 參數:
- **paramsdict
估計器參數。
- 回傳值:
- self估計器實例
估計器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') LassoLars [原始碼]#
請求傳遞到
score
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱使用者指南,了解路由機制如何運作。每個參數的選項為
True
:請求中繼資料,並在提供時傳遞給score
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,且中繼估計器不會將其傳遞給score
。None
:不請求中繼資料,且如果使用者提供,則中繼估計器會引發錯誤。str
:中繼資料應以給定的別名而非原始名稱傳遞給中繼估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 保留現有的請求。這允許您變更某些參數的請求,而其他參數則不變。在 1.3 版本中新增。
註解
僅當此估計器用作中繼估計器的子估計器時,此方法才相關,例如在
Pipeline
中使用。否則它沒有效果。- 參數:
- sample_weightstr、True、False 或 None,預設為 sklearn.utils.metadata_routing.UNCHANGED
score
中的sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。