OutputCodeClassifier#
- class sklearn.multiclass.OutputCodeClassifier(estimator, *, code_size=1.5, random_state=None, n_jobs=None)[原始碼]#
(錯誤校正)輸出碼多類別策略。
基於輸出碼的策略,是將每個類別以二元碼(0 和 1 的陣列)表示。在擬合時,會針對碼本中的每個位元擬合一個二元分類器。在預測時,這些分類器會用於將新的點投影到類別空間中,並選擇最接近這些點的類別。這些策略的主要優勢在於,使用者可以控制使用的分類器數量,以便壓縮模型 (0 <
code_size
< 1) 或使模型更能抵抗錯誤 (code_size
> 1)。請參閱文件以瞭解更多詳細資訊。請在使用者指南中閱讀更多內容。
- 參數:
- estimatorestimator 物件
一個實現 fit 和 decision_function 或 predict_proba 的 estimator 物件。
- code_sizefloat, default=1.5
用於建立碼本的類別數百分比。介於 0 和 1 之間的數字會比一對其餘 (one-vs-the-rest) 需要更少的分類器。大於 1 的數字會比一對其餘需要更多的分類器。
- random_stateint, RandomState 實例, default=None
用於初始化碼本的生成器。傳遞一個整數,以便在多次函式呼叫中產生可重現的輸出。請參閱 詞彙表。
- n_jobsint, default=None
用於計算的作業數:多類別問題是平行計算的。
None
表示 1,除非在joblib.parallel_backend
環境中。-1
表示使用所有處理器。請參閱 詞彙表 以瞭解更多詳細資訊。
- 屬性:
- estimators_
int(n_classes * code_size)
個 estimator 的列表 用於預測的 estimator。
- classes_形狀為 (n_classes,) 的 ndarray
包含標籤的陣列。
- code_book_形狀為 (n_classes,
len(estimators_)
) 的 ndarray 包含每個類別程式碼的二元陣列。
- n_features_in_int
在 fit 期間看到的特徵數量。僅在底層 estimator 在擬合時公開此屬性時定義。
在 0.24 版中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅在底層 estimator 在擬合時公開此屬性時定義。
在 1.0 版中新增。
- estimators_
另請參閱
OneVsRestClassifier
一對其餘多類別策略。
OneVsOneClassifier
一對一多類別策略。
參考資料
[1]“透過錯誤校正輸出碼解決多類別學習問題”,Dietterich T., Bakiri G., 《人工智慧研究期刊》2, 1995。
[2]“錯誤編碼方法和 PICT”,James G., Hastie T., 《計算和圖形統計期刊》7, 1998。
[3]“統計學習的要素”,Hastie T., Tibshirani R., Friedman J., 第 606 頁(第二版)2008。
範例
>>> from sklearn.multiclass import OutputCodeClassifier >>> from sklearn.ensemble import RandomForestClassifier >>> from sklearn.datasets import make_classification >>> X, y = make_classification(n_samples=100, n_features=4, ... n_informative=2, n_redundant=0, ... random_state=0, shuffle=False) >>> clf = OutputCodeClassifier( ... estimator=RandomForestClassifier(random_state=0), ... random_state=0).fit(X, y) >>> clf.predict([[0, 0, 0, 0]]) array([1])
- fit(X, y, **fit_params)[原始碼]#
擬合底層的 estimator。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
資料。
- y形狀為 (n_samples,) 的類陣列
多類別目標。
- **fit_paramsdict
傳遞給每個子 estimator 的
estimator.fit
方法的參數。在 1.4 版中新增:僅在
enable_metadata_routing=True
時可用。請參閱 中繼資料路由使用者指南以瞭解更多詳細資訊。
- 返回:
- selfobject
傳回 self 的已擬合實例。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看關於路由機制如何運作的 使用者指南。
在 1.4 版中新增。
- 返回:
- routingMetadataRouter
封裝路由資訊的
MetadataRouter
。
- get_params(deep=True)[原始碼]#
取得此 estimator 的參數。
- 參數:
- deepbool, default=True
如果為 True,將傳回此 estimator 的參數以及包含的子物件(即 estimator)。
- 返回:
- paramsdict
參數名稱對應到它們的值。
- predict(X)[原始碼]#
使用底層 estimator 預測多類別目標。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
資料。
- 返回:
- y形狀為 (n_samples,) 的 ndarray
預測的多類別目標。
- 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浮點數 (float)
self.predict(X)
相對於y
的平均準確度。
- set_params(**params)[原始碼]#
設定此估算器的參數。
此方法適用於簡單的估算器以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個組件。- 參數:
- **params字典 (dict)
估算器參數。
- 返回:
- self估算器實例
估算器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OutputCodeClassifier [原始碼]#
請求傳遞給
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
參數的中繼資料路由。
- 返回:
- selfobject
更新的物件。