随机森林步骤
- bootstrapped dataset: 创建一个引导数据集
- 根据引导数据集创建决策树,每一步用变量的一个随机子集(列的随机子集)创建
- 不断重复上述两个过程
- bagging: bootstrapping + aggregate
GBDT
好处:决策树算法相比于其他的算法需要更少的特征工程,比如可以不用做特征标准化,可以很好的处理字段缺失的数据,也可以不用关心特征间是否相互依赖等。决策树能够自动组合多个特征。不过,单独使用决策树算法时,有容易过拟合缺点。所幸的是,通过各种方法,抑制决策树的复杂性,降低单颗决策树的拟合能力,再通过梯度提升的方法集成多个决策树,最终能够很好的解决过拟合的问题。由此可见,梯度提升方法和决策树学习算法可以互相取长补短,是一对完美的搭档。
步骤
- 计算目标值得均值,而后计算出每个数据对均值的残差
- 构造树来对残差做预测,average weight + scale * (Tree’s prediction 1) + scale * (Tree’s prediction 2) … ,树的叶节点一般是4-32
- 预测值和真实值的区别作为新的残差,重复第二步
- 新的残差只要比原来的残差要小,说明训练方向是正确的
损失函数
1 2 × ( o b s e r v e d − p r e d i c t i o n ) 2 \frac{1}{2} \times(observed - prediction)^2 21×(observed−prediction)2
XGBoost
参考
- 博客:什么是随机森林?
- 博客:GBDT算法:原理篇
- 博客: XGBoost算法介绍
- 知乎回答:神经网络能否替代决策树算法?