我们先来看一下官方文档中,对Bagging的解释:
在集成算法中,bagging 方法会在原始训练集的随机子集上构建一类黑盒估计器的多个实例,然后把这些估计器的预测结果结合起来形成最终的预测结果。 该方法通过在构建模型的过程中引入随机性,来减少基估计器的方差(例如,决策树)。 在多数情况下,bagging 方法提供了一种非常简单的方式来对单一模型进行改进,而无需修改背后的算法。 因为 bagging 方法可以减小过拟合,所以通常在强分类器和复杂模型上使用时表现的很好(例如,完全生长的决策树,fully developed decision trees),相比之下 boosting 方法则在弱模型上表现更好(例如,浅层决策树,shallow decision trees)。
而在 scikit-learn 中,bagging 方法使用统一的 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)
也就是:
其中各个参数的意思为:
base_estimator : 对象或无,可选(默认=无)
基本估计量适合数据集的随机子集。如果为None,则基本估计量为决策树。
n_estimators : int,可选(默认值为10)
集合中的基本估计量。
max_samples : int或float,可选(默认值= 1.0)
从X抽取以训练每个基本估计量的样本数。
如果为int,则抽取样本 max_samples。
如果float,则抽取本 max_samples * X.shape[0]
max_features : int或float,可选(默认值= 1.0)
从X绘制以训练每个基本估计量的要素数量。
如果为int,则绘制特征 max_features。
如果是浮动的,则绘制特征 max_features * X.shape[1]
bootstrap : 布尔值,可选(默认= True)
是否抽取样本进行替换。如果为False,则执行不替换的采样。
oob_score : 布尔变量,可选(默认为False)
是否使用现成的样本来估计泛化误差。
warm_start : 布尔变量,可选(默认= False)
设置为True时,请重用上一个调用的解决方案以适合并为集合添加更多估计量,否则,仅适合一个全新的集合。
n_jobs : int或None(可选)(默认为None)
fit和 并行运行的作业数predict。None除非joblib.parallel_backend上下文中,否则表示1 。-1表示使用所有处理器。
random_state : 整型,RandomState实例或无,可选(默认值:无)
如果为int,则random_state是随机数生成器使用的种子;否则为false。