一、背景

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

二、boosting算法

1.定义

提升方法实际采用加法模型(即基函数的线性组合)与前向分步算法。注意他的基函数不确定可以是任何函数。
Boosting是一种框架算法,拥有系列算法。我们一般不直接适用boosting算法,适用更多的是boostring tree。

2.分类

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

- 1.weight boosting (权重boosting)

权重 boostring的基函数可以是分类算法,也可以是回归算法。基函数也可以不是树,可以是LR,贝叶斯等。最常用的有adaboost

- 2.gradient boostring(梯度boostring)

使用这类算法,大多数都使用基分类器是决策树的算法,包括GBDT,xgboost,lightGBM

注意:分类标准参考sklearn:
(1)https://github.com/scikit-learn/scikit->;learn/blob/master/sklearn/ensemble/_weight_boosting.py
(2)https://github.com/scikit-learn/scikit->;learn/blob/master/sklearn/ensemble/_gradient_boosting.pyx

三、boosting tree算法(等价于boosting decision tree,因为我们用到的树都是决策树)

1.算法定义

提升方法实际采用加法模型(即基函数的线性组合)与前向分步算法,并且以决策树为基函数的提升方法称为提升树。

2.算法分类
- 1.weight boosting tree (权重boosting tree)

(1)分类问题:基函数拟合原数据
(2)回归问题:基函数拟合残差

注意:一般情况下我们所指的提升树是weight boosting tree,并不包括gradient boostring tree
- 2.gradient boostring tree(可以认为是GBDT)
注意:
1.提升树是利用加法模型与前向分步算法实现学习的优化过程,当损失函数是平分损失和指数损失时,优化很简单。但是对于
一般损失函数而言,不容易。针对这一问题,freidman提出了梯度提升算法。
2.因为我们用到的tree基本都是decision tree 所有可以认为是GBDT。GBDT用到的都是回归决策树。

(1)分类问题:基函数拟合原数据
(2)回归问题:基函数拟合残差


三、常见算法

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

添加新评论