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=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 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([[0, 0, 0, 0]])
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 估计实例。 |