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"
其中之一。如果分類器未實作該方法,將會引發錯誤。
- 屬性:
另請參閱
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
score
中sample_weight
參數的中繼資料路由。
- 返回:
- self物件
更新後的物件。