由以色列计算机科学家Y.弗罗因德[注]和美国计算机科学家R.E.沙皮尔[注]于1990年提出,主要应用于分类领域。由于将众多分类器组合可以提升总的分类效果,故而称为提升法。沙皮尔等人提出原始的提升算法,基于三个弱的分类器采用少数服从多数的投票准则进行分类。弗罗因德和沙皮尔于1995年提出的自适应提升法(AdaBoost),算法中每个弱分类器输出0或者1。之后各种提升法不断出现并不断完善。
提升法
用于减小监督式学习中偏差的机器学习算法。将众多分类器组合,提升总的分类效果,将众多分类器组合,提升总的分类效果。
- 英文名称
- Boosting
- 所属学科
- 统计学
提升法并不是一个单独的模型,准确地说它是一种策略,可以用于多种模型。按照次序产生弱的分类器,每个分类器依赖于之前的分类器而产生,并且关注之前分类的错误观测,对这部分观测加大权重然后将这些弱分类器组合成强分类器,从而提高总体分类精度。强分类器可以是多个采用不同参数的同类模型(如不同深度的树模型),也可以是多类模型(如决策树、神经网络、支持向量机)组合形成。通常使用较多的有以下几类。
考虑一组训练集样本,其中
是一组变量的值向量,响应变量
或1。定义
,其中
是一个分类器,输出1或者-1,
是常数。具体算法如下:
第一,开始对每个样本数据赋予权重。
第二,重复:
①拟合分类器使用权重
。
②计算误差率,
。
③,并且正则化为1。
第三,输出分类器。
因此,根据每次新的分类器的错误率调整该分类器最终的投票权重,针对其中分错的样本加大权重用来形成后续的分类器,最终把所有分类结果(1或-1)按照加权求和,根据符号判断类别,若大于0,则判别为1;否则为-1。
2001年,J.H.弗里德曼为了适应基于任何拟合准则进行的累加模型的拓展,从梯度下降法的视角解读提升法。其中回归树的梯度提升算法可以形成具有高度稳健、可解释性强的回归或者分类过程。具体算法如下:
第一,初始化。
第二,重复:
①计算梯度残差使用:
②使用弱分类器来计算:。
③。
④。
第三,输出。
基于梯度提升算法,2016年中国陈天奇提出XGBoost算法,这是一种新的处理稀疏数据的决策树学习算法。在决策树学习中利用合适的加权分位数来处理学习算法中的每个权重,最终可以形成首尾相连的系统,这个系统可以拓宽到更大型的数据中,更快捷地计算。精确贪婪算法下的XGBoost如下:
第一,输入个观测样本和
个特征变量。
第二,,有:
。
第三,重复从1到
,有:
①。
②对于,按照排序后的
依次列举:
第四,输出最大分数的划分。
提升算法可以用于一系列精度低的弱分类器,将其组合成精度高的强分类器;可以应用于所有的分类领域的相关问题,例如银行贷款与否、患者病情是否恶化等分类问题。由于提升算法不存在过度拟合问题,因此效果一般都比单个模型的效果要好。
扩展阅读
- FREUND Y, SCHAPIRE R E.Experiments with A New Boosting Algorithm.Machine Learning: Proceedings of the Thirteenth International Conference,1996,148-156.
- FRIEDMAN J H, HASTIE T, TIBSHIRANI R.Additive logistic regression: a statistical view of boosting (with discussion).The Annals of Statistics,2000,28(2):337-407.
- FRIEDMAN J H.Greedy Function Approximation: A Gradient Boosting Machine.The Annals of Statistics,2001,29(5):1189-1232.
- CHEN T Q, LI H, YANG Q, et al.General Functional Matrix Factorization Using Gradient Boosting.Proceedingsofthe30th International Conference on Machine Learning (ICML'13),2013,28(1):436-444.