RidgeClassifier#
- class sklearn.linear_model.RidgeClassifier(alpha=1.0, *, fit_intercept=True, copy_X=True, max_iter=None, tol=0.0001, class_weight=None, solver='auto', positive=False, random_state=None)[source]#
使用 Ridge 迴歸的分類器。
此分類器會先將目標值轉換為
{-1, 1}
,然後將問題視為迴歸任務(在多類別情況下為多輸出迴歸)。更多資訊請參閱使用者指南。
- 參數:
- alphafloat,預設值為 1.0
正規化強度;必須為正浮點數。正規化能改善問題的條件,並減少估計值的變異數。數值越大,正規化強度越高。Alpha 對應於其他線性模型(例如
LogisticRegression
或LinearSVC
)中的1 / (2C)
。- fit_interceptbool,預設值為True
是否計算此模型的截距。如果設為 False,則計算中不會使用截距(例如,預期資料已置中)。
- copy_Xbool,預設值為True
如果為 True,則會複製 X;否則,可能會被覆寫。
- max_iterint,預設值為None
共軛梯度求解器的最大迭代次數。預設值由 scipy.sparse.linalg 決定。
- tolfloat,預設值為1e-4
解的精確度 (
coef_
) 由tol
決定,它為每個求解器指定不同的收斂標準‘svd’:
tol
沒有影響。‘cholesky’:
tol
沒有影響。‘sparse_cg’:殘差的範數小於
tol
。‘lsqr’:
tol
設定為 scipy.sparse.linalg.lsqr 的 atol 和 btol,它們根據矩陣和係數的範數來控制殘差向量的範數。‘sag’ 和 ‘saga’:coef 的相對變化小於
tol
。‘lbfgs’:絕對(投影)梯度的最大值=max|殘差| 小於
tol
。
變更於 1.2 版:預設值從 1e-3 變更為 1e-4,以與其他線性模型保持一致。
- class_weightdict 或 ‘balanced’,預設值為None
以
{class_label: weight}
的形式與類別相關聯的權重。如果未給定,則假設所有類別的權重均為 1。“balanced” 模式使用 y 的值來自動調整權重,其權重與輸入資料中的類別頻率成反比,即
n_samples / (n_classes * np.bincount(y))
。- solver{‘auto’,‘svd’,‘cholesky’,‘lsqr’,‘sparse_cg’,‘sag’,‘saga’,‘lbfgs’},預設值為’auto’
計算常式中要使用的求解器
‘auto’ 會根據資料類型自動選擇求解器。
‘svd’ 使用 X 的奇異值分解來計算 Ridge 係數。它是最穩定的求解器,尤其是對於奇異矩陣,它比 ‘cholesky’ 更穩定,但代價是速度較慢。
‘cholesky’ 使用標準的 scipy.linalg.solve 函數來獲得封閉形式的解。
‘sparse_cg’ 使用 scipy.sparse.linalg.cg 中找到的共軛梯度求解器。作為一種迭代演算法,此求解器比 ‘cholesky’ 更適合用於大型資料(可以設定
tol
和max_iter
)。‘lsqr’ 使用專用的正規化最小平方常式 scipy.sparse.linalg.lsqr。它是最快的,並使用迭代程序。
‘sag’ 使用隨機平均梯度下降法,而 ‘saga’ 使用其無偏且更靈活的版本,名為 SAGA。兩種方法都使用迭代程序,並且當 n_samples 和 n_features 都很大時,通常比其他求解器更快。請注意,僅當特徵的尺度大致相同時,才能保證 ‘sag’ 和 ‘saga’ 的快速收斂。您可以使用 sklearn.preprocessing 中的縮放器預處理資料。
新增於 0.17 版:隨機平均梯度下降求解器。
新增於 0.19 版:SAGA 求解器。
‘lbfgs’ 使用
scipy.optimize.minimize
中實作的 L-BFGS-B 演算法。僅當positive
為 True 時才能使用。
- positivebool,預設值為False
當設定為
True
時,強制係數為正數。在這種情況下,僅支援 ‘lbfgs’ 求解器。- random_stateint,RandomState 實例,預設值為None
當
solver
== ‘sag’ 或 ‘saga’ 時使用,以隨機排序資料。有關詳細資訊,請參閱詞彙表。
- 屬性:
- coef_形狀為 (1, n_features) 或 (n_classes, n_features) 的 ndarray
決策函數中特徵的係數。
當給定問題為二元時,
coef_
的形狀為 (1, n_features)。- intercept_float 或形狀為 (n_targets,) 的 ndarray
決策函數中的獨立項。如果
fit_intercept = False
,則設定為 0.0。- n_iter_None 或形狀為 (n_targets,) 的 ndarray
每個目標的實際迭代次數。僅適用於 sag 和 lsqr 求解器。其他求解器將傳回 None。
classes_
形狀為 (n_classes,) 的 ndarray類別標籤。
- n_features_in_int
在 fit 期間看到的特徵數量。
新增於 0.24 版。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅當
X
具有全部為字串的特徵名稱時才定義。新增於 1.0 版。
- solver_str
計算常式在 fit 時間使用的求解器。
新增於 1.5 版。
另請參閱
Ridge
嶺迴歸。
RidgeClassifierCV
具有內建交叉驗證的嶺分類器。
注意事項
對於多類別分類,會以一對所有的方式訓練 n_class 個分類器。具體而言,這是透過利用 Ridge 中的多變數回應支援來實作。
範例
>>> from sklearn.datasets import load_breast_cancer >>> from sklearn.linear_model import RidgeClassifier >>> X, y = load_breast_cancer(return_X_y=True) >>> clf = RidgeClassifier().fit(X, y) >>> clf.score(X, y) 0.9595...
- property classes_#
類別標籤。
- decision_function(X)[原始碼]#
預測樣本的信賴分數。
樣本的信賴分數與該樣本到超平面的有符號距離成正比。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like) 或稀疏矩陣
我們想要取得信賴分數的資料矩陣。
- 回傳值:
- scores形狀為 (n_samples,) 或 (n_samples, n_classes) 的 ndarray
每個
(n_samples, n_classes)
組合的信賴分數。在二元分類的情況下,是self.classes_[1]
的信賴分數,其中 >0 表示預測為該類別。
- fit(X, y, sample_weight=None)[原始碼]#
擬合 Ridge 分類器模型。
- 參數:
- X形狀為 (n_samples, n_features) 的 ndarray 或稀疏矩陣
訓練資料。
- y形狀為 (n_samples,) 的 ndarray
目標值。
- sample_weight浮點數或形狀為 (n_samples,) 的 ndarray,預設值為 None
每個樣本的個別權重。如果給定浮點數,則每個樣本將具有相同的權重。
版本 0.17 新增:sample_weight 對 RidgeClassifier 的支援。
- 回傳值:
- self物件
估計器的實例。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查閱使用者指南以了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deep布林值,預設值為 True
如果為 True,則將傳回此估計器和包含的子物件(也是估計器)的參數。
- 回傳值:
- params字典
參數名稱對應到它們的值。
- predict(X)[原始碼]#
預測
X
中樣本的類別標籤。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like) 或稀疏矩陣
我們想要預測目標值的資料矩陣。
- 回傳值:
- y_pred形狀為 (n_samples,) 或 (n_samples, n_outputs) 的 ndarray
包含預測值的向量或矩陣。在二元和多類別問題中,這是一個包含
n_samples
的向量。在多標籤問題中,它會回傳一個形狀為(n_samples, n_outputs)
的矩陣。
- score(X, y, sample_weight=None)[原始碼]#
傳回給定測試資料和標籤的平均準確率。
在多標籤分類中,這是子集準確率,這是一個嚴苛的指標,因為您需要針對每個樣本正確預測每個標籤集。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like)
測試樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列 (array-like)
X
的真實標籤。- sample_weight形狀為 (n_samples,) 的類陣列 (array-like),預設值為 None
樣本權重。
- 回傳值:
- score浮點數
self.predict(X)
相對於y
的平均準確率。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') RidgeClassifier [原始碼]#
請求傳遞到
fit
方法的中繼資料。請注意,僅當
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請查閱 使用者指南以了解路由機制如何運作。每個參數的選項為
True
:請求中繼資料,如果提供,則會傳遞給fit
。如果未提供中繼資料,則會忽略該請求。False
:不請求中繼資料,且 meta-estimator 不會將其傳遞給fit
。None
:不請求中繼資料,如果使用者提供中繼資料,則 meta-estimator 會引發錯誤。str
:中繼資料應以指定的別名(而不是原始名稱)傳遞給 meta-estimator。
預設值 (
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$') RidgeClassifier [原始碼]#
請求傳遞給
score
方法的中繼資料。請注意,僅當
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請查閱 使用者指南以了解路由機制如何運作。每個參數的選項為
True
:請求中繼資料,如果提供,則傳遞給score
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,元估計器不會將其傳遞給score
。None
:不請求中繼資料,如果使用者提供中繼資料,則 meta-estimator 會引發錯誤。str
:中繼資料應以指定的別名(而不是原始名稱)傳遞給 meta-estimator。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這讓您可以變更某些參數的請求,而保持其他參數不變。在 1.3 版本中新增。
注意
只有當此估計器被用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
中使用。否則它沒有任何作用。- 參數:
- sample_weightstr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
score
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。