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 對應於其他線性模型(例如LogisticRegressionLinearSVC)中的 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’ 更適合用於大型資料(可以設定 tolmax_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

fitsample_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

scoresample_weight 參數的中繼資料路由。

回傳值:
self物件

更新後的物件。