如今,集成式学习方法由于其强大的泛化能力,得到了广泛的重视和应用。在上一个博客http://blog.csdn.net/yz930618/article/details/76802908中讲解了什么是集成学习以及其分类。有不懂什么是集成学习的可以先看看这篇。

Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。那么本次将着重讲解并推导集成学习中boosting方法中的Adaboost算法。

Adaboost理论介绍

Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。  

AdaBoost 是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器。

Adaboost=Boost+损失函数是指数函数(基函数可以任意)

具体说来,整个Adaboost 迭代算法就3步:

  1. 初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权值:1/N。

  2. 训练弱分类器。具体训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它的权值就被降低;相反,如果某个样本点没有被准确地分类,那么它的权值就得到提高。然后,权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。

  3. 将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

AdaBoost算法描述如下,其中,yi1,1,f是真实函数:

机器学习-深入理解Adaboost

相关文章:

  • 2021-09-28
  • 2021-03-31
  • 2021-06-06
  • 2021-11-06
  • 2021-08-14
猜你喜欢
  • 2021-10-12
  • 2021-09-20
  • 2021-11-19
  • 2022-03-09
  • 2021-09-04
  • 2021-10-20
相关资源
相似解决方案