机器学习 —— Bagging算法

Bagging算法

特点:

  1. Boosting是一种框架算法,以随机森林(RDF)算法为代表。
  2. 采用的是随机有放回的选择训练数据然后构造分类器,最后组合。
  3. 从原始样本集中使用Bootstraping方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集。(k个训练集之间相互独立,元素可以有重复)
  4. 对于k个训练集,我们训练k个模型(这k个模型可以根据具体问题而定,比如决策树,knn等)
  5. 对于分类问题:由投票表决产生分类结果;对于回归问题:由k个模型预测结果的均值作为最后预测结果。(所有模型的重要性相同)

图示

机器学习 —— Bagging算法


随机森林算法(Random Forests)

算法的优缺点

随机森林的主要优点是:

  1. 具有极高的准确率
  2. 随机性的引入,使得随机森林不容易过拟合
  3. 随机性的引入,使得随机森林有很好的抗噪声能力
  4. 能处理很高维度的数据,并且不用做特征选择
  5. 既能处理离散型数据,也能处理连续型数据,数据集无需规范化
  6. 训练速度快,可以得到变量重要性排序
  7. 容易实现并行化

随机森林的主要缺点是:

  1. 当随机森林中的决策树个数很多时,训练时需要的空间和时间会较大
  2. 随机森林模型还有许多不好解释的地方,有点算个黑盒模型

算法过程

  1. 从原始训练集中使用Bootstraping方法随机有放回采样选出m个样本,共进行n_tree次采样,生成n_tree个训练集
  2. 对于n_tree个训练集,我们分别训练n_tree个决策树模型
  3. 对于单个决策树模型,假设训练样本特征的个数为n,那么每次分裂时根据信息增益/信息增益比/基尼指数选择最好的特征进行分裂
  4. 每棵树都一直这样分裂下去,直到该节点的所有训练样例都属于同一类。在决策树的分裂过程中不需要剪枝
  5. 将生成的多棵决策树组成随机森林。对于分类问题,按多棵树分类器投票决定最终分类结果;对于回归问题,由多棵树预测值的均值决定最终预测结果

图示

机器学习 —— Bagging算法