Adaboost,GBDT和XGboost算法

一: 提升方法概述提升方法是一种常用的统计学习方法,其实就是将多个弱学习器提升(boost)为一个强学习器的算法。其工作机制是通过一个弱学习算法,从初始训练集中训练出一个弱学习器,再根据弱学习器的表现对训练样本分布进行调整,使得先前弱学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一个弱学习器。如此反复学习 ,得到一系列的弱学习器,然后 组合这些弱学习器,构成一...
摘要由CSDN通过智能技术生成

 

一: 提升方法概述

提升方法是一种常用的统计学习方法,其实就是将多个弱学习器提升(boost)为一个强学习器的算法。其工作机制是通过一个弱学习算法,从初始训练集中训练出一个弱学习器,再根据弱学习器的表现对训练样本分布进行调整,使得先前弱学习器做错的训练样本在后续受到更多的关注,然后基于调整后的样本分布来训练下一个弱学习器。如此反复学习 ,得到一系列的弱学习器,然后 组合这些弱学习器,构成一个强学习器。提升方法生成的弱学习器之间存在强依赖关系,必须串行生成一系列的弱学习器。目前提升方法主要有 AdaBoost,GBDT,XGBoost等算法。而通常我们所知的Bagging,随机森林等算法生成的弱学习器之间不存在强依赖关系,可同时生成并行化的方法。

二: 提升方法AdaBoot算法

通常对提升方法来说,有两个问题需要回答:一是如何在每一轮改变训练样本的分布,二是如何将弱分类器组合成一个强分类器。

对于第一个问题,AdaBoost算法的做法是提高被前一轮弱分类器错误分类样本的权值,而降低被正确分类样本的权值。这样,没有得到正确分类的数据由于权值被加大而受到后轮的弱分类器更大关注。

对于第二个问题,AdaBoost算法的做法是AdaBoosting采取 加权多数表决的方法。具体就是加大分类误差小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值。

 AdaBoost算法的具体步骤(该步骤主要是基于模型为加法模型,损失函数为指数函数):

给定一个二类分类的训练数据集,每个样本点由实例xi与标记yi y={-1,1}组成,样本数为N 

目标从训练数据中学习一系列弱分类器,然后将这些弱分类器Gm(x)组合成一个强分类器G(x)。

(1)初始化训练数据的权值分布

(2)对于第m=1,2,..M轮迭代

(a)使用具有权值分布的Dm的训练数据集学习,得到基本分类器

(b)计算基分类器Gm(x)在训练数据集上的分类误差

这里wmi表示第m轮中第i个实例的权值,Gm(x)在加权的训练集上的分类误差是被Gm(x)误分类的样本的权值和,由此可看出基分类器Gm(x)的分类误差与权值分布Dm关系

(c)计算Gm(x)基分类的系数即基分类器的权值,log为自然对数

可知当em<=1/2时,αm>0,且分类误差率em越小的弱分类器,其权值αm越大。所以分类误差率越小的弱分类器在最终分类器中的作用越大。

(d)更新训练数据集的权值分布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值