BaggingRegressor#

class sklearn.ensemble.BaggingRegressor(estimator=None, n_estimators=10, *, max_samples=1.0, max_features=1.0, bootstrap=True, bootstrap_features=False, oob_score=False, warm_start=False, n_jobs=None, random_state=None, verbose=0)[源代码]#

巴格回归者。

Bagging回归量是一种整体元估计器,它将每个基本回归量与原始数据集的随机子集进行匹配,然后汇总它们的各个预测(通过投票或平均)以形成最终预测。这样的元估计器通常可以用作减少黑匣子估计器方差的一种方式(例如,决策树),通过在其构建过程中引入随机化,然后从中创建一个集成。

该算法包含文献中的几部作品。当将数据集的随机子集绘制为样本的随机子集时,则该算法称为粘贴 [1]. 如果抽取样本并进行替换,则该方法称为装袋 [2]. 如果将数据集的随机子集绘制为要素的随机子集,则该方法称为随机子空间 [3]. 最后,当基础估计器建立在样本和特征的子集上时,则该方法称为随机补丁 [4].

阅读更多的 User Guide .

Added in version 0.15.

参数:
estimator对象,默认=无

适合数据集随机子集的基本估计器。如果无,则基本估计器是 DecisionTreeRegressor .

Added in version 1.2: base_estimator 更名为 estimator .

n_estimatorsint,默认值=10

集合中基本估计量的数量。

max_samplesint或float,默认值为1.0

从X提取以训练每个基本估计器的样本数(默认情况下有替换,请参阅 bootstrap 了解更多详情)。

  • 如果是int,那么画 max_samples 样品

  • 如果是浮动的,那就画画 max_samples * X.shape[0] 样品

max_featuresint或float,默认值为1.0

从X提取以训练每个基本估计器的特征数量(默认情况下不进行替换,请参阅 bootstrap_features 了解更多详情)。

  • 如果是int,那么画 max_features 功能.

  • 如果是浮动的,那就画画 max(1, int(max_features * n_features_in_)) 功能.

bootstrap布尔,默认=True

是否抽取样本并更换。如果为假,则执行不更换的抽样。

bootstrap_features布尔,默认=假

是否使用替换绘制特征。

oob_score布尔,默认=假

是否使用袋外样本来估计概括误差。仅当引导=True时才可用。

warm_start布尔,默认=假

当设置为True时,重复使用上一次调用的解决方案来适应并向集合添加更多估计量,否则,只需适应全新的集合。看到 the Glossary .

n_jobsint,默认=无

两者并行运行的作业数量 fitpredict . None 意思是1,除非在a中 joblib.parallel_backend 上下文 -1 意味着使用所有处理器。看到 Glossary 了解更多详细信息。

random_stateint,RandomState实例或无,默认=无

控制原始数据集的随机重新采样(样本和特征)。如果基本估计器接受 random_state 属性,则为集成中的每个实例生成不同的种子。传递int以获得跨多个函数调用的可重复输出。看到 Glossary .

verboseint,默认=0

控制匹配和预测时的详细程度。

属性:
estimator_估计器

生成集合的基本估计器。

Added in version 1.2: base_estimator_ 更名为 estimator_ .

n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

estimators_估计者列表

拟合子估计量的集合。

estimators_samples_list of arrays

为每个基本估计量绘制的样本的子集。

estimators_features_list of arrays

每个基本估计器的绘制特征子集。

oob_score_浮子

使用袋外估计获得的训练数据集分数。此属性仅存在于 oob_score 是真的

oob_prediction_形状的nd数组(n_samples,)

使用训练集的袋外估计计算预测。如果n_estimators很小,那么在引导期间可能从未遗漏数据点。在这种情况下, oob_prediction_ 可能含有NaN。此属性仅存在于 oob_score 是真的

参见

BaggingClassifier

袋装分类器。

引用

[1]

L. Breiman, "Pasting small votes for classification in large databases and on-line", Machine Learning, 36(1), 85-103, 1999.

[2]

L. Breiman, "Bagging predictors", Machine Learning, 24(2), 123-140, 1996.

[3]

T.何,“随机子空间方法构造决策森林”,模式分析与机器智能,20(8),832-844,1998年。

[4]

G. Louppe and P. Geurts, "Ensembles on Random Patches", Machine Learning and Knowledge Discovery in Databases, 346-361, 2012.

示例

>>> from sklearn.svm import SVR
>>> from sklearn.ensemble import BaggingRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_samples=100, n_features=4,
...                        n_informative=2, n_targets=1,
...                        random_state=0, shuffle=False)
>>> regr = BaggingRegressor(estimator=SVR(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> regr.predict([[0, 0, 0, 0]])
array([-2.8720...])
fit(X, y, *, sample_weight=None, **fit_params)[源代码]#

根据训练集(X,y)构建估计器的Bagging集合。

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

训练输入样本。只有当稀疏矩阵得到基估计器的支持时,稀疏矩阵才被接受。

y形状类似阵列(n_samples,)

The target values (class labels in classification, real numbers in regression).

sample_weight形状类似数组(n_samples,),默认=无

样本重量。如果无,则样本的加权相等。请注意,只有基本估计器支持样本加权时才支持这一点。

**fit_paramsdict

要传递给基础估计器的参数。

Added in version 1.5: 仅在以下情况下可用 enable_metadata_routing=True ,可以使用 sklearn.set_config(enable_metadata_routing=True) .看到 Metadata Routing User Guide 了解更多详细信息。

返回:
self对象

拟合估计量。

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

Added in version 1.5.

返回:
routingMetadataRouter

A MetadataRouter 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

predict(X)[源代码]#

预测X的回归目标。

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

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

训练输入样本。只有当稀疏矩阵得到基估计器的支持时,稀疏矩阵才被接受。

返回:
y形状的nd数组(n_samples,)

预测值。

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)

Test samples. For some estimators this may be a precomputed kernel matrix or a list of generic objects instead with shape (n_samples, n_samples_fitted), where n_samples_fitted is the number of samples used in the fitting for the estimator.

y形状的类似阵列(n_samples,)或(n_samples,n_outputs)

真正的价值观 X .

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

返回:
score浮子

\(R^2\)self.predict(X) w.r.t. y .

注意到

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

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BaggingRegressor[源代码]#

请求元数据传递给 fit

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 fit 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 fit .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 fit .

返回:
self对象

更新的对象。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BaggingRegressor[源代码]#

请求元数据传递给 score

请注意,此方法仅适用于以下情况 enable_metadata_routing=True (见 sklearn.set_config ).请参阅 User Guide 关于路由机制如何工作。

The options for each parameter are:

  • True :元数据被请求并传递给 score 如果提供的话。如果未提供元数据,则会忽略请求。

  • False :未请求元数据,元估计器不会将其传递给 score .

  • None :不请求元数据,如果用户提供元估计器,则元估计器将引发错误。

  • str :元数据应通过此给定别名而不是原始名称传递给元估计器。

默认 (sklearn.utils.metadata_routing.UNCHANGED )保留现有请求。这允许您更改某些参数的请求,而不是其他参数。

Added in version 1.3.

备注

只有当该估计器用作元估计器的子估计器时,该方法才相关,例如在 Pipeline .否则就没有效果了。

参数:
sample_weight字符串、真、假或无, 默认=sklearn.utils. metalics_Routing.UNChanged

元数据路由 sample_weight 参数 score .

返回:
self对象

更新的对象。