美文网首页
Adaboost算法原理

Adaboost算法原理

作者: 不分享的知识毫无意义 | 来源:发表于2020-01-17 19:49 被阅读0次

还是秉持笔者一贯的文风,以通俗易懂为目标,其中大量的数学工作,喜欢证明的朋友自己去看。

1.什么是Adaboost

Adaboost是集成算法,是boosting的一种,通过给样本和分类器都设置权重的方式,达到目标的逐步优化。跟GBDT一样,也有分类和回归之分,同样只是体现在目标函数的不同。

2.Adaboost的基础知识

  • 指数损失形式,目标y为{-1,1},形式为L(y,f(x)) = e(-yf(x))。f(x)是当前弱分类器的预测结果,我们都知道预测对了的话yf(x)大于0损失函数值较少,预测错的话yf(x)小于0损失函数值较大,因此这个其实是相当于更加关注预测错样本的情况。
  • 分类器权重的更新方法:
    这个是根据指数损失函数一顿求导求出来的,其实吧具体过程看看即可,能用就行,em是这个分类器的误差。


    基分类器权重计算公式
  • 样本权重的更新方法:
    也是一通计算出来的,我们只要知道形式就行了,如目标函数所说,分错的样本被分给了更大的权重,其他都好说。


    样本权重更新方法
  • 分类问题类别的确定方法:
    由于目标是{-1,1},所以最后确定类别的时候,直接用了sign函数。

3.Adaboost回归问题

回归问题一直是这类集成算法里边最好解释的问题。
(1)计算损失,回归问题的损失有绝对值和平方两种,在求损失的时候先求了一个最大值然后进行了标准化,然后依据不同的损失函数形式有不同的表达方式。根据样本权重计算加权损失和。
(2)计算分类器的权重,还记得公式吧,这个还用于更新样本权重呢。


分类器权重计算方法

(3)更新样本权重,根据分类器的权重,真实值以及预测值等更新各个样本的权重。


回归问题样本权重更新公式
这个公式显然是推导出来的,而我们直接用就行了。
(4)基模型结合策略
不同于分类问题,回归问题的模型结合,采用的是基模型权重中位数相结合的计算方法。
基模型的结合方案

其中g(x)是基模型权重和结果的中位数

4.Adaboost分类问题

同样包括二分类和多分类问题,二分类是多分类的一个特例。sklearn采取了SAMME和SAMME.R两种算法,需要的时候自己选一个用一下。

4.1 二分类问题

分类问题其实大致过程和回归问题差不多,只不过在公式上有些许的差异。
第一,目标函数用的指数损失函数
第二,虽然权重初始化的方法是一样的,计算基分类器权重方法是一样的,但是权重更新公式不同,分类问题是这样的:


分类问题样本权重更新公式

第三,基分类器的组合方案不同。回归问题是中位数组合,分类问题是加权组合。


分类问题基分类器的组合
最终的分类结果是:
分类结果计算
值得注意的是,对于二分类问题每一次都要用sign进行一下预测值转换。

4.2 多分类问题

传统的GBDT只能解决二分类,对于多分类需要修改代码。多分类问题解决方案有三种,一对多、一对其余和多对多,实际上一对多最常用。GBDT实际使用0-1编码的方式,实际就是一对多策略,将3分类转化成3个二分类问题。
当然adaboost也可以用这种思路解决。但是sklearn提供了解决多分类问题的方法。
直接说SAMME.R算法,算法的大体思路还是类似的,分类器权重计算,样本权重更新等等。不同之处在于
(1)计算分类器的权重的时候,考虑了一个分类为k类的概率,


分类为k的概率

(2)更新加法模型:


加法模型的更新
(3)计算样本权重:
样本权重计算方法
(4)计算分类
分类计算方法
其实就是计算使加法模型值最大的那个类别。

仔细想也是一对多的策略。

相关文章

  • 04 集成学习 - Boosting - AdaBoost算法构

    03 集成学习 - Boosting - AdaBoost算法原理 十、AdaBoost算法构建 上一章最后说明了...

  • Adaboost算法原理

    还是秉持笔者一贯的文风,以通俗易懂为目标,其中大量的数学工作,喜欢证明的朋友自己去看。 1.什么是Adaboost...

  • 提升方法

    提升方法 提升方法 AdaBoost 算法 AdaBoost算法的训练误差分析 AdaBoost算法的解释 提升树...

  • 第8章 Adaboost算法

    内容 一、Adaboost简介 二、Adaboost算法过程 三、Adaboost算法的训练误差分析 四、Adab...

  • 集成算法整理

    一.AdaBoost的算法 在学习adaboost算法前先要弄清楚前向分布算法,因为AdaBoost是前向分布加法...

  • Adaboost算法简介

    Adaboost算法 Adaboost算法是一种有监督的学习方法,是基于Adaboost算法的分类器把若干个分类器...

  • 4. AdaBoost 自适应推进

    1.名词解释 Boost(推进),adaboost(adapt boost)自适应推进算法:Adaboost算法是...

  • GBDT集成算法(梯度提升树)

    一、算法思想 GBDT是集成学习Boosting算法中的一种,它与Adaboost相比,Adaboost算法利用...

  • Adaboost集成算法

    一、Adaboost算法原理 从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学...

  • adaboost和xgboost的区别和联系

    机器学习算法中GBDT与Adaboost的区别与联系是什么? Adaboost Adaboost是模型为加法模型,...

网友评论

      本文标题:Adaboost算法原理

      本文链接:https://www.haomeiwen.com/subject/bwbczctx.html