集成方法—AdaBoost原理详解
目前集成学习方法分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表有Boosting,其中最为代表的是Adaboost;以及个体学习器间不存在强依赖关系,可同时生成的并行化方法,代表是Bagging和“随机森林”。
一、AdaBoost原理详解
AdaBoost是典型的Boosting算法,属于Boosting家族的一员。在说AdaBoost之前,先说说Boosting提升算法。Boosting算法是将“弱学习算法“提升为“强学习算法”的过程,主要思想是“三个臭皮匠顶个诸葛亮”。一般来说,找到弱学习算法要相对容易一些,然后通过反复学习得到一系列弱分类器,组合这些弱分类器得到一个强分类器。Boosting算法要涉及到两个部分,加法模型和前向分步算法。加法模型就是说强分类器由一系列弱分类器线性相加而成。一般组合形式如下:
前向分步就是说在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得来的。也就是可以写成这样的形式:
由于采用的损失函数不同,Boosting算法也因此有了不同的类型,AdaBoost就是损失函数为指数损失的Boosting算法。
1.1 原理理解
基于Boosting的理解,对于AdaBoost,我们要搞清楚两点:
- 每一次迭代的弱学习 h ( x ; a m ) h(x;a_m) h(x;am)有何不一样,如何学习?
- 弱分类器权值 β m \beta _m βm如何确定?
对于第一个问题,AdaBoost改变了训练数据的权值,也就是样本的概率分布,其思想是将关注点放在被错误分类的样本上,减小上一轮被正确分类的样本权值,提高那些被错误分类的样本权值。然后,再根据所采用的一些基本机器学习算法进行学习,比如逻辑回归。
对于第二个问题,AdaBoost采用加权多数表决的方法,加大分类误差率小的弱分类器的权重,减小分类误差率大的弱分类器的权重。这个很好理解,正确率高分得好的弱分类器在强分类器中当然应该有较大的发言权。
1.2 实例
举《统计学习方法》中的例子
有如下的训练样本,我们需要构建强分类器对其进行分类。x是特征,y是标签。
1.3 算法流程
1.4 公式推导过程
- AdaBoost算法学习是加法算法,是由基本分类器组成的加法模型,损失函数是指数函数;
1.5 相关问题
- 手推AdaBoost ;
- 与GBDT比较的异同点;
- AdaBoost几种基本机器学习算法哪个抗噪能力最强,哪个对重采样不敏感?;