Boosting 和 Adaboost 的关系和区别是什么?

关注者
180
被浏览
42,933

15 个回答

Boosting 是一种将弱分离器f_i(x)组合起来形成强分类器F(x)的算法框架。

一般而言,Boosting算法有三个要素[1]:

1)函数模型:Boosting的函数模型是叠加型的,即F(x)=\sum_{i=1}^{k}f_i(x;\theta_i)

2)目标函数:选定某种损失函数E\{F(x)\}=E\{\sum_{i=1}^{k}f_i(x;\theta_i)\}作为优化目标;

3)优化算法:贪婪地逐步优化,即\theta_m^*=\arg \min_{\theta_m}{E\{\sum_{i=1}^{m-1}f_i(x;\theta_i^*)+f_m(x;\theta_m)\}}

将上述框架中的f_i(x)选为决策树,将E\{F(x)\}选为指数损失函数,就可以得到AdaBoost算法。也就是说AdaBoost是Boosting算法框架中的一种实现。当然也有别的实现,比如LogitBoost算法等。

参考文献:[1]Additive Logistic Regression: a Statistical View of Boosting

boosting 是一种将弱分类器转化为强分类器的方法统称,而adaboost是其中的一种,采用了exponential loss function(其实就是用指数的权重),根据不同的loss function还可以有其他算法,比如L2Boosting, logitboost...

还有adidas跑鞋上的boost很不错,脚感一流,可以一试。