不同于之前讲的SVM、决策树、朴素贝叶斯算法,提升算法本着“三个臭皮匠,顶个诸葛亮”的原则,将多个性能一般的模型"组装"成一个高性能模型。Bagging和Boosting是最常用到的模型融合方法,最经典的Bagging模型是随机森林,boosting的经典算法有adaboost和梯度提升决策树(gbdt),后面都会讲到,这篇文章先介绍adaboost。
adaboost (adaptive boosting),直译为自适应提升算法。它是一种前向分步算法,每一步根据当前样本权值训练一个基模型,达到最小化分类误差的目的。Adaboost算法的两个环节是样本权值调整策略和子模型融合策略。对于样本权值调整,Adaboost算法会根据上一个子模型分类结果,增大误分类样本的权重,减小正确分类样本的权值;对于子模型融合,Adaboost会根据每个子模型的误分类率计算模型权重,通过加权多数表决的方式决定样本的预测值。
下面详细介绍Adaboost的原理。对于训练集,每个样本的初始权重
。对于第m={1,2, ..., M}个基模型:
(1) 根据权重训练基模型,达到最小化误分类率
的目的。
(2) 计算模型误分类率:;
(3) 计算模型权重:;
(4)更新每个样本的权重:,其中
。当样本分类正确时,权值减小;分类错误,权值增大。
我们最终得到的模型为:,预测时根据f(x,y)的正负决定预测的类别。<0为负类,>0为正类。