多輸出分類器#
- class sklearn.multioutput.MultiOutputClassifier(estimator, *, n_jobs=None)[原始碼]#
多目標分類。
此策略包含為每個目標擬合一個分類器。這是一種擴展本身不支援多目標分類的分類器的簡單策略。
- 參數:
- estimator估計器物件
- n_jobsint 或 None,可選 (預設值=None)
平行運行的任務數量。
fit
、predict
和partial_fit
(如果傳遞的估算器支援) 將針對每個目標進行平行處理。當個別的估算器訓練或預測速度很快時,使用
n_jobs > 1
可能會因為平行處理的額外負擔而導致效能降低。None
表示1
,除非在joblib.parallel_backend
環境中。-1
表示使用所有可用的處理程序/執行緒。請參閱 詞彙表 以取得更多詳細資訊。在版本 0.20 中變更:
n_jobs
預設值從1
變更為None
。
- 屬性:
範例
>>> 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
fit
中sample_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物件
更新後的物件。