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=Nonefit 和 并行运行的作业数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_ | intfit 执行时的功能数量。 |
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([[0, 0, 0, 0]])
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 估计实例。 |