一、简介
梯度提升树(Gradient Boosting Decision Tree,GBDT)是提升法中的代表算法,是工业界应用最多、在实际场景中表现最稳定的机器学习算法之一,它融合了Bagging和Boosting的思想,扬长避短,可以接受各类弱评估器作为输入,在后来弱评估器基本被定义为决策树后,才慢慢改名为梯度提升树,GBDT中自然也包含Boosting三元素:
1、损失函数L(x,y):用以衡量模型预测结果与真实结果的差异
2、弱评估器f(x):(一般为)决策树,不同的boosting算法使用不同的建树过程
3、综合集成结果H(x):即集成算法具体如何输出集成结果
同时GBDT也遵循boosting算法的基本流程进行建模:依据上一个评估器 ,计算损失函数L(x,y),并使用L(x,y)自适应地影响下一个弱评估器
的构建,集成模型输出的结果受到整体所有弱评估器
的影响
二、构建过程
GBDT的构建过程基于前向分布算法。它的基本思想是逐轮迭代拟合训练数据中的残差(真实值和当前预测值之间的差)。
-
初始化模型。通常使用训练数据目标变量的均值或中位数作为初始模型。
-
在M轮迭代中: a. 根据当前模型计算每个样本的负梯度值。对于回归任务,负梯度相当于当前模型预测值与实际值之间的残差。
b. 使用负梯度作为目标,构建一棵新的决策树。这个过程实际上是在拟合负梯度(即残差)以改进模型。
c. 通过线性搜索技巧找到一个最优学习率(步长),以此为依据对当前决策树的权重进行更新。这样可以使损失函数最小化。
d. 使用当前决策树对模型的预测值进行更新,乘以合适的学习率作为权重。
-
将所有决策树加权组合,生成最终预测模型
三、优点和缺点
优点
-
高准确率:GBDT通常具有很高的预测准确率,相对于其他方法(如SVM、随机森林等)有更好的性能。
-
有效处理混合类型数据:GBDT可以同时处理连续型和离散型特征数据,对数据类型的自适应能力较强。
-
自动特征选择与处理:在构建决策树的过程中,GBDT具有天然的特征选择能力。它还能找到特征之间的非线性关系以及相互作用。
-
适用范围广:GBDT既适用于回归任务,也适用于分类任务,具有很大的应用范围和灵活性。
缺点
-
训练时间较长:由于GBDT需要逐轮迭代地构建决策树,因此训练时间相对较长,尤其是在大规模数据场景下。
-
容易过拟合:GBDT在处理噪声较多或样本量较小的数据时,容易出现过拟合。调整树的深度和迭代次数等参数可以缓解过拟合现象。
-
解释性较差:虽然单棵决策树具有较好的解释性,但多棵决策树组成的GBDT模型的解释性相对较差。
-
难以并行计算:由于每轮迭代都依赖于上一轮迭代的决策树,GBDT算法难以进行并行计算。不过一些新型GBDT框架,如XGBoost、LightGBM,旨在提升计算效率和实现部分并行。