bagging与随机森林

集成学习是模型融合, 把多个模型集成的方法

  • 欠拟合问题 使用boosting方法
  • 过拟合问题 使用bagging方法

bagging

bagging: 并行建立多个模型, 模型之间是相互独立的

  1. 对数据集采样 100万数据集样本 随机取80%样本 重复n次 得到n个数据集 数据集之间有细微的差别

  2. 训练多个模型

    n个不同的数据集建立n个不同的模型(相同的算法或不同的算法) 训练的数据有细微差别->数据包含的规律有细微差别->得到的模型也有细微差别

  3. 对模型进行融合

    n个模型 同一个预测样本 得到n个不同的预测结果->平权投票 多数的获胜


随机森林

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

随机森林 = Bagging + 决策树

  1. 数据集->随机选m条样本->随机选取k个数据特征->训练决策树(默认catr树)
  2. 重复1构造n个弱决策树
  3. 平权投票集成n个决策树

api:

  • sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
    • n_estimators:integer,optional(default = 10)森林里的树木数量120,200,300,500,800,1200 超参数
    • Criterion:string,可选(default =“gini”)分割特征的测量方法
    • max_depth:integer或None,可选(默认=无)树的最大深度 5,8,15,25,30
    • max_features=”auto”,每个决策树的最大特征数量
    • If “auto”, then max_features=sqrt(n_features).
    • If “sqrt”, then max_features=sqrt(n_features)(same as “auto”).
    • If “log2”, then max_features=log2(n_features).
    • If None, then max_features=n_features.
    • bootstrap:boolean,optional(default = True)是否在构建树时使用放回抽样
    • min_samples_split:节点划分最少样本数
    • min_samples_leaf:叶子节点的最小样本数
  • 超参数:n_estimator, max_depth, min_samples_split,min_samples_leaf

bagging优点:

Bagging + 决策树/线性回归/逻辑回归/深度学习… = bagging集成学习方法

经过上面方式组成的集成学习方法:

  1. 均可在原有算法上提高约2%左右的泛化正确率(测试集测试时的正确率)
  2. 简单, 方便, 通用

发表评论

邮箱地址不会被公开。 必填项已用*标注