机器学习的AdaBoost算法

什么是AdaBoost?

首先,AdaBoost是Adaptive Boosting的缩写。基本上,Ada Boosting是第一个为二进制分类开发的真正成功的增强算法。此外,它是理解助推的最佳起点。此外,现代助推方法建立在AdaBoost上,最显著的是随机梯度增强机

通常,AdaBoost用于短决策树。此外,创建第一个树,使用每个训练实例上树的性能。另外,我们用它来衡量下一棵树的注意力。因此,它创建时应注意每个训练实例。因此,难以预测的训练数据被赋予更多权重。虽然容易预测的情况下给予较少的重量。

学习:AdaBoost模型

从数据中学习AdaBoost模型

  • Ada Boosting最适合用于提升决策树的性能,这是基于二进制分类问题。
  • AdaBoost最初被作者称为AdaBoost.M1。最近,它可以被称为离散Ada Boost。因为它用于分类而不是回归。
  • AdaBoost可用于提高任何机器学习算法的性能。它最适合弱学习者使用。

训练数据集中的每个实例都是加权的。初始权重设置为权重(xi)= 1 / n其中xi是第i个训练实例,n是训练实例的数量。

如何训练一个模型

使用加权样本在训练数据上准备弱分类器。仅支持二进制分类问题。因此,每个决策树桩对一个输入变量做出一个决定。并输出第一或第二类值的+1.0或-1.0值。针对训练的模型计算错误分类率。传统上,这被计算为error =(correct-N)/ N,其中error是错误分类率。虽然正确是模型预测的训练实例的数量。N是训练实例的总数。

例1

如果模型预测了100个训练实例中的78个错误。这被修改为使用训练实例的权重:error = sum(w(i)* terror(i))/ sum(w)这是错误分类率的加权和。其中w是训练实例的权重我恐怖是训练实例i的预测误差。此外,如果错误分类,则为1,如果分类正确,则为0。

例2

如果我们有3个训练实例,权重为0.01,0.5和0.2。预测值为-1,-1和-1,实例中的实际输出变量为-1,1和-1,则误差为0,1和0。误分类率计算如下: error =(0.01 * 0 + 0.5 * 1 + 0.2 * 0)/(0.01 + 0.5 + 0.2)或error = 0.704计算训练模型的阶段值。因为它为模型所做的任何预测提供了权重。训练模型的阶段值计算如下:stage = ln((1-error)/ error)其中stage是用于对模型进行加权预测的阶段值。此外,ln()是自然对数,error是模型的错误分类错误。stage weight的影响是更准确的模型具有更多的重量。更新训练权重,为预测实例提供更多权重。预测实例的重量较轻。

例3

使用以下公式更新一个训练实例(w)的权重:w = w * exp(stage*terror)。其中w是特定训练实例的权重,exp()是数字常数e或欧拉数提升到幂,stage是弱分类器的误分类率,恐怖是弱分类器预测输出的误差,并评估为:terror = 0 if(y == p),否则为1,其中y是训练实例的输出变量, p是来自弱学习者的预测。如果训练实例被分类,这具有不改变重量的效果。因此,如果弱学习者错误地将实例分类,则使权重稍大。

AdaBoost Ensemble

  • 基本上,依次添加弱模型,使用加权训练数据进行训练。
  • 通常,该过程一直持续到创建了预先设定数量的弱学习者为止。
  • 完成后,您将留下一群弱势学习者,每个学习者都有一个stage值。

使用AdaBoost进行预测

通过计算弱分类器的加权平均值来进行预测。对于新的输入实例,每个弱学习器将预测值计算为+1.0或-1.0。预测值由每个弱学习者阶段值加权。集合模型的预测被视为加权预测的总和。如果总和为正,则预测第一类,如果为负,则预测第二类。

例如: 5个弱分类器可以预测值1.0,1.0,-1.0,1.0,-1.0。从大多数投票看,模型看起来预测值为1.0或第一类。这些相同的5个弱分类器可以分别具有阶段值0.2,0.5,0.8,0.2和0.9。计算这些预测的加权和导致输出为-0.8。这将是-1.0或第二类的集合预测。

AdaBoost的数据准备

本节列出了为AdaBoost准备最佳数据的一些启发式方法。

质量数据:由于集合方法试图纠正训练数据中的错误分类。此外,您需要注意培训数据是高质量的。

异常值:一般来说,异常值会迫使整个团队陷入工作的低谷。虽然很难纠正不切实际的案件。但可以从训练数据集中删除异常值。

噪声数据:基本上,噪声数据,输出变量中的特定噪声可能会有问题。但如果可能,请尝试从训练数据集中隔离和清除这些内容。

结论

我们已经研究了Boosting算法并且已经了解了Ada boost示例。我们还了解了Adaboosting应用程序。我希望这篇文章能帮助你理解Boosting的概念 - Ada boost。此外,如果您有任何疑问,请随时在评论部分询问。

原文标题《AdaBoost Algorithm For Machine Learning》

作者:Rinu Gour

译者:February

不代表云加社区观点,更多详情请查看原文链接

原文链接:https://dzone.com/articles/adaboost-algorithm-for-machine-learning

原文作者:Rinu Gour

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

专栏 | 后RCNN时代的物体检测及实例分割进展

6098
来自专栏奇点大数据

神经网络:问题与解决方案

尽管人工神经网络的概念从20世纪50年代就已经存在,但是直到最近我们才有能力将理论转化为实践。神经网络应该能够模仿任何连续的功能。但是,很多时候,我们都陷入了网...

3276
来自专栏技术小站

吴恩达深度学习笔记 course3 week2 机器学习 策略(2)

例:当我们在训练一个模型的时候,我们的准确率是90%,bayes optimized bias是0%,这个时候错误率达到了10%,那么我们如何分析是哪错了,并且...

1392
来自专栏新智元

Adobe 写实深度摄影风格迁移,局部仿射解决画面扭曲

【新智元导读】康奈尔大学和 Adobe 团队的这项图像风格迁移研究,解决了神经网络风格迁移中由于参考图像风格夸张而产生的的输出图像“扭曲”的问题,在各种场景下得...

3235
来自专栏喔家ArchiSelf

全栈必备 贝叶斯方法

对一个全栈老码农而言,经常在开发或者研发管理的时候遇到各种预测、决策、推断、分类、检测、排序等诸多问题。面对“你的代码还有bug么?”这样的挑战,一种理智的回答...

1123
来自专栏新智元

【干货】计算机视觉视频理解领域的经典方法和最新成果

1.4K2
来自专栏CreateAMind

论文解读:生成模型采样-类比学习应用 多图

1061
来自专栏机器之心

从自编码器到生成对抗网络:一文纵览无监督学习研究现状

选自Medium 机器之心编译 参与:Nurhachu、蒋思源、吴攀 无监督学习是深度学习的圣杯。它的目的是希望能够用极少量且不需要标注的数据训练通用系统。本文...

4019
来自专栏机器学习和数学

[编程经验] TensorFlow实现非线性支持向量机

上一次说的是线性支持向量机的原理和tf实现问题,把SVM的原理简单用公式推导了一下,SVM这块还有几个问题没有解释,比如经验风险,结构风险,VC维,松弛变量等。...

5047
来自专栏AI研习社

这5种计算机视觉技术,刷新你的世界观

计算机视觉是目前深度学习领域最热门的研究领域之一。它位于许多学术科目的交汇点,如计算机科学(图形学,算法,理论,系统,建筑),数学(信息检索,机器学习),工程学...

903

扫码关注云+社区

领取腾讯云代金券