前言
上篇文章介绍了集成学习的相关概念以及基于 Boosting的 AdaBoost,这篇文章将介绍基于模型融合的另一种方式 Bagging 的算法,随机森林(Random Forest)。(上篇公式敲的太累了这篇就来个简单的缓解缓解)
随机森林
算法思想
我们先来看看这个算法的名字,可以拆分开为两部分,随机和森林。森林我们很容易可以想到,就是有很多棵树,即由多颗决策树组成。那么随机指的是什么呢?这里我们来看看 Bagging 的思想了。
首先先说说自助采样(Bootstrap Sanpling)
指任何一种有放回的均匀抽样,也就是说,每当选中一个样本,它等可能地被再次选中并被再次添加到训练集中。
而 Bagging 则是利用自助采样得到 T 组训练样本集,分别利用这些训练样本集训练 T 个分类器,最后进行集成的方法。从 Bias-Variance 分解的角度看, Bagging 主要关注降低方差。
那么,我们大概就能知道这个随机大概是什么意思了,就是随机抽取训练集。
那么,问题又来了,到底是随机抽取一定量的样本呢还是抽取部分特征呢?答案是都有,随机在这两方面都有所体现。
所以可以列出这么一个等式—— Random Forest = Bagging + Fully-Grown CART with Random Subspace。
其特点为:
可高度并行化
继承了 CART 的优点
克服了完全生长树的缺点
融合策略
知道了随机森林的算法思想后,知道了最后是需要将所有决策树的预测结果进行集成,那我们采