RidgeCV#
- class sklearn.linear_model.RidgeCV(alphas=(0.1, 1.0, 10.0), *, fit_intercept=True, scoring=None, cv=None, gcv_mode=None, store_cv_results=None, alpha_per_target=False, store_cv_values='deprecated')[原始碼]#
具有內建交叉驗證的 Ridge 迴歸。
請參閱詞彙表條目 交叉驗證估計器。
預設情況下,它會執行有效的留一交叉驗證。
請在 使用者指南 中閱讀更多內容。
- 參數:
- alphasarray-like,形狀為 (n_alphas,),預設值為 (0.1, 1.0, 10.0)
要嘗試的 alpha 值陣列。正規化強度;必須為正浮點數。正規化改善了問題的條件,並減少了估計的變異數。較大的值指定較強的正規化。Alpha 對應於其他線性模型中的
1 / (2C)
,例如LogisticRegression
或LinearSVC
。如果使用留一交叉驗證,則 alpha 必須嚴格為正。- fit_interceptbool,預設值為 True
是否為此模型計算截距。如果設定為 False,則在計算中不會使用截距(即,預期資料是居中的)。
- scoring字串、可呼叫的物件,預設值為 None
一個字串(請參閱 評分參數:定義模型評估規則)或一個帶有簽名的評分器可呼叫物件/函數
scorer(estimator, X, y)
。如果為 None,則如果 cv 是 'auto' 或 None(即,當使用留一交叉驗證時),則為負均方誤差,否則為 r2 分數。- cvint、交叉驗證產生器或可迭代的物件,預設值為 None
決定交叉驗證拆分策略。cv 的可能輸入為
None,以使用有效的留一交叉驗證
integer,以指定摺疊次數。
一個可產生 (train, test) 拆分作為索引陣列的可迭代物件。
對於 integer/None 輸入,如果
y
是二元或多類,則使用StratifiedKFold
,否則,使用KFold
。請參閱 使用者指南,以了解此處可以使用的各種交叉驗證策略。
- gcv_mode{‘auto’, ‘svd’, ‘eigen’},預設值為 ‘auto’
指示在執行留一交叉驗證時要使用哪種策略的旗標。選項為
'auto' : use 'svd' if n_samples > n_features, otherwise use 'eigen' 'svd' : force use of singular value decomposition of X when X is dense, eigenvalue decomposition of X^T.X when X is sparse. 'eigen' : force computation via eigendecomposition of X.X^T
「auto」模式是預設值,旨在根據訓練資料的形狀選擇兩者中較便宜的選項。
- store_cv_resultsbool,預設值為 False
指示是否應將對應於每個 alpha 的交叉驗證值儲存在
cv_results_
屬性中(請參閱下方)的旗標。此旗標僅與cv=None
(即使用留一交叉驗證)相容。在 1.5 版中變更: 參數名稱從
store_cv_values
變更為store_cv_results
。- alpha_per_targetbool,預設值為 False
旗標,指示是否針對每個目標分別最佳化 alpha 值(從
alphas
參數清單中選取)(對於多輸出設定:多個預測目標)。當設定為True
時,在擬合後,alpha_
屬性將包含每個目標的值。當設定為False
時,所有目標都使用單一 alpha。在 0.24 版中新增。
- store_cv_valuesbool
旗標,指示是否應將對應於每個 alpha 的交叉驗證值儲存在
cv_values_
屬性中(請參閱下方)。此旗標僅與cv=None
(即使用留一交叉驗證)相容。自 1.5 版起已棄用:
store_cv_values
在 1.5 版中已棄用,改用store_cv_results
,並將在 1.7 版中移除。
- 屬性:
- cv_results_ndarray,形狀為 (n_samples, n_alphas) 或 (n_samples, n_targets, n_alphas),可選
每個 alpha 的交叉驗證值(僅當
store_cv_results=True
且cv=None
時可用)。在呼叫fit()
後,如果scoring is None
,則此屬性將包含均方誤差,否則將包含標準化的每個點預測值。在 1.5 版中變更:
cv_values_
變更為cv_results_
。- coef_ndarray,形狀為 (n_features) 或 (n_targets, n_features)
權重向量。
- intercept_float 或 ndarray,形狀為 (n_targets,)
決策函數中的獨立項。如果
fit_intercept = False
,則設定為 0.0。- alpha_float 或 ndarray,形狀為 (n_targets,)
估計的正規化參數,或者,如果
alpha_per_target=True
,則為每個目標估計的正規化參數。- best_score_float 或 ndarray,形狀為 (n_targets,)
具有最佳 alpha 值的基礎估計器的分數,或者,如果
alpha_per_target=True
,則為每個目標的分數。在 0.23 版本中新增。
- n_features_in_int
在 fit 期間看到的特徵數量。
在 0.24 版中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時才定義。在 1.0 版本中新增。
另請參閱
Ridge
嶺迴歸。
RidgeClassifier
基於 {-1, 1} 標籤上的嶺迴歸的分類器。
RidgeClassifierCV
具有內建交叉驗證的嶺分類器。
範例
>>> from sklearn.datasets import load_diabetes >>> from sklearn.linear_model import RidgeCV >>> X, y = load_diabetes(return_X_y=True) >>> clf = RidgeCV(alphas=[1e-3, 1e-2, 1e-1, 1]).fit(X, y) >>> clf.score(X, y) 0.5166...
- fit(X, y, sample_weight=None, **params)[原始碼]#
使用 cv 擬合嶺迴歸模型。
- 參數:
- X形狀為 (n_samples, n_features) 的 ndarray
訓練資料。如果使用 GCV,必要時將轉換為 float64。
- y形狀為 (n_samples,) 或 (n_samples, n_targets) 的 ndarray
目標值。必要時將轉換為 X 的 dtype。
- sample_weightfloat 或形狀為 (n_samples,) 的 ndarray,預設值為 None
每個樣本的個別權重。如果給定 float,則每個樣本將具有相同的權重。
- **paramsdict,預設值為 None
要傳遞給底層評分器的參數。
在 1.5 版本中新增:僅當
enable_metadata_routing=True
時可用,可以使用sklearn.set_config(enable_metadata_routing=True)
進行設定。有關更多詳細資訊,請參閱 中繼資料路由使用者指南。
- 回傳值:
- self物件
擬合的估計器。
注意事項
當提供 sample_weight 時,選定的超參數可能會取決於我們是使用留一交叉驗證 (cv=None 或 cv='auto') 還是其他形式的交叉驗證,因為只有留一交叉驗證在計算驗證分數時才會考慮樣本權重。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南,了解路由機制如何運作。
在 1.5 版本中新增。
- 回傳值:
- routingMetadataRouter
封裝路由資訊的
MetadataRouter
。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deepbool,預設值為 True
如果為 True,將會回傳此估計器以及所包含的子物件(為估計器)的參數。
- 回傳值:
- paramsdict
參數名稱對應其值的字典。
- 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
樣本權重。
- 回傳值:
- scorefloat
self.predict(X)
相對於y
的 \(R^2\)。
注意事項
在回歸器上呼叫
score
時使用的 \(R^2\) 分數,從 0.23 版本開始使用multioutput='uniform_average'
,以保持與r2_score
的預設值一致。這會影響所有多輸出回歸器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RidgeCV [原始碼]#
請求傳遞到
fit
方法的中繼資料。請注意,此方法僅在
enable_metadata_routing=True
時才相關(請參閱sklearn.set_config
)。請參閱 使用者指南,了解路由機制如何運作。每個參數的選項為
True
:要求中繼資料,並在提供時傳遞給fit
。如果未提供中繼資料,則會忽略該要求。False
:不要求中繼資料,而且元估計器不會將其傳遞給fit
。None
:不要求中繼資料,而且如果使用者提供,元估計器將會引發錯誤。str
:應該使用此給定別名而不是原始名稱,將中繼資料傳遞給元估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的要求。這可讓您變更某些參數的要求,而不是其他參數。在 1.3 版本中新增。
注意
只有在將此估計器用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內部使用。否則,它沒有任何效果。- 參數:
- sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
用於
fit
中的sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。
- set_params(**params)[原始碼]#
設定此估算器的參數。
此方法適用於簡單的估算器以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個組件。- 參數:
- **paramsdict
估算器參數。
- 回傳值:
- self估算器實例
估算器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RidgeCV [原始碼]#
請求傳遞到
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物件
更新後的物件。