Ensemble methods
2017-01-13 本文已影响0人
新星_点灯
Bootstrap & Cross-Validation
- Bootstrap
有放回抽样,减少不确定性 - Cross-Validation
K等分,留一份做测试集其余为训练集;为了模型评估结果的稳定性,常用于特征选择,模型选择,- Bias-Variance Trade-Off
K 越大test error(以validation data set 的 error代替)的variance越高,bias越低- 经验选择 k=5或10
- 减少计算量
- bias - variance trade-off
- 经验选择 k=5或10
- Bias-Variance Trade-Off
Bagging, Random Forests
-
Bagging: Bootstrap aggregation
用bootstrap方法得到B个数据集(每个数据集包含n个数据),以B个数据集建立B个模型,最终结果为所有模型结果的平均(或多数投票) -
Out of Bag Error Estimation (OOB)
平均每次只有2/3的样本会进入训练模型,剩下的1/3可用来计算测试集误差。平均每个样本会B/3次出现在测试集中,计算误差时取均值。 -
若用决策树,每棵树都完全生长不剪枝
单颗树low bias, high variance;再结合Bagging的方法降低variance;B越大越好,经验值取100 -
Random Forests
RF在bagged trees的基础上通过随机选取特征来降低树与树之间的相关性。- bagged trees模型若变量中有部分变量有较强预测性,则生成的各颗树相似度较高。不能显著降低模型variance。
-
m 的经验值为√p, 在相关变量较多时宜使用较小的m
Boosting
- 与bagging的区别
bagged trees中的树是各自建立在自己的抽样的数据集上,训练过程独立;Boosting方法中树是依次建立的并且没有使用bootstrap抽样;Boosting是一群弱分类器的加权组合; - Boosting有三个重要参数
- 树的个数:树太多时会过拟合,通常用cross-validation来确定树的个数
- 树的深度:通常深度为1
- 学习率:通常为0.01或0.001,较小的学习率需要较多的树。
- Boosting方法训练时每棵树会考虑前面树的效果,因此宜使用较简单的树(深度小);另外简单的树有较高的解释性(如用stumps构成additive model)
- Boosting算法的实现
- AdaBoost(Adaptive Boosting)
- XGboost
Extreme Gradient Boosting
Reference:
《Introduction to statistical learning》
《Machine learning in action》