Adaboost算法:基于集成学习的又一经典分类算法

欢迎关注”生信修炼手册”!

对于集成学习而言,常用的有bagging和boosting两种策略,在之前的文章中,介绍了bagging策略的经典算法-随机森林,本文介绍基于boosting策略的经典分类算法-Adaboost。

boosting策略的框架如下所示

和bagging策略不同之处主要有两点,首先是迭代的过程是链式依赖的,而bagging策略是相互独立的;其次每次弱分类器是带不同的权重值的,而bagging策略每个分类器权重相等。经典的boosting系列算有有以下几种

1. Adaboost

2. GBDT

3. XGboost

其中Adaboost是最早提出,最为经典的一种监督学习算法,通过多次迭代的方式来构建多个弱分类器,并最终组合成为一个强分类器。

该算法的迭代的过程是一个相互依赖的过程,从第一次迭代开始,每个样本都赋予一个权重值,然后进行训练,根据训练出来的分类器的错误率来计算该分类器的权重,并据此调整样本的各个权重值,作为下一次迭代的输入,最终的强分类器由多个弱分类器的加权函数构成。

在具体的计算过程中,需要理解以下几个关键点

#### 1. 分类器误差率

分类器误差率的计算公式如下

表示的是分类错误的样本点的权重之和。

#### 2. 分类器的权重

对于每个弱分类器,需要计算其权重值,计算公式如下

其中的e表示该分类器的误差率。

#### 3. 样本权重

样本权重在第一次迭代时,统一赋值1/N, 其中N是样本总数,在接下来的迭代过程中,用分类器的误差率进行调整,公式如下

其中的Z表示规范化因子,计算公式如下

#### 4. 最终模型

最终模型由多个弱分类器的线性组合构成,公式如下

最终的分类结果通过sign函数来实现,公式如下

下面以一个实际的例子来说明该算法的迭代过程, 该数据包含10个样本,x1和x2两个特征,如下所示

1. 第一次迭代

每个样本的初始权重为1/10, 同时true用1表示,false用-1表示。由于具体分类器的模型可以有多种选择,为了这里直接给出分类的效果,以专注于理解分类器权重和样本权重的计算过程。

分类结果用prediction列表示

分类错误的样本有3个,每个样本的权重值都为0.1, 所以该分类器的误差率为0.3,带入公式,可以求得该分类器的权重

>>> 1/2 * np.log((1-0.3)/0.3)
0.42364893019360184
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值