多輸出分類器#

class sklearn.multioutput.MultiOutputClassifier(estimator, *, n_jobs=None)[原始碼]#

多目標分類。

此策略包含為每個目標擬合一個分類器。這是一種擴展本身不支援多目標分類的分類器的簡單策略。

參數:
estimator估計器物件

一個實現擬合預測的估計器物件。只有當estimator實現了預測機率方法時,才會公開該方法。

n_jobsint 或 None,可選 (預設值=None)

平行運行的任務數量。fitpredictpartial_fit (如果傳遞的估算器支援) 將針對每個目標進行平行處理。

當個別的估算器訓練或預測速度很快時,使用 n_jobs > 1 可能會因為平行處理的額外負擔而導致效能降低。

None 表示 1,除非在 joblib.parallel_backend 環境中。-1 表示使用所有可用的處理程序/執行緒。請參閱 詞彙表 以取得更多詳細資訊。

在版本 0.20 中變更:n_jobs 預設值從 1 變更為 None

屬性:
classes_形狀為 (n_classes,) 的 ndarray

類別標籤。

estimators_包含 n_output 個估算器的列表

用於預測的估算器。

n_features_in_int

fit 期間看到的特徵數量。僅當基礎 estimator 在 fit 時公開此屬性時才定義。

在版本 0.24 中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當基礎估算器在 fit 時公開此屬性時才定義。

在版本 1.0 中新增。

另請參閱

分類器鏈

一個多標籤模型,將二元分類器排列成一個鏈。

多輸出迴歸器

為每個目標變數擬合一個迴歸器。

範例

>>> import numpy as np
>>> from sklearn.datasets import make_multilabel_classification
>>> from sklearn.multioutput import MultiOutputClassifier
>>> from sklearn.linear_model import LogisticRegression
>>> X, y = make_multilabel_classification(n_classes=3, random_state=0)
>>> clf = MultiOutputClassifier(LogisticRegression()).fit(X, y)
>>> clf.predict(X[-2:])
array([[1, 1, 1],
       [1, 0, 1]])
fit(X, Y, sample_weight=None, **fit_params)[原始碼]#

將模型擬合到資料矩陣 X 和目標 Y。

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

輸入資料。

Y形狀為 (n_samples, n_classes) 的類陣列

目標值。

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

樣本權重。如果為 None,則樣本權重相等。僅當基礎分類器支援樣本權重時才支援。

**fit_params字串 -> 物件的字典

傳遞給每個步驟的 estimator.fit 方法的參數。

在版本 0.23 中新增。

回傳值:
self物件

回傳一個已擬合的實例。

get_metadata_routing()[原始碼]#

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

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

在版本 1.3 中新增。

回傳值:
routingMetadataRouter

一個封裝路由資訊的 MetadataRouter

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

取得此估算器的參數。

參數:
deepbool,預設值為 True

如果為 True,則將回傳此估算器和其中包含的子物件 (也就是估算器) 的參數。

回傳值:
params字典

參數名稱對應到其值的字典。

partial_fit(X, y, classes=None, sample_weight=None, **partial_fit_params)[原始碼]#

為每個類別輸出增量擬合一個單獨的模型。

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

輸入資料。

y形狀為 (n_samples, n_outputs) 的類陣列、稀疏矩陣

多輸出目標。

classes形狀為 (n_outputs,) 的 ndarray 列表,預設值為 None

每個陣列都是一個輸出中唯一的類別 (字串/整數)。可以使用 [np.unique(y[:, i]) for i in range(y.shape[1])] 取得,其中 y 是整個資料集的目標矩陣。此參數在首次呼叫 partial_fit 時為必要,在後續呼叫中可以省略。請注意,y 不需要包含 classes 中的所有標籤。

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

樣本權重。如果為 None,則樣本權重相等。僅當基礎迴歸器支援樣本權重時才支援。

**partial_fit_params字串 -> 物件的字典

傳遞給每個子估算器的 estimator.partial_fit 方法的參數。

僅當 enable_metadata_routing=True 時才可用。請參閱使用者指南

在版本 1.3 中新增。

回傳值:
self物件

回傳一個已擬合的實例。

predict(X)[原始碼]#

使用每個目標變數的模型預測多輸出變數。

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

輸入資料。

回傳值:
y形狀為 (n_samples, n_outputs) 的類陣列、稀疏矩陣

跨多個預測器預測多輸出目標。注意:每個預測器都會產生獨立的模型。

predict_proba(X)[原始碼]#

返回每個輸出的每個類別的預測機率。

如果任何估算器沒有 predict_proba,此方法將引發 ValueError

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

輸入資料。

回傳值:
p形狀為 (n_samples, n_classes) 的陣列,如果 n_outputs > 1,則為 n_outputs 個此類陣列的列表。

輸入樣本的類別機率。類別的順序與屬性 classes_ 中的順序一致。

在 0.19 版本中變更:此函數現在返回一個陣列列表,其中列表的長度為 n_outputs,並且每個陣列對於該特定輸出都是 (n_samples, n_classes)。

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

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

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

測試樣本。

y形狀為 (n_samples, n_outputs) 的類陣列 (array-like)

X 的真實值。

回傳值:
scores浮點數 (float)

預測目標與真實目標的平均準確度。

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

請求傳遞給 fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,瞭解路由機制如何運作。

每個參數的選項為

  • True:請求中繼資料,並在提供時傳遞給 fit。如果未提供中繼資料,則會忽略該請求。

  • False:不請求中繼資料,並且元估算器不會將其傳遞給 fit

  • None:不請求中繼資料,如果使用者提供,元估算器將引發錯誤。

  • str:應該使用此給定的別名而不是原始名稱將中繼資料傳遞給元估算器。

預設值 (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> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**params字典 (dict)

估算器參數。

回傳值:
self估算器實例

估算器實例。

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

請求傳遞給 partial_fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。請參閱 使用者指南,瞭解路由機制如何運作。

每個參數的選項為

  • True:請求中繼資料,並在提供時傳遞給 partial_fit。如果未提供中繼資料,則會忽略該請求。

  • False:不請求中繼資料,且元估計器不會將其傳遞給 partial_fit

  • None:不請求中繼資料,如果使用者提供,元估算器將引發錯誤。

  • str:應該使用此給定的別名而不是原始名稱將中繼資料傳遞給元估算器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這允許您更改某些參數的請求,而不是其他參數的請求。

在版本 1.3 中新增。

注意

僅當此估算器用作元估算器的子估算器時,此方法才相關,例如在 Pipeline 內部使用。否則,它沒有任何效果。

參數:
classesstr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

partial_fit 中,用於 classes 參數的中繼資料路由。

sample_weightstr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED

partial_fit 中,用於 sample_weight 參數的中繼資料路由。

回傳值:
self物件

更新後的物件。