当前位置:首页 > 财经

adaboost 实践秘籍:Boosting 与 AdaBoost

源/机器的核心

本文将尽可能详细地介绍Boosting和AdaBoost的相关概念。

将涉及:

对 bagging(装袋法)的快速回顾bagging 的局限性Boosting 的概念细节boosting 的计算效率代码示例

打包的局限性

接下来,我们不妨考虑一个二元分类问题。我们把一个观测值分为0或1。虽然这不是本文的目的,但为了清晰起见,让我们回顾一下Bagging的概念。

打包是指一种称为引导聚合的技术。其本质是选择t个bootstrap样本,在每个样本中安装一个分类器,然后并行训练模型。通常在随机森林中,决策树是并行训练的。然后,对所有分类器的结果进行平均,得到bagging分类器:

装袋分级机的配方

这个过程可以用以下方式来说明。让我们考虑三个分类器,它们生成一个分类结果,可能是对的,也可能是错的。如果我们画出三个分类器的结果,会有一些区域表明分类器的结果是错误的。在下图中,这些区域用红色表示:

打包场景示例

这个例子可以很好的说明,其中一个分类器的结果是错误的,而另外两个分类器的结果是正确的。通过对分类器进行投票,可以获得较高的分类准确率。但是你可能猜到了,bagging机制有时候并不太好用,所有的分类器都会在同一个区域得到错误的分类结果。

因此,助推方法背后的直观理念是:

我们需要串行训练模型,而不是并行训练。每个模型需要重点关注之前的分类器表现不佳的地方。

助力介绍

概念

上述观点可以解释为:

在整个数据集上训练模型 p对 p 表现较差的区域的数据加权,并在这些数据上训练模型 h2对 p ≠ h2 的区域的数据加权重,并在这些数据上训练模型 h3...

我们可以串联而不是并联训练这些模型。这就是Boosting的精髓!

Boosting方法会随着时间的推移通过调整误差度量来训练一系列低性能算法,称为弱学习器。弱学习者是指那些错误率略低于50%的算法,如下图所示:

错误率略低于50%的弱分类器

权差

如何才能实现这样的分类器?事实上,我们通过在整个迭代过程中对误差进行加权来实现这一点。这样,我们将在分类器之前对性能差的区域给予更多的权重。

想想二维图像上的数据点。有些点分类很好,有些则不然。一般在计算错误率时,每个错误的权重为1/n,其中n为待分类的数据点个数。

未加权误差

现在我们来衡量一下误差!

权差

现在,您可能已经注意到,我们对没有很好分类的数据点给予了更高的权重。加权过程如下图所示:

加权过程示例

最后,我们希望构建一个强分类器,如下图所示:

强分类器

决策树桩

你可能会问,我们需要实现多少个分类器才能让整个Boosting系统正常工作?每一步如何选择一个分类器?

答案就是所谓的“决策树桩”!决策树桩是单层决策树。主要思想是每一步都要找到最好的树桩(也就是得到最好的数据分区),这样可以把整体误差降到最低。你可以把一个树桩想象成一个测试,在这个测试中,我们假设树桩一边的所有数据点都属于类1,另一边的所有数据点都属于类0。

决策难题可能有多种组合。接下来,让我们看看这个简单的例子中有多少树桩组合。

3个数据点待划分

事实上,这个例子中有12种树桩组合!这看起来可能有点令人惊讶,但实际上很容易理解。

12个决策难题

我们可以对上述情况做12个可能的“测试”。每条分割线一侧的数字“2”简单地表示分割线一侧的所有点可能属于0类或1类。因此,每条分割线都嵌入了两个“测试”。

在每次迭代T中,我们都会选择最能划分数据的弱分类器ht,这个分类器可以使整体错误率最小化。回想一下,这里的错误率是错误率的加权校正版本,它考虑了前面介绍的内容。

找到最好的分区

如上所述,通过在每次迭代中识别最佳弱分类器ht(通常是具有1个节点和2个叶子的决策树)来找到最佳分区..假设我们试图预测一个想借钱的人是否是一个好的付款人:

找到最好的部门

在这种情况下,时间t的最佳划分是以“支付历史”为树桩,因为这个划分的加权误差最小。

请注意,事实上,像这样的决策树分类器可能比简单的树桩有更深的结构。这将是一个超级参数。

融合分类器

自然,下一步应该是将这些分类器融合成一个符号分类器。根据数据点位于分割线的哪一侧,将其分为0或1。这个过程可以实现如下:

融合分类器

你有没有找到任何可能的方法来提高分类器的性能?

通过对每个分类器进行加权,我们可以避免给不同的分类器赋予相同的重要性。

adaboost算法

综上

让我们用一小段伪代码来总结一下本文到目前为止所介绍的内容。

伪码

要记住的要点是:

Z 是一个常数,其作用是对权重进行归一化,使得它们加起来等于 1!α_t 是应用于每个分类器的权重

你完了!这个算法叫做AdaBoost。如果你想完全理解所有的boosting方法,那么这是你需要理解的最重要的算法。

计算

Boosting算法训练起来非常快,很棒。但我们考虑了所有树桩的可能性,采用递归方法计算指标。为什么它训练的那么快?

现在,神奇的地方来了!如果我们选择适当的α_t和z,每一步应该改变的权重将简化为以下简单形式:

选择合适的α和z后得到的权重。

这是一个非常有力的结论,与权重应该随迭代而变化的说法并不矛盾。因为误分类的训练样本数减少了,所以它们的总权重还是0.5!

无需计算 Z无需计算 α无需计算指数

另一个小技巧是,任何试图分离两个已经很好分类的数据点的分类器都不是最佳的。我们甚至不需要计算它。

试试用手编程!

现在,本文将引导读者快速浏览一个代码示例,看看如何在Python环境中使用Adaboost来识别手写数字。

进口熊猫aspd

importnumpy asnp

importmatplotlib.pyplot asplt

from sklearn . ensemble importable boostclassifier

fromsklearn . tree IMPORTdecisiontreeClassifier

fromsklearn . metrics importancracy _ score

fromsklearn . model _ selection import cross _ val _ score

fromsklearn . model _ selection import cross _ val _ predict

fromsklearn . model _ selection import train _ test _ split

fromsklearn . model _ selection import learning _ curve

fromsklearn . dataset import load _ digits

首先,加载数据:

dataset = load_digits()

X =数据集[数据]

y =数据集[目标]

x包含长度为64的数组,表示简单的8×8平面图像。使用这个数据集的目的是完成手写数字识别的任务。下图是一个给定手写数字的示例:

如果我们坚持使用深度为1的决策树分类器(决策树),下面是这种情况下如何实现AdaBoost分类器:

reg_ada = AdaBoostClassifier(决策树分类器(max_depth=1))

scores _ ada = cross _ val _ score(reg _ ada,X,y,cv=6)

分数_ada.mean()

这样分类准确率应该在26%左右,大大提高了空。其中一个关键参数是序列决策树分类器的深度。那么,决策树的深度如何改变才能提高分类精度呢?

分数= []

for detth in[1,2,10]:

reg_ada = AdaBoostClassifier(决策树分类器(max_depth=depth))

scores _ ada = cross _ val _ score(reg _ ada,X,y,cv=6)

score.append(scores_ada.mean())

在这个简单的例子中,当决策树的深度为10时,分类器得到的最高分类准确率为95.8%。

标签

研究人员对AdaBoost是否会过拟合进行了深入讨论。最近AdaBoost被证明在某个时间有拟合现象,用户应该意识到这一点。同时,Adaboost也可以作为回归算法使用。

AdaBoost在人脸识别任务中广泛用于评价视频中是否有人脸。这篇文章的作者将在不久的将来就这个话题再写一篇文章!在接下来的文章中,也会介绍梯度增强的方法!

1.《adaboost 实践秘籍:Boosting 与 AdaBoost》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《adaboost 实践秘籍:Boosting 与 AdaBoost》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/caijing/1201229.html

上一篇

杨迪妈妈读哪吒什么梗杨迪妈妈读哪吒为什么上热搜

下一篇

曝杨幂刘恺威分家 具体怎么分?小糯米要怎么办?

尚书是几品 吏部尚书在古代可是位高权重,那它是几品官呢?具体是做什么的

  • 尚书是几品 吏部尚书在古代可是位高权重,那它是几品官呢?具体是做什么的
  • 尚书是几品 吏部尚书在古代可是位高权重,那它是几品官呢?具体是做什么的
  • 尚书是几品 吏部尚书在古代可是位高权重,那它是几品官呢?具体是做什么的
淘大象 店铺权重查询工具有哪些?淘大象排名查询准确吗?

淘大象 店铺权重查询工具有哪些?淘大象排名查询准确吗?

很多淘宝工具,官方工具,商务顾问,直通车,优惠券软件,还有很多第三方工具,阿明工具,洗象等等,淘宝店一直都在用。本文重点介绍如何使用淘象排名查询。虽然这是第三方软件,但是还是有很多功能可以给我们提供参考 淘象的排名查询是否准确?首先要知道,淘宝权重排名算法现在是按千人排名的,每个人看到的宝贝...

权重股有哪些 《股票知识》什么是权重股

权重股有哪些 《股票知识》什么是权重股

1.重量级人物在哪里? 重量级股,你指的是“高级”股吗?当然不是,但是“重量级”的定义确实和“高位高权重”这个词有异曲同工之妙。 什么是重量级?即总股本巨大,上市公司的股份数量占股市股份总数的比例很大。股指是加权平均的,一只股票的总股本越大,它在股指中的权重就越大。 中国银行、工商银行、建设...

权重域名 老域名养网站权重的思路探讨

权重域名 老域名养网站权重的思路探讨

这篇文章的思考价值和意义还是很高的。 大家要知道,如果能买到一个权重不错的老域名,威力是非常强大的。疯狂团队已经和你分析过这个案子很多次了。网上赚论坛有几个网站是各地注册公积金网站的老域名,可以看到备案信息都是事业单位。 这类域名虽然是com域名,但其理论价值基本等于gov域名。 因此,我们...

田维新 营长叛逃,政委亲自上阵指挥,打一枪拔一据点,后成开国少将!

  • 田维新 营长叛逃,政委亲自上阵指挥,打一枪拔一据点,后成开国少将!
  • 田维新 营长叛逃,政委亲自上阵指挥,打一枪拔一据点,后成开国少将!
  • 田维新 营长叛逃,政委亲自上阵指挥,打一枪拔一据点,后成开国少将!

淘宝店铺销量查询 淘宝卖家怎么查权重,如何提高淘宝店铺权重?

  • 淘宝店铺销量查询 淘宝卖家怎么查权重,如何提高淘宝店铺权重?
  • 淘宝店铺销量查询 淘宝卖家怎么查权重,如何提高淘宝店铺权重?
  • 淘宝店铺销量查询 淘宝卖家怎么查权重,如何提高淘宝店铺权重?

哪些野生树桩值钱 大爷一棵太阳花养了15年,枝条长成一个老树桩,据说值个几万块

  • 哪些野生树桩值钱 大爷一棵太阳花养了15年,枝条长成一个老树桩,据说值个几万块
  • 哪些野生树桩值钱 大爷一棵太阳花养了15年,枝条长成一个老树桩,据说值个几万块
  • 哪些野生树桩值钱 大爷一棵太阳花养了15年,枝条长成一个老树桩,据说值个几万块
店铺权重 火焱社 | 拼多多卖家如何提升产品权重和店铺权重?

店铺权重 火焱社 | 拼多多卖家如何提升产品权重和店铺权重?

体重在拼多多平台是一个很重要的东西,无论是店铺体重还是物品体重,都会影响我们获得免费流量。第一,店面重量1、DSRDSR是消费者在过去90天内给出的动态评分,有50多个有效评价时会统计评分;有效评价,即系统过滤掉订货、付款、物流异常的订单评价后的产品评价。DSR将影...