7.梯度提升决策树(GBDT)
GBDT 是一种集成算法,它使用 提升 组合个体决策树的方法。
Boosting 意味着将学习算法串联起来,从许多顺序连接的弱学习器中获得强学习器。对于 GBDT,弱学习器是决策树。
每棵树都试图最小化前一棵树的错误。 boosting 中的树是弱学习器,但串联添加许多树并且每棵树都专注于前一棵树的错误,使得 boosting 成为一个高效且准确的模型。与 bagging 不同,Boosting 不涉及引导采样。每次添加新树时,它都会适合初始数据集的修改版本。
由于树是按顺序添加的,因此提升算法学习速度很慢。在统计学习中,学习缓慢的模型表现更好。
损失函数用于检测残差。例如,均方误差(MSE)可用于回归任务,对数损失(log loss)可用于分类任务。值得注意的是,添加新树时,模型中的现有树不会改变。添加的决策树适合当前模型的残差。
学习率 和 n_估计器 是梯度增强决策树的两个关键超参数。学习率,表示为α,简单地表示模型学习的速度。每棵新树都会修改整体模型。修改的幅度由学习率控制。 n_估计器 是模型中使用的树的数量。如果学习率较低,我们需要更多的树来训练模型。然而,我们在选择树的数量时需要非常小心。使用太多的树会产生过度拟合的高风险。
GBDT 在分类和回归任务上都非常高效,并且与随机森林相比提供了更准确的预测。它可以处理混合类型的特征,并且不需要预处理。 GBDT 需要仔细调整超参数,以防止模型过度拟合。
GBDT算法非常强大,已经实现了许多升级版本,例如XGBOOST、LightGBM、CatBoost。
关于过拟合的注意事项
随机森林和梯度增强决策树之间的一个主要区别是模型中使用的树的数量。增加随机森林中的树木数量不会导致过度拟合。在某个点之后,模型的准确性不会通过添加更多的树而提高,但也不会因为添加过多的树而产生负面影响。由于计算原因,您仍然不想添加不必要的树木数量,但不存在与随机森林中的树木数量相关的过度拟合的风险。
然而,梯度提升决策树中的树数量对于过度拟合来说非常关键。添加太多的树会导致过度拟合,因此在某个时候停止添加树很重要。