VotingRegressor#
- class sklearn.ensemble.VotingRegressor(estimators, *, weights=None, n_jobs=None, verbose=False)#
预测投票回归器,用于未拟合的估计器。
投票回归器是一种集成元估计器,它适合几个基本回归器,每个都在整个数据集上。然后它对各个预测值进行平均,形成最终预测。
更多信息请参阅 用户指南 。
Added in version 0.21.
- Parameters:
- estimators列表,包含 (str, estimator) 元组
调用
VotingRegressor
的fit
方法将拟合那些原始估计器的克隆,这些克隆将存储在类属性self.estimators_
中。可以使用set_params
将估计器设置为'drop'
。Changed in version 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
表示使用所有处理器。有关更多详细信息,请参阅 Glossary 。- verbosebool, 默认=False
如果为 True,则在拟合过程中将打印所用的时间。
Added in version 0.23.
- Attributes:
- estimators_回归器列表
在
estimators
中定义的拟合子估计器集合,不包括 ‘drop’。- named_estimators_
Bunch
属性,用于按名称访问任何拟合的子估计器。
Added in version 0.20.
n_features_in_
int特征数量在:term:
fit
期间被看到。- feature_names_in_形状为 (
n_features_in_
,) 的 ndarray 在 fit 期间看到的特征名称。仅当基础估计器在拟合时暴露此属性时才定义。
Added in version 1.0.
See also
VotingClassifier
软投票/多数规则分类器。
Examples
>>> 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)#
拟合估计器。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
训练向量,其中
n_samples
是样本数量,n_features
是特征数量。- yarray-like,形状为 (n_samples,)
目标值。
- sample_weightarray-like,形状为 (n_samples,),默认=None
样本权重。如果为 None,则样本权重相等。 请注意,这仅在所有底层估计器都支持样本权重时才受支持。
- **fit_paramsdict
传递给底层估计器的参数。
Added in version 1.5: 仅在
enable_metadata_routing=True
时可用, 可以通过使用sklearn.set_config(enable_metadata_routing=True)
设置。 有关更多详细信息,请参阅 Metadata Routing 用户指南 。
- Returns:
- selfobject
拟合的估计器。
- fit_transform(X, y=None, **fit_params)#
返回每个估计器的类别标签或概率。
返回每个估计器对X的预测。
- Parameters:
- X{array-like, sparse matrix, dataframe} of shape (n_samples, n_features)
输入样本。
- yndarray of shape (n_samples,), default=None
目标值(无监督变换时为None)。
- **fit_paramsdict
额外的拟合参数。
- Returns:
- X_newndarray array of shape (n_samples, n_features_new)
变换后的数组。
- get_feature_names_out(input_features=None)#
获取变换后的输出特征名称。
- Parameters:
- input_features字符串数组或None,默认=None
未使用,此处仅为API一致性约定而存在。
- Returns:
- feature_names_out字符串对象的ndarray
变换后的特征名称。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
Added in version 1.5.
- Returns:
- routingMetadataRouter
MetadataRouter
封装的 路由信息。
- get_params(deep=True)#
获取集成估计器的参数。
返回在构造函数中给定的参数以及
estimators
参数中包含的估计器。- Parameters:
- deepbool, default=True
设置为True时,获取各种估计器及其参数。
- Returns:
- paramsdict
参数和估计器名称映射到它们的值,或参数名称映射到它们的值。
- property n_features_in_#
特征数量在:term:
fit
期间被看到。
- predict(X)#
预测X的回归目标。
输入样本的预测回归目标是根据集成中估计器的平均预测回归目标计算的。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
输入样本。
- Returns:
- yndarray,形状为 (n_samples,)
预测值。
- score(X, y, sample_weight=None)#
返回预测的决定系数。
决定系数 \(R^2\) 定义为 \((1 - rac{u}{v})\) ,其中 \(u\) 是残差平方和
((y_true - y_pred)** 2).sum()
,而 \(v\) 是总平方和((y_true - y_true.mean()) ** 2).sum()
。最好的可能得分是 1.0,它可能是负的(因为模型可能任意地差)。一个总是预测y
的期望值的常数模型,忽略输入特征,将得到 \(R^2\) 得分为 0.0。- Parameters:
- Xarray-like of shape (n_samples, n_features)
测试样本。对于某些估计器,这可能是一个预计算的核矩阵或一个形状为
(n_samples, n_samples_fitted)
的通用对象列表,其中n_samples_fitted
是估计器拟合中使用的样本数量。- yarray-like of shape (n_samples,) or (n_samples, n_outputs)
X
的真实值。- sample_weightarray-like of shape (n_samples,), default=None
样本权重。
- Returns:
- scorefloat
\(R^2\) 相对于
y
的self.predict(X)
。
Notes
在调用回归器的
score
时使用的 \(R^2\) 得分从 0.23 版本开始使用multioutput='uniform_average'
以保持与r2_score
默认值一致。 这影响了所有多输出回归器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') VotingRegressor #
Request metadata passed to the
fit
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.- Parameters:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weight
parameter infit
.
- Returns:
- selfobject
The updated object.
- set_output(*, transform=None)#
设置输出容器。
请参阅 介绍 set_output API 以了解如何使用API的示例。
- Parameters:
- transform{“default”, “pandas”, “polars”}, 默认=None
配置
transform
和fit_transform
的输出。"default"
: 转换器的默认输出格式"pandas"
: DataFrame 输出"polars"
: Polars 输出None
: 转换配置不变
Added in version 1.4:
"polars"
选项已添加。
- Returns:
- self估计器实例
估计器实例。
- set_params(**params)#
设置集成估计器的参数。
有效的参数键可以通过
get_params()
列出。请注意,您可以直接设置estimators
中包含的估计器的参数。- Parameters:
- **params关键字参数
使用例如
set_params(parameter_name=new_value)
设置特定参数。此外,除了设置估计器的参数外,还可以设置或通过将它们设置为 ‘drop’ 来移除估计器中的单个估计器。
- Returns:
- self对象
估计器实例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') VotingRegressor #
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.None
: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str
: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED
) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
Note
This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a
Pipeline
. Otherwise it has no effect.- Parameters:
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
Metadata routing for
sample_weight
parameter inscore
.
- Returns:
- selfobject
The updated object.
- transform(X)#
返回每个估计器对X的预测。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
输入样本。
- Returns:
- predictionsndarray,形状为 (n_samples, n_classifiers)
每个回归器预测的值。