sklearn.ensemble.BaggingClassifier

class sklearn.ensemble.BaggingClassifier(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 SVC
>>> from sklearn.ensemble import BaggingClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_samples=100, n_features=4,
...                            n_informative=2, n_redundant=0,
...                            random_state=0, shuffle=False)
>>> clf = BaggingClassifier(base_estimator=SVC(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> clf.predict([[0000]])
array([1])

方法

方法 说明
decision_function(X) 基本分类器决策函数的平均值。
fit(X, y[, sample_weight]) 从训练集中构建一个bagging评估器的集合。
get_params([deep]) 获取此估计器的参数。
predict(X) 预测X的类。
predict_log_proba(X) 预测X的类对数概率。
predict_proba(X) 预测X的类概率。
score(X, y[, sample_weight]) 返回给定测试数据和标签上的平均准确度。
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))

decision_function(X)

[源码]

基本分类器决策函数的平均值。

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
训练输入样本。仅当基本估计器支持稀疏矩阵时才会被接受。
返回值 说明
score ndarray of shape (n_samples, k)
输入样本的决策函数。列按属性顺序显示在类别中,与它们对应 classes_。回归和二进制分类是的特例,即k == 1,其他情况下,k==n_classes
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)

[源码]

预测X的类。

输入样本的预测类别被计算为具有最高平均预测概率的类别。如果基本估计器未实现predict_proba方法,则它会采取投票的手段。

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

[源码]

预测X的类对数概率。

将输入样本的预测类对数概率计算为集合中基本估计器的平均预测类对数的对数。

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
训练输入样本。仅当基本估计量支持稀疏矩阵时,才接受。
返回值 说明
p ndarray of shape (n_samples, n_classes)
输入样本的类对数概率。类的顺序与属性classes_中的顺序相对应。
predict_proba(X)

[源码]

预测X的类概率。

将输入样本的预测类别概率计算为集合中基本估计量的平均预测类别概率。如果基本估计量未实现predict_proba 方法,则采用投票的方式,并且输入样本的预测类概率表示预测每个类估计器的比例。

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
训练输入样本。仅当基本估计量支持稀疏矩阵时才会被接受。
返回值 说明
p ndarray of shape (n_samples, n_classes)
输入样本的分类概率。类的顺序与属性classes_中的顺序相对应。
score(X, y, sample_weight=None)

[源码]

返回给定测试数据和标签上的平均准确度。

在多标签分类中,这是子集准确性,这是一个苛刻的指标,因为你需要为每个样本正确预测每个标签集。

参数 说明
X array-like of shape (n_samples, n_features)
测试样本。
y array-like of shape (n_samples,) or (n_samples, n_outputs)
样本集的标签。
sample_weight array-like of shape (n_samples,), default=None
样本权重。
返回值 说明
score float
self.predict(X) 关于y的平均准确率。
set_params(**params)

[源码]

设置该估计器的参数。

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

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