一、背景

boostring算法是一类算法的总称,是Ensemble Learning (集成学习的一类)。Ensemble Learing算法一般包括两类算法
1.bagging算法
2.boostring算法。

二、分类

boostring算法按照算法的实现可以分为两类:

  1. weight boostring (权重boostring)
    https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/_weight_boosting.py
  2. gradient boostring(梯度boostring)
    https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/_gradient_boosting.pyx

三、常见算法

1.weight boostring
  • Adaboost
    权重 boostring的基函数可以是分类算法,也可以是回归算法。基函数也可以不是树,可以是LR,贝叶斯等。但是通常我们使用分类树或者回归树,例如sklearn里面默认使用决策树:DecisionTreeClassifier, DecisionTreeRegressor。

损失函数:Adaboost算法损失函数为指数损失。这一点不理解为什么不能是其他损失。

2. gradient boostring
  • 1.GBDT
  • 2.Xgboost
  • 3.LightGBM
    严格意义上说,gradient boostring的基分类器可以是LR、贝叶斯等,也可以是树。但是通常我们所说的gradient boostring算法,通常(大部分情况下)都是 gradient boostring tree(梯度提升树),

四、boostring tree(提升树)

提升树是以分类树或者回归树为基分类器的的提升方法。

1.weight boostring tree

weight boostring tree的基分类器可以是分类树也可以是回归树。参考sklearn.基分类器可以是残差树。
损失函数:Adaboost算法损失函数为指数损失。这一点不理解为什么不能是其他损失。

2. gradient boostring tree
  • 1.GBDT
  • 2.Xgboost
  • 3.LightGBM
    1、gradient boostring tree的基分类器是回归树。函数模型为CART回归树模型

2、损失函数一般为“对数损失函数”或“指数损失函数”
Gradient Boosting算法即梯度提升算法,

3、优化算法采用梯度下降

参考文献

1.https://blog.csdn.net/starter_____/article/details/79328749
2.统计学习方法-李航
3.https://blog.csdn.net/jingshuiliushen_zj/article/details/83350215

标签: none

添加新评论