VotingRegressor# (投票迴歸器)
- class sklearn.ensemble.VotingRegressor(estimators, *, weights=None, n_jobs=None, verbose=False)[原始碼]#
用於未擬合估計器的預測投票回歸器。
投票回歸器是一種集成元估計器,它在整個數據集上擬合多個基礎回歸器。然後,它會平均各個預測值以形成最終預測。
如需詳細範例,請參閱 繪製個別和投票回歸預測。
請在使用者指南中閱讀更多資訊。
在 0.21 版本中新增。
- 參數:
- estimators (str, 估計器) 元組的列表
在
VotingRegressor
上調用fit
方法將會擬合那些原始估計器的複製品,這些複製品將儲存在類別屬性self.estimators_
中。可以使用set_params
將估計器設定為'drop'
。在 0.21 版本中變更: 接受
'drop'
。在 0.22 版本中,使用 None 已被棄用,並在 0.24 版本中移除支援。- weights形狀為 (n_regressors,) 的類陣列,預設值=None
在平均之前,用來加權預測值出現次數的權重序列 (
float
或int
)。如果為None
,則使用均勻權重。- n_jobsint,預設值=None
用於
fit
的平行執行工作數。None
表示 1,除非在joblib.parallel_backend
環境中。-1
表示使用所有處理器。請參閱 詞彙表 以瞭解更多詳細資訊。- verbosebool,預設值=False
如果為 True,則擬合時經過的時間會在完成時印出。
在 0.23 版本中新增。
- 屬性:
- estimators_回歸器的列表
在
estimators
中定義的已擬合子估計器的集合,且不是「drop」。- named_estimators_
Bunch
用於依名稱存取任何已擬合子估計器的屬性。
在 0.20 版本中新增。
n_features_in_
int在 fit 期間看到的特徵數量。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。只有在基礎估計器在擬合時公開此類屬性時才定義。
在 1.0 版本中新增。
另請參閱
VotingClassifier
軟投票/多數規則分類器。
範例
>>> import numpy as np >>> from sklearn.linear_model import LinearRegression >>> from sklearn.ensemble import RandomForestRegressor >>> from sklearn.ensemble import VotingRegressor >>> from sklearn.neighbors import KNeighborsRegressor >>> r1 = LinearRegression() >>> r2 = RandomForestRegressor(n_estimators=10, random_state=1) >>> r3 = KNeighborsRegressor() >>> X = np.array([[1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36]]) >>> y = np.array([2, 6, 12, 20, 30, 42]) >>> er = VotingRegressor([('lr', r1), ('rf', r2), ('r3', r3)]) >>> print(er.fit(X, y).predict(X)) [ 6.8... 8.4... 12.5... 17.8... 26... 34...]
在以下範例中,我們使用
set_params
捨棄'lr'
估計器,並擬合其餘兩個估計器>>> er = er.set_params(lr='drop') >>> er = er.fit(X, y) >>> len(er.estimators_) 2
- fit(X, y, *, sample_weight=None, **fit_params)[原始碼]#
擬合估計器。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
訓練向量,其中
n_samples
是樣本數,而n_features
是特徵數。- y形狀為 (n_samples,) 的類陣列
目標值。
- sample_weight形狀為 (n_samples,) 的類陣列,預設值=None
樣本權重。如果為 None,則樣本會被給予相同的權重。請注意,只有在所有基礎估計器都支援樣本權重時,才支援此功能。
- **fit_paramsdict
要傳遞至基礎估計器的參數。
在 1.5 版本中新增: 只有在
enable_metadata_routing=True
時才可用,可以使用sklearn.set_config(enable_metadata_routing=True)
設定。請參閱 中繼資料路由使用者指南 以瞭解更多詳細資訊。
- 傳回值:
- self物件
已擬合的估計器。
- fit_transform(X, y=None, **fit_params)[原始碼]#
傳回每個估計器的類別標籤或機率。
傳回每個估計器的 X 預測值。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣, 資料框架}
輸入樣本。
- y形狀為 (n_samples,) 的 ndarray,預設值=None
目標值 (無監督轉換為 None)。
- **fit_paramsdict
其他擬合參數。
- 傳回值:
- X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列
轉換後的陣列。
- get_feature_names_out(input_features=None)[原始碼]#
取得轉換後的輸出特徵名稱。
- 參數:
- input_features類陣列 (array-like) 的字串或 None,預設為 None
未使用,此處為了 API 一致性而存在。
- 傳回值:
- feature_names_out字串物件的 ndarray
轉換後的特徵名稱。
- get_metadata_routing()[來源]#
取得此物件的中繼資料路由。
請查看 使用者指南 以了解路由機制如何運作。
在 1.5 版本中新增。
- 傳回值:
- routingMetadataRouter
一個
MetadataRouter
,封裝了路由資訊。
- get_params(deep=True)[來源]#
從集成中取得估算器的參數。
傳回建構函式中給定的參數,以及包含在
estimators
參數中的估算器。- 參數:
- deep布林值,預設為 True
設定為 True 時,也會取得各種估算器和估算器的參數。
- 傳回值:
- params字典
參數和估算器名稱對應到它們的值,或參數名稱對應到它們的值。
- property named_estimators#
可依名稱存取任何已擬合的子估算器的字典。
- 傳回值:
- predict(X)[來源]#
預測 X 的迴歸目標。
輸入樣本的預測迴歸目標會計算為集成中估算器的平均預測迴歸目標。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
輸入樣本。
- 傳回值:
- y形狀為 (n_samples,) 的 ndarray
預測值。
- 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
的期望值的常數模型,而忽略輸入特徵,會得到 0.0 的 \(R^2\) 分數。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like)
測試樣本。對於某些估算器,這可能是一個預先計算的核矩陣,或是一個具有
(n_samples, n_samples_fitted)
形狀的泛型物件列表,其中n_samples_fitted
是估算器擬合中使用的樣本數。- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列 (array-like)
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$') VotingRegressor [來源]#
請求傳遞給
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_output(*, transform=None)[來源]#
設定輸出容器。
請參閱 介紹 set_output API 以了解如何使用 API 的範例。
- 參數:
- transform{“default”, “pandas”, “polars”}, 預設值為 None
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換設定保持不變
於 1.4 版本新增: 新增了
"polars"
選項。
- 傳回值:
- self估計器實例
估計器實例。
- set_params(**params)[來源]#
設定集成中估計器的參數。
可以使用
get_params()
列出有效的參數鍵。 請注意,您可以直接設定estimators
中包含的估計器的參數。- 參數:
- **params關鍵字參數
特定參數,例如使用
set_params(parameter_name=new_value)
。此外,除了設定估計器的參數外,還可以設定 estimators 中個別估計器的參數,或將其設定為 'drop' 來移除。
- 傳回值:
- self物件
估計器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') VotingRegressor [來源]#
要求將元數據傳遞給
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物件
更新後的物件。