投票回归器#

class sklearn.ensemble.VotingRegressor(estimators, *, weights=None, n_jobs=None, verbose=False)[source]#

用于未拟合估计器的预测投票回归器。

投票回归器是一种集成元估计器,它拟合多个基础回归器,每个回归器都作用于整个数据集。然后,它对单个预测结果取平均值,形成最终预测。

有关详细示例,请参考 单个和投票回归预测图

用户指南 中了解更多信息。

0.21 版本中新增。

参数:
estimators由 (str, estimator) 元组组成的列表

VotingRegressor 上调用 fit 方法将拟合这些原始估计器的克隆,这些克隆将存储在类属性 self.estimators_ 中。可以使用 set_params 将估计器设置为 'drop'

0.21 版本中的更改: 接受 'drop'。在 0.22 版本中已弃用使用 None,并在 0.24 版本中删除了对它的支持。

weights形状为 (n_regressors,) 的数组,默认为 None

权重序列(floatint),用于在取平均值之前对预测值的出现次数进行加权。如果为 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

拟合期间看到的特征数量。

feature_names_in_形状为 (n_features_in_,) 的 ndarray

拟合期间看到的特征名称。只有在底层估计器在拟合时公开此类属性时才定义。

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)[source]#

拟合估计器。

参数:
X形状为 (n_samples, n_features) 的 {array-like, sparse matrix}

训练向量,其中 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)[source]#

返回每个估计器的类标签或概率。

返回每个估计器的 X 预测值。

参数:
X形状为 (n_samples, n_features) 的 {array-like, sparse matrix, dataframe}

输入样本。

y形状为 (n_samples,) 的 ndarray,默认为 None

目标值(无监督转换时为 None)。

**fit_paramsdict

附加拟合参数。

返回:
X_newndarray 数组,形状为 (n_samples, n_features_new)

变换后的数组。

get_feature_names_out(input_features=None)[source]#

获取变换后的输出特征名称。

参数:
input_features类似数组的 str 或 None,默认为 None

未使用,出于 API 一致性约定而保留。

返回:
feature_names_outstr 对象的 ndarray

变换后的特征名称。

get_metadata_routing()[source]#

获取此对象的元数据路由。

请查看 用户指南,了解路由机制的工作原理。

1.5 版本新增。

返回:
routingMetadataRouter

一个 MetadataRouter,封装了路由信息。

get_params(deep=True)[source]#

获取集成中估计器的参数。

返回构造函数中给定的参数以及estimators参数中包含的估计器。

参数:
deepbool,默认为 True

将其设置为 True 可获取各种估计器及其参数。

返回:
paramsdict

参数和估计器名称与其值映射,或参数名称与其值映射。

property n_features_in_#

拟合期间看到的特征数量。

property named_estimators#

用于按名称访问任何已拟合子估计器的字典。

返回:
Bunch 对象
predict(X)[source]#

预测 X 的回归目标。

输入样本的预测回归目标计算为集成中估计器的平均预测回归目标。

参数:
X形状为 (n_samples, n_features) 的 {array-like, sparse matrix}

输入样本。

返回:
y形状为 (n_samples,) 的 ndarray

预测值。

score(X, y, sample_weight=None)[source]#

返回预测的决定系数。

决定系数 \(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) 的类似数组

测试样本。对于某些估计器,这可能是预先计算的核矩阵,或者形状为 (n_samples, n_samples_fitted) 的泛型对象列表,其中 n_samples_fitted 是估计器拟合中使用的样本数。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类似数组

X 的真实值。

sample_weight形状为 (n_samples,) 的数组,默认为 None

样本权重。

返回:
scorefloat

self.predict(X) 关于 y\(R^2\)

备注

从 0.23 版本开始,在回归器上调用 score 时使用的 \(R^2\) 分数使用 multioutput='uniform_average',以保持与 r2_score 的默认值一致。这会影响所有多输出回归器的 score 方法(MultiOutputRegressor 除外)。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') VotingRegressor[source]#

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_output(*, transform=None)[source]#

设置输出容器。

参见介绍 set_output API,了解如何使用此 API 的示例。

参数:
transform{"default","pandas","polars"},默认值=None

配置transformfit_transform的输出。

  • "default":转换器的默认输出格式

  • "pandas":DataFrame 输出

  • "polars":Polars 输出

  • None:转换配置不变

版本 1.4 中新增: "polars" 选项已添加。

返回:
self估计器实例

估计器实例。

set_params(**params)[source]#

使用集成中的估计器设置参数。

可以使用get_params()列出有效的参数键。请注意,您可以直接设置estimators中包含的估计器的参数。

参数:
**params关键字参数

使用例如set_params(parameter_name=new_value)设置特定参数。此外,除了设置估计器的参数外,还可以设置估计器的各个估计器,或者可以通过将其设置为“drop”将其删除。

返回:
self对象

估计器实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') VotingRegressor[source]#

传递给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对象

更新后的对象。

transform(X)[source]#

返回每个估计器的 X 预测值。

参数:
X形状为 (n_samples, n_features) 的 {array-like, sparse matrix}

输入样本。

返回:
预测值形状为 (n_samples, n_classifiers) 的ndarray

每个回归器预测的值。