1. 介绍
- 定义:Random Forest可以视为若干棵Decision Tree的Ensemble集成。
- 好处:随机森林比一般的决策树,具有更小的方差和variance,是目前应用最广法、且分类效果最好的一种机器学习算法。
2. 步骤
原始dataset的info:
- N = 3000,3000只股票;
- M = 8,包括high,low,close,open,volome,MA10,MA20,RSI这8个特征features
- 分类预测:次日股价状态 Up,down,Flat
1)构建一个规模为 n 的bootstrap样本 (n < N)
就是resample重抽样,若bootstrap规模n = 100,那么就是从3000只股票里随机抽出100只股票,构成一个新样本
2)基于这个bootstrap样本生长一棵决策树 (m < M)
以这100个观测值的样本作为input,且从8个features中随机挑选出m个样本,若m = 3,那么就是随机选出三个feature来生长树,比如这一轮选中的三个特征可能是high、open、RSI,这样生长出来第一棵决策树 Tree 1
3)重复以上两个步骤 k 次
得到了 k 棵独立的决策树,{Tree 1, Tree 2, … , Tree k},每棵树的样本容量都是 n = 100, 每棵树的特征数都是 m = 3
4)汇总每棵树的分类结果,得到最终Forest的分类结果
用majority vote的投票原则,得到整个森林预测的结果,比如这 k 个独立的决策树中,有60%棵树分类预测次日股价Up,30%棵树分类预测次日股价Down,10%棵树分类预测次日股价Flat不变,那么我们最后整个随机森林的Output结果就是Up
Intuition
3. 调参的关键
- 特征数 m:每棵决策树的分类能力越强,整个森林的错误率越低。减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大
- bootstrap 样本规模 n:任意两棵决策树的相关性越小,整个森林的错误率越低;因此减少每次bootstap的样本容量 n,可以增加整片森林中树木的多样性,即增加了随机性和单个树与树之间的独立性,缓解了overfitting
参考资料
-
Breiman, “Random Forests”, Machine Learning, 45(1), 5-32, 2001.
-
Random Forest 官方使用文档