1. 前言
随机森林 Random Forests (RF) 是由Breiman [1]提出的一类基于决策树CART的集成学习(ensemble learning)。论文 [5] 在121数据集上比较了179个分类器,效果最好的是RF,准确率要优于基于高斯核SVM和多项式LR。RF自适应非线性数据,不易过拟合,所以在Kaggle竞赛大放异彩,大多数的wining solution都用到了RF。
集成学习主要分为两大流派:Bagging与Boosting,两者在训练基分类器的思路截然不同:
- Bagging通过bootstrap sampling(有放回地取样)方式训练基分类器,每一个基分类器互不影响,但并不相互独立;
- Boosting则是通过重赋权(re-weighting)法迭代地训练基分类器,当前的样本权值的分布依赖于上一轮基分类器的分类结果;对于无法接受带权样本的基分类算法,则采用“重采样法”(re-sampling)来处理,即分错的样本在下一轮学习出现的次数会增加。
RF属于集成学习中的Bagging流派。若Bagging算法直接采用CART做基分类器,存在着一个问题:如果某些feature具有很强的预测性,则会被许多基分类器CART所选择,这样就增加了基分类器之间的相关性。而Bagging的泛化误差:
\[ \text{Generalization error } \le \frac{\overline{\rho} (1-s^2)}{s} \]
上式(具体含义及证明请参看论文 [1])表明:随着基分类器的相关性\(\overline{\rho}\)增加,则RF的泛化误差的上界也随之增加。为了降低基分类器的相关性,RF加入了Feature Bagging,对特征集合进行取样。
2. 详解
本小节详细介绍RF算法的细节,将从Data Bagging与Feature Bagging两个方面展开。
Data Bagging
RF对样本集bootstrap取样,与其他的Bagging算法并无二致。RF算法的整体流程如下(图来自于ESL [2]):
Feature Bagging
所谓Feature Bagging是对特征集合取样\(K\)个特征。每一棵策树的每一个结点分裂,RF都从特征集合中取样,并且每一次取样都互不影响。RF的的决策树生成算法如下(图来自于 [3]):
如果特征集合的基较小,即特征数量不足,则很难采样出相互独立的特征集合。RF采取了线性加权的方式组合(Linear Combinations of Inputs)成新feature,形成新的特征集合。Breiman把这一类RF称为Forest-RC。Breiman在论文 [1]中建议分类RF的\(K\)值应取特征总数\(p\)的对数值,而ESL [2]则建议取平方根值:
\[ K = \log_2 p + 1 \quad \text{or} \quad K = \lfloor \sqrt{p} \rfloor \]
kjw0612整理了awesome-random-forest,给出了RF在各个领域应用的最新进展。scikit-learn包的RandomForestClassifier实现了RF,既可用来做分类也可用来做回归,其中几个重要参数的说明:
n_estimators: RF的决策树的棵数,默认10;
max_features: 决策树分裂时的K值,默认为"auto"即sqrt(n_features),亦可选择"log2"即og2(n_features),或者直接指定为int值或float值;
bootstrap: 样本是否做bootstrap取样,默认为True;
3. 参考资料
[1] Breiman, Leo. "Random forests." Machine learning 45.1 (2001): 5-32.
[2] Trevor Hastie, Robert Tibshirani, Jerome H. Friedman. The elements of statistical learning. Springer, Berlin: Springer series in statistics, 2009.
[3] Zhou, Zhi-Hua. Ensemble methods: foundations and algorithms. CRC press, 2012.
[4] Leo Breiman and Adele Cutler, Random Forests.
[5] Fernández-Delgado, Manuel, et al. "Do we need hundreds of classifiers to solve real world classification problems." J. Mach. Learn. Res 15.1 (2014): 3133-3181.