【机器学习】随机森林(Random Forest)、GBDT(Gradient Boosting Decision Tree)、XGBoost(eXtreme Gradient Boosting)

随机森林步骤

  1. bootstrapped dataset: 创建一个引导数据集
  2. 根据引导数据集创建决策树,每一步用变量的一个随机子集(列的随机子集)创建
  3. 不断重复上述两个过程
  4. bagging: bootstrapping + aggregate

GBDT

好处:决策树算法相比于其他的算法需要更少的特征工程,比如可以不用做特征标准化,可以很好的处理字段缺失的数据,也可以不用关心特征间是否相互依赖等。决策树能够自动组合多个特征。不过,单独使用决策树算法时,有容易过拟合缺点。所幸的是,通过各种方法,抑制决策树的复杂性,降低单颗决策树的拟合能力,再通过梯度提升的方法集成多个决策树,最终能够很好的解决过拟合的问题。由此可见,梯度提升方法和决策树学习算法可以互相取长补短,是一对完美的搭档。

步骤

  1. 计算目标值得均值,而后计算出每个数据对均值的残差
  2. 构造树来对残差做预测,average weight + scale * (Tree’s prediction 1) + scale * (Tree’s prediction 2) … ,树的叶节点一般是4-32
  3. 预测值和真实值的区别作为新的残差,重复第二步
  4. 新的残差只要比原来的残差要小,说明训练方向是正确的

损失函数

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×(observedprediction)2

XGBoost

参考

  1. 博客:什么是随机森林?
  2. 博客:GBDT算法:原理篇
  3. 博客: XGBoost算法介绍
  4. 知乎回答:神经网络能否替代决策树算法?

你可能感兴趣的:(机器学习,随机森林,boosting)