如何利用AdaBoost提高分类性能

AdaBoost属于元算法,不同于传统的单分类器(决策树、朴素贝叶斯、SVM等),它是多个分类器的组合,共同决定预测结果。而且适用数值型和标称型(类别)数据。工作流程如下:

  • 对于训练数据中的每个样本数据,赋予其一个权重,这些权重构成了向量D,初始时权重都化为相等值。 Di=1
  • 在训练数据上训练出一个弱分类器,并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器,直到错误率为零。

工作流程就是这样,但是还要注意几点:

  • 在分类器第二次训练中,会重新调整每个样本的权重,其中第一次分对的样本的权重会降低,而第一次分错的样本的权重会提高(目的是下次重点关注错误样本,尽量使其分对)
  • 传统单分类器都可以作为弱分类器,AdaBoost选取单层决策树作为弱分类器。单层决策树就是仅针对一个特征来做决策,算上根节点只有两层,类标签有几个就有几个分支。以收入作为特征,类标签为研究生和本科生,分支就为两个,决策判断就是收入大于是否10K,最终构建如图:
    这里写图片描述
  • 为了从所有弱分类器中得到最终的分类结果,AdaBoost给每个分类器都分配了一个权重值 α ,即带不同权重的分类器共同决定分类结果。

简言之,对于AdaBoost要记住两点:

  • AdaBoost分类的结果是基于所有分类器的加权求和得到的,每个分类器的权重不等,权重代表的是其对应分类器在上一轮迭代中的成功度。
  • adaboost是通过集中关注被已有分类器错分的那些数据来获得新的分类器。

然后我们从算法角度说明AdaBoost包含4个核心部分。

  • 首先给出训练数据集,关于性别预测,给出收入和上网时间两个特征。
    这里写图片描述

  • 构建单层决策树。单层决策树的目的是从若干特征中选出错误率最小的那个特征(对结果影响最大),并返回预测结果和错误率。其实特别简单:对于样本一(1,2,1.3,1,2),我构建的决策树就是找个阈值,大于该阈值将样本一中的元素划分到类别1,小于(等)该阈值将样本一中的元素划分到类别-1,这就是一颗决策树。然后我么要注意的是阈值要动态调整,最好有固定步长,来使得预测分类的错误率最小(目标)。

    讲到这,弱分类基本上就算是建好了,但是我们还有一个细节没有说,那就是错误率的计算需要算上样本的向量权重D,也就是说由于每个样本元素的权重不同,最终的错误率应该是加权错误率。以样本一为例(D=[0.2,0.2,0.2,0.2,0.2]),阈值为1.3时,其预测分类结果为(-1,1,-1,-1,1),而正确分类结果为(1,1,-1,-1,1)。大家可以看到第一数据被分错了,这样加权错误率为0.2*1=0.2。同理,若样本权重向量D=(0.1,0.3,0.2,0.3,0.1),预测分类结果为(1,-1,1,-1,1),加权错误率为0.3×1+0.2×1=0.5
    这里写图片描述


  • 基于单层决策树的AdaBoost训练过程:
    这里写图片描述

训练过程解释说明:

  1. 单层决策树会根据D返回加权错误率以及预测的分类结果,该分类结果就是分类器。
  2. 通过错误率 ε 可以计算出分类器的权重 α :
    α=12ln(1ϵϵ)
  3. α 结合单层决策树预测的分类结果(分类器),共同产生新的预测结果,与正确类标签进行比对得出新的错误率(此时的错误率是加权分类器产生的预测结果与正确类标签比对的,比对时不加权值),判断是否为0决策是否继续迭代。
  4. 若不为0,触发分类器权重 α 得出新的权重向量D:
    D(t+1)i=DtieαSum(D) 错误分类
    D(t+1)i=DtieαSum(D) 正确分类
  5. 由新的权重向量D进行新一轮的迭代,得到新的错误率等。AdaBoost的最终返回值是对应不同权重 α 的分类器集合,也就是说只要不断迭代,就会有新的 α 和分类器,可以保存到一个字典中。

  • 构建完整的AdaBoost分类函数:
    基于单层决策树的训练过程得到了多个弱分类器以及对应的 α 值,现在我们就可以通过这些弱分类器及其权重通过加权求和来预测测试数据啦。
    这里写图片描述

还可以在完整些的,下次给出核心代码,然后应用实际数据通过对比KNN、贝叶斯分类画出效果图像。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值