机器学习算法之Boosting
Boosting(提升方法)是一类方法的总称,并不是具体算法。
它的核心思想就是串联多个弱学习器,每个学习器都针对前一轮的误差进行改进,AdaBoost 就是 Boosting 的早期代表。
一、 Adaboost
AdaBoost是最早的 Boosting 算法之一,主要用于分类(也可以做回归,例如AdaBoost.R2)。
它的基本思想是**调整样本权重,聚焦难分样本。**它的执行过程:
1、初始化每个训练样本的权重相同,训练一个弱学习器(通常是决策树桩,即深度=1的小树);
2、得到这个弱学习器后,计算这个弱学习器的错误率ε_t,以及该弱学习器的权重,公式如下图中第一、第二个公式所示;并与真实标签进行对比,正确样本给于更小权重,错误样本给于更大权重。更新公式如下图第三个公式所示;
3、利用调整后的权重,再训练一个弱学习器;
4、重复2-3步骤,直到错误率为0或者达到最大迭代次数;
5、最终结果 = 各学习器按权重加权投票。
重要结论:
1、AdaBoost是一个串行化迭代的结果,因为每一个弱学习器的训练数据的权重,都是基于前一个弱学习器的正确率来调整后的结果(这有点像RL的过程,RL鼓励agent每一步都采取正确的动作,以获得奖励)。它更关注于错误样本,所以给予错误样本更大的权重。
2、AdaBoost展示了模型从弱到强的过程,由欠拟合到拟合较好的过程。