流行的机器学习算法,如 XGBoost 和 LightGBM,充分利用了这一概念。理解 boosting 有助于阐明为什么它是一个如此强大的工具并适用于当今的许多分类问题。
提升树是什么?
Boosting 是将多个弱分类器组合成一个强分类器的概念。弱分类器是预测能力较差的模型,其性能仅略好于随机猜测。Adaboost 就是这种算法的一个例子,它通过组合树桩来创建一个强分类器。树桩是深度为 1 的决策树。我们可以通过一个简单的图解来更好地理解它
每个圆圈的大小显示了 Adaboost 分配给该点的权重(错误分类的点更高)。我们可以清楚地看到,在前一个时间步之后,错误分类点的权重更大。决策树桩是弱学习器,它们无法自行对点进行高精度分类。
Adaboost 通过对这些弱学习器进行加权来组合它们,最终给出一个强学习器。
算法背后的数学:
以上算法步骤说明如下:
1.我们首先计算数据集中每个观测值的样本权重(初始化为 1/m)。
2.使用最佳分割构造一个树桩,最小化误差(例如,最小化残差平方和)
3.计算分类/回归误差(例如,均方误差或分类误差)
4.计算一个树桩的数量:
5. 计算新的样本权重。这将强调下一个树桩正确分类当前树桩的错误分类观察
对于正确分类的观察
对于错误分类的观察
6. 将新的样本权重归一化,加起来为 1
7. 重复步骤 2-7 直到收敛(达到最大树桩数或错误超过最小阈值)
Adaboost 的局限性:
当数据中存在强异常值时,Adaboost 容易过度拟合。这激发了梯度提升算法的推广,也称为梯度提升机 (GBM)。
小结
提升(Boosting)方法是一种常用的统计学习方法,应用广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。