boostring算法总结
一、背景
boostring算法是一类算法的总称,是Ensemble Learning (集成学习的一类)。Ensemble Learing算法一般包括两类算法
1.bagging算法
2.boostring算法。
二、分类
boostring算法按照算法的实现可以分为两类:
- weight boostring (权重boostring)
https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/_weight_boosting.py - 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