FixedThresholdClassifier#

class sklearn.model_selection.FixedThresholdClassifier(estimator, *, threshold='auto', pos_label=None, response_method='auto')[原始碼]#

二元分類器,可手動設定決策閾值。

此分類器允許變更預設的決策閾值,用於將後驗機率估計值 (即 predict_proba 的輸出) 或決策分數 (即 decision_function 的輸出) 轉換為類別標籤。

這裡,閾值不會被最佳化,而是設定為常數值。

請在使用者指南中閱讀更多內容。

於 1.5 版本中新增。

參數:
estimator估計器實例

二元分類器,無論是否已擬合,我們都想最佳化其在 predict 期間使用的決策閾值。

threshold{“auto”} 或浮點數,預設值為 “auto”

在將後驗機率估計值 (即 predict_proba 的輸出) 或決策分數 (即 decision_function 的輸出) 轉換為類別標籤時要使用的決策閾值。當 "auto" 時,如果 predict_proba 被用作 response_method,則閾值設定為 0.5,否則設定為 0 (即 decision_function 的預設閾值)。

pos_label整數、浮點數、布林值或字串,預設值為 None

正類別的標籤。用於處理 response_method 方法的輸出。當 pos_label=None 時,如果 y_true{-1, 1}{0, 1} 中,則 pos_label 會設定為 1,否則將會引發錯誤。

response_method{“auto”, “decision_function”, “predict_proba”}, 預設值為 “auto”

分類器 estimator 對應於決策函數的方法,我們想為其找到閾值。它可以是

  • 如果為 "auto",它會嘗試依序調用 "predict_proba""decision_function"

  • 否則,是 "predict_proba""decision_function" 其中之一。如果分類器未實作該方法,將會引發錯誤。

屬性:
estimator_估計器實例

預測時使用的擬合分類器。

classes_形狀為 (n_classes,) 的 ndarray

類別標籤。

n_features_in_整數

擬合期間看到的特徵數量。只有在底層估計器在擬合時公開此屬性時才會定義。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

擬合期間看到的特徵名稱。只有在底層估計器在擬合時公開此屬性時才會定義。

另請參閱

sklearn.model_selection.TunedThresholdClassifierCV

基於某些指標並使用交叉驗證,後續調整決策閾值的分類器。

sklearn.calibration.CalibratedClassifierCV

校準機率的估計器。

範例

>>> from sklearn.datasets import make_classification
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.metrics import confusion_matrix
>>> from sklearn.model_selection import FixedThresholdClassifier, train_test_split
>>> X, y = make_classification(
...     n_samples=1_000, weights=[0.9, 0.1], class_sep=0.8, random_state=42
... )
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, stratify=y, random_state=42
... )
>>> classifier = LogisticRegression(random_state=0).fit(X_train, y_train)
>>> print(confusion_matrix(y_test, classifier.predict(X_test)))
[[217   7]
 [ 19   7]]
>>> classifier_other_threshold = FixedThresholdClassifier(
...     classifier, threshold=0.1, response_method="predict_proba"
... ).fit(X_train, y_train)
>>> print(confusion_matrix(y_test, classifier_other_threshold.predict(X_test)))
[[184  40]
 [  6  20]]
property classes_#

類別標籤。

decision_function(X)[原始碼]#

使用擬合的估計器計算 X 中樣本的決策函數。

參數:
X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣

訓練向量,其中 n_samples 是樣本數,n_features 是特徵數。

返回:
decisions形狀為 (n_samples,) 的 ndarray

計算擬合估計器的決策函數。

fit(X, y, **params)[原始碼]#

擬合分類器。

參數:
X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣

訓練資料。

y形狀為 (n_samples,) 的類陣列

目標值。

**params字典

要傳遞給底層分類器的 fit 方法的參數。

返回:
self物件

返回 self 的實例。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看使用者指南,瞭解路由機制如何運作。

返回:
routingMetadataRouter

封裝路由資訊的 MetadataRouter

get_params(deep=True)[原始碼]#

取得此估計器的參數。

參數:
deepbool,預設值為 True

若為 True,將會回傳此估計器及其包含的子物件(也是估計器)的參數。

返回:
paramsdict

參數名稱對應到它們的值。

predict(X)[原始碼]#

預測新樣本的目標。

參數:
X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣

樣本,如同 estimator.predict 所接受的格式。

返回:
class_labels形狀為 (n_samples,) 的 ndarray

預測的類別。

predict_log_proba(X)[原始碼]#

使用已擬合的估計器,預測 X 的對數類別機率。

參數:
X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣

訓練向量,其中 n_samples 是樣本數,n_features 是特徵數。

返回:
log_probabilities形狀為 (n_samples, n_classes) 的 ndarray

輸入樣本的對數類別機率。

predict_proba(X)[原始碼]#

使用已擬合的估計器,預測 X 的類別機率。

參數:
X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣

訓練向量,其中 n_samples 是樣本數,n_features 是特徵數。

返回:
probabilities形狀為 (n_samples, n_classes) 的 ndarray

輸入樣本的類別機率。

score(X, y, sample_weight=None)[原始碼]#

回傳給定測試資料和標籤的平均準確度。

在多標籤分類中,這是子集準確度,這是一個嚴苛的指標,因為您要求每個樣本的每個標籤集都被正確預測。

參數:
X形狀為 (n_samples, n_features) 的類陣列

測試樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列

X 的真實標籤。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。

返回:
scorefloat

self.predict(X) 相對於 y 的平均準確度。

set_params(**params)[原始碼]#

設定此估計器的參數。

此方法適用於簡單估計器以及巢狀物件(例如 Pipeline)。後者的參數形式為 <component>__<parameter>,因此可以更新巢狀物件的每個組件。

參數:
**params字典

估計器參數。

返回:
self估計器實例

估計器實例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') FixedThresholdClassifier[原始碼]#

請求傳遞給 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

scoresample_weight 參數的中繼資料路由。

返回:
self物件

更新後的物件。