LassoLarsCV#
- class sklearn.linear_model.LassoLarsCV(*, fit_intercept=True, verbose=False, max_iter=500, precompute='auto', cv=None, max_n_alphas=1000, n_jobs=None, eps=np.float64(2.220446049250313e-16), copy_X=True, positive=False)[原始碼]#
使用 LARS 演算法的交叉驗證 Lasso。
請參閱交叉驗證估計器的詞彙表條目。
Lasso 的最佳化目標為
(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1
請在使用者指南中閱讀更多資訊。
- 參數:
- fit_interceptbool,預設值為 True
是否要計算此模型的截距。若設為 False,則計算時將不會使用截距(即,預期資料已置中)。
- verbosebool 或 int,預設值為 False
設定詳細程度。
- max_iterint,預設值為 500
要執行的最大疊代次數。
- precomputebool 或 ‘auto’,預設值為 ‘auto’
是否使用預先計算的 Gram 矩陣來加速計算。如果設為
'auto'
,則由我們決定。Gram 矩陣不能作為引數傳遞,因為我們只會使用 X 的子集。- cvint、交叉驗證產生器或可迭代物件,預設值為 None
決定交叉驗證的分割策略。cv 的可能輸入為
None,使用預設的 5 折交叉驗證。
integer,指定摺疊數。
一個可迭代物件,會產生 (訓練, 測試) 分割,以索引陣列表示。
對於 integer/None 輸入,會使用
KFold
。請參閱使用者指南,瞭解此處可使用的各種交叉驗證策略。
在 0.22 版本中變更:如果 cv 的預設值為 None,則從 3 折變更為 5 折。
- max_n_alphasint,預設值為 1000
路徑上用於計算交叉驗證中殘差的最大點數。
- n_jobsint 或 None,預設值為 None
在交叉驗證期間要使用的 CPU 數量。
None
表示 1,除非在joblib.parallel_backend
環境中。-1
表示使用所有處理器。請參閱詞彙表以取得更多詳細資訊。- epsfloat,預設值為 np.finfo(float).eps
在計算 Cholesky 對角因子時的機器精確度正規化。對於病態系統,請增加此值。與某些基於疊代最佳化的演算法中的
tol
參數不同,此參數不會控制最佳化的容差。- copy_Xbool,預設值為 True
如果為 True,則會複製 X;否則,可能會被覆寫。
- positivebool,預設值為 False
限制係數必須 >= 0。請注意,您可能需要移除預設設定為 True 的 fit_intercept。在正限制下,對於較小的 alpha 值,模型係數不會收斂到普通最小平方解。只有逐步 Lars-Lasso 演算法所達到的最小 alpha 值(當 fit_path=True 時,
alphas_[alphas_ > 0.].min()
)之前的係數,通常與座標下降 Lasso 估計器的解一致。因此,只有在預期會產生稀疏解和/或達到稀疏解的問題中,使用 LassoLarsCV 才有意義。
- 屬性:
- coef_形狀為 (n_features,) 的類陣列
參數向量(公式中的 w)
- intercept_float
決策函數中的獨立項。
- coef_path_形狀為 (n_features, n_alphas) 的類陣列
沿路徑的係數變動值
- alpha_float
估計的正規化參數 alpha
- alphas_形狀為 (n_alphas,) 的類陣列
沿路徑的 alpha 不同值
- cv_alphas_形狀為 (n_cv_alphas,) 的類陣列
沿著不同摺疊路徑的 alpha 所有值
- mse_path_形狀為 (n_folds, n_cv_alphas) 的類陣列
沿著路徑(由
cv_alphas
給定的 alpha 值)每個摺疊的遺漏均方誤差- n_iter_類陣列或 int
Lars 使用最佳 alpha 執行的疊代次數。
- active_int 的列表
路徑結尾的活動變數的索引。
- n_features_in_int
在fit期間看到的特徵數量。
在 0.24 版本中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在fit期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時才定義。在 1.0 版本中新增。
另請參閱
lars_path
使用 LARS 演算法計算最小角度迴歸或 Lasso 路徑。
lasso_path
使用座標下降法計算 Lasso 路徑。
Lasso
使用 L1 先驗作為正規化器訓練的線性模型(又稱為 Lasso)。
LassoCV
沿著正規化路徑進行疊代擬合的 Lasso 線性模型。
LassoLars
使用最小角度回歸 (Least Angle Regression, Lars) 擬合 Lasso 模型。
LassoLarsIC
使用 Lars 擬合 Lasso 模型,並以 BIC 或 AIC 進行模型選擇。
sklearn.decomposition.sparse_encode
稀疏編碼。
注意事項
此物件解決的問題與
LassoCV
物件相同。然而,與LassoCV
不同的是,它會自行尋找相關的 alpha 值。一般而言,由於此特性,它會更穩定。但是,它對於高度多重共線性的資料集會更為脆弱。若與總數相比,僅選擇少量特徵時,它會比
LassoCV
更有效率,例如當樣本數相較於特徵數非常少時。在
fit
中,一旦透過交叉驗證找到最佳參數alpha
,模型會使用整個訓練集再次擬合。範例
>>> from sklearn.linear_model import LassoLarsCV >>> from sklearn.datasets import make_regression >>> X, y = make_regression(noise=4.0, random_state=0) >>> reg = LassoLarsCV(cv=5).fit(X, y) >>> reg.score(X, y) 0.9993... >>> reg.alpha_ np.float64(0.3972...) >>> reg.predict(X[:1,]) array([-78.4831...])
- fit(X, y, **params)[原始碼]#
使用 X、y 作為訓練資料擬合模型。
- 參數:
- X類陣列,形狀為 (n_samples, n_features)
訓練資料。
- y類陣列,形狀為 (n_samples,)
目標值。
- **params字典,預設值=None
要傳遞給 CV 分割器的參數。
1.4 版本新增: 僅當
enable_metadata_routing=True
時可用,此設定可透過使用sklearn.set_config(enable_metadata_routing=True)
進行設定。詳情請參閱 中繼資料路由使用者指南。
- 回傳值:
- self物件
回傳自身的實例。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南 了解路由機制如何運作。
1.4 版本新增。
- 回傳值:
- routingMetadataRouter
封裝路由資訊的
MetadataRouter
。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deep布林值,預設值=True
若為 True,將回傳此估計器以及包含的子物件(亦為估計器)的參數。
- 回傳值:
- params字典
參數名稱對應到其值的映射。
- predict(X)[原始碼]#
使用線性模型進行預測。
- 參數:
- X類陣列或稀疏矩陣,形狀為 (n_samples, n_features)
樣本。
- 回傳值:
- C陣列,形狀為 (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。- 參數:
- X類陣列,形狀為 (n_samples, n_features)
測試樣本。對於某些估計器,這可能是一個預先計算的核矩陣或形狀為
(n_samples, n_samples_fitted)
的通用物件列表,其中n_samples_fitted
是估計器擬合中使用的樣本數。- y類陣列,形狀為 (n_samples,) 或 (n_samples, n_outputs)
X
的真實值。- sample_weight類陣列,形狀為 (n_samples,),預設值=None
樣本權重。
- 回傳值:
- score浮點數
self.predict(X)
相對於y
的 \(R^2\) 值。
注意事項
當在回歸器上呼叫
score
時使用的 \(R^2\) 分數,自 0.23 版本起使用multioutput='uniform_average'
,以保持與r2_score
的預設值一致。這會影響所有多輸出回歸器的score
方法(除了MultiOutputRegressor
以外)。
- set_fit_request(*, Xy: bool | None | str = '$UNCHANGED$') LassoLarsCV [原始碼]#
請求傳遞給
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$') LassoLarsCV [原始碼]#
請求傳遞給
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物件
更新後的物件。