sklearn.ensemble.BaggingRegressor

class sklearn.ensemble.BaggingRegressor(base_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分类器。

Bagging分类器是一个集合元估计器,它使每个基本分类器拟合原始数据集的随机子集,然后将其单个预测(通过投票或平均)进行汇总以形成最终预测。这类元估计器通过将随机化引入其构造过程中,并对其进行整体化,来减少黑盒估计器(例如决策树)方差。

该算法涵盖了文献中的几篇著作。当将数据集的随机子集绘制为样本的随机子集时,该算法称为Pasting[1]。如果抽取样本进行替换,则该方法称为Bagging [2]。当将数据集的随机子集绘制为要素的随机子集时,该方法称为Random Subspaces[3]。最后,当基于样本和特征的子集建立基本估计器时,该方法称为Random Patches[4]。

用户指南中阅读更多内容。

0.15版的新功能。

参数 说明
base_estimator object, default=None
基本估计器适合数据集的随机子集。如果为None,则基本估计器为决策树。
n_estimators int,default = 10
集合中基本估计器的数量。
max_samples int or float, default=1.0
从X抽取以训练每个基本估计器的样本数量(默认情况下bootstrap为替换,请参见有关更多详细信息)。
- 如果为int,则抽取max_samples样本。
- 如果为float,则抽取样品。max_samples * X.shape[0]
max_features int or float, default=1.0
从X绘制以训练每个基本估计器的要素数量(默认情况下不进行替换,bootstrap_features有关更多详细信息,请参见)。
- 如果为int,则绘制max_features特征。
- 如果为float,则绘制特征。max_features * X.shape[1]
bootstrap bool, default=True
是否抽取样本进行替换。如果为False,则执行不替换的采样。
bootstrap_features bool, default=False
是否用替换绘制特征。
oob_score bool,defalut = False
是否使用现成的样本来估计泛化误差。
warm_start bool,defalut = False
设置为True时,请重用上一个调用的解决方案以适合并在集合中添加更多估计器,否则,仅适合一个全新的集合。请参阅Glossary
0.17版中的新功能:warm_start构造函数参数。
n_jobs int, default=None
fit和 并行运行的作业数predict。除非用于joblib.parallel_backend上下文中,否则None表示1 。-1表示使用所有处理器。有关更多详细信息,请参见Glossary
random_state int or RandomState, default=None
控制原始数据集的随机重采样(sample wise 和 feature wise)。如果基本估算器接受random_state属性,则会为集合中的每个实例生成一个不同的种子。为多个函数调用传递可重复输出的int值。请参阅Glossary
verbose int, default=0
在拟合和预测时控制冗余程度。
属性 说明
base_estimator_ estimator
通过集成成长而来的基本估计器。
n_features_ int
fit执行时的功能数量。
estimators_ list of estimators
拟合基础估计器的集合。
estimators_samples_ list of arrays
每个基本估计器的抽取样本的子集。
estimators_features_ list of arrays
每个基本估计器的绘制要素子集。
classes_ ndarray of shape (n_classes,)
类标签。
n_classes_ int or list
类数。
oob_score_ float
使用"袋外"估计获得的训练数据集的分数。该属性仅在oob_score为True 时存在。
oob_decision_function_ ndarray of shape (n_samples, n_classes)
用训练集上的实际估计值计算的决策函数。如果n_estimators较小,则有可能在bootstrap过程中不会遗漏任何数据点。在这种情况下, oob_decision_function_可能包含NaN。该属性仅在oob_score为True 时存在。

参考文献:

[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. Ho, “The random subspace method for constructing decision forests”, Pattern Analysis and Machine Intelligence, 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(base_estimator=SVR(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> regr.predict([[0000]])
array([-2.8720...])

方法

方法 说明
fit(X, y[, sample_weight]) 从训练集中构建一个bagging评估器的集合。
get_params([deep]) 获取此估计器的参数。
predict(X) 预测X的回归目标。
score(X, y[, sample_weight]) 返回预测的决定系数R^2。
set_params(**params) 设置此估算器的参数。
__init__(base_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)

[源码]

初始化self。有关准确的签名,请参见help(type(self))

property estimators_samples_

每个基本估计器的抽取样本的子集。

返回一个动态生成的索引列表,这些索引标识用于拟合集合的每个成员的样本,即袋装样本。

注意:在每次调用属性时都会重新创建列表,以通过不存储采样数据来减少对象内存占用。因此,获取属性可能比预期要慢。

fit(X, y, sample_weight=None)

[源码]

从训练集中构建一个bagging评估器的集合。

set(X, y)

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
训练输入样本。仅当基本估计器支持稀疏矩阵时,才接受。
y array-like of shape (n_samples,)
目标值(分类中的类标签,回归中的实数)。
sample_weight array-like of shape (n_samples,), default=None
样品重量。如果为None,则对样本进行平均加权。请注意,仅当基本估算器支持样本加权时才支持此功能。
返回值 说明
self object
get_params(deep=True)

[源码]

获取此估计器的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算器和作为估算器的所包含子对象的参数。
返回值 说明
params mapping of string to any
参数名称与其值相对应。
predict(X)

[源码]

返回预测的决定系数R^2。

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

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
训练输入样本。仅当基本估计器支持稀疏矩阵时,才接受。
返回值 说明
y ndarray of shape (n_samples,)
被预测的类。
score(X, y, sample_weight=None)

[源码]

返回预测的决定系数R^2。

决定系数R^2为(1 - 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 array-like of shape (n_samples, n_features)
测试样本。对于一些估计器,这可能会被一个预先计算的内核矩阵或一列通用对象替代,而不是shape= (n_samples, n_samples_fitted),其中n_samples_fitted是用于拟合估计器的样本数量。
y array-like of shape (n_samples, ) or (n_samples, n_outputs)
X的正确值。
sample_weight array-like of shape (n_sample, ), default = None
样本权重。
返回值 说明
score float
self.predict(X)关于 y的决定系数R^2

注意:

调用回归变器的score时使用的R2 score,与0.23版本的multioutput='uniform_average'中r2_score的默认值保持一致。这影响了所有多输出回归的score方法(除了MultiOutputRegressor)。

set_params(**params)

[源码]

设置该估计器的参数。

该方法适用于简单估计器和嵌套对象(如pipline)。后者具有形式为<component>_<parameter>的参数,这样就可以更新嵌套对象的每个组件。

参数 说明
**params dict
估计器参数
返回值 说明
self object
估计实例。

sklearn.ensemble.BaggingRegressor使用示例