MultiOutputRegressor#

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

多目標回歸。

此策略包括為每個目標擬合一個回歸器。這是一個簡單的策略,用於擴展本機不支持多目標回歸的回歸器。

在版本 0.18 中新增。

參數:
estimator估計器物件

實現 fitpredict 的估計器物件。

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

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

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

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

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

屬性:
estimators_n_output 個估算器的列表

用於預測的估算器。

n_features_in_int

fit 期間看到的特徵數量。只有當底層的 estimator 在 fit 時公開此屬性時,才會定義此屬性。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。只有當底層的估算器在 fit 時公開此屬性時,才會定義此屬性。

在 1.0 版本中新增。

另請參閱

RegressorChain (回歸器鏈)

將迴歸排列成鏈的多標籤模型。

MultiOutputClassifier (多輸出分類器)

獨立分類每個輸出,而不是鏈接。

範例

>>> import numpy as np
>>> from sklearn.datasets import load_linnerud
>>> from sklearn.multioutput import MultiOutputRegressor
>>> from sklearn.linear_model import Ridge
>>> X, y = load_linnerud(return_X_y=True)
>>> regr = MultiOutputRegressor(Ridge(random_state=123)).fit(X, y)
>>> regr.predict(X[[0]])
array([[176..., 35..., 57...]])
fit(X, y, sample_weight=None, **fit_params)[原始碼]#

將模型擬合到資料,針對每個輸出變數分別進行。

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

輸入資料。

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

多輸出目標。指標矩陣會啟用多標籤估計。

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,將傳回此估算器的參數,以及包含的子物件 (估算器)。

傳回值:
paramsdict

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

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

針對每個輸出變數,將模型以遞增方式擬合到資料。

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

輸入資料。

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

多輸出目標。

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

樣本權重。如果為 None,則樣本會平均加權。只有在底層迴歸器支援樣本權重時,才支援此功能。

**partial_fit_paramsstr -> object 的字典

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

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

在 1.3 版本中新增。

傳回值:
self物件

傳回已擬合的實例。

predict(X)[原始碼]#

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

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

輸入資料。

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

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

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

傳回預測的決定係數。

決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和 ((y_true - y_pred)** 2).sum(),而 \(v\) 是總平方和 ((y_true - y_true.mean()) ** 2).sum()。最佳分數為 1.0,而且可能為負值(因為模型可能任意差)。一個總是預測 y 期望值的常數模型,忽略輸入特徵,將會得到 \(R^2\) 分數 0.0。

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

測試樣本。對於某些估計器,這可能是一個預先計算的核矩陣,或者是一個形狀為 (n_samples, n_samples_fitted) 的通用物件列表,其中 n_samples_fitted 是估計器擬合時使用的樣本數。

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

X 的真實值。

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

樣本權重。

傳回值:
score浮點數

self.predict(X) 相對於 y\(R^2\)

注意事項

當在迴歸器上呼叫 score 時使用的 \(R^2\) 分數,從 0.23 版本開始使用 multioutput='uniform_average',以保持與 r2_score 的預設值一致。這會影響所有多輸出迴歸器的 score 方法(除了 MultiOutputRegressor)。

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

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

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

每個參數的選項是

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

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

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

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

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

在 1.3 版本中新增。

注意

只有當此估計器被用作元估計器的子估計器時,此方法才相關,例如在 Pipeline 中使用。否則,它沒有任何作用。

參數:
sample_weight字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

fitsample_weight 參數的中繼資料路由。

傳回值:
self物件

更新後的物件。

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

設定此估計器的參數。

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

參數:
**params字典

估計器參數。

傳回值:
self估計器實例

估計器實例。

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

傳遞至 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 中使用。否則,它沒有任何作用。

參數:
sample_weight字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 partial_fitsample_weight 參數的元數據路由。

傳回值:
self物件

更新後的物件。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') MultiOutputRegressor[來源]#

傳遞至 score 方法的要求元數據。

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

每個參數的選項是

  • True:請求元數據,如果提供,則傳遞給 score。如果未提供元數據,則忽略請求。

  • False:不請求元數據,並且元估計器不會將其傳遞給 score

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

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

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

在 1.3 版本中新增。

注意

只有當此估計器被用作元估計器的子估計器時,此方法才相關,例如在 Pipeline 中使用。否則,它沒有任何作用。

參數:
sample_weight字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 scoresample_weight 參數的元數據路由。

傳回值:
self物件

更新後的物件。