提升树Boosting Tree算法实例详解_程大海的博客-CSDN博客

从提升树Boosting Tree过度到梯度提升Gradient Boosting_程大海的博客-CSDN博客

GBDT梯度提升之回归算法个人理解_程大海的博客-CSDN博客_梯度回归算法

GBDT梯度提升之二分类算法个人理解_程大海的博客-CSDN博客_gbdt二分类

GBDT梯度提升之多分类算法个人理解_程大海的博客-CSDN博客_gbdt可以多分类吗

XGBoost算法个人理解_程大海的博客-CSDN博客_xgboost 叶子节点权重

交叉熵损失与极大似然估计_程大海的博客-CSDN博客_极大似然估计和交叉熵

使用泰勒展开解释梯度下降方法参数更新过程_程大海的博客-CSDN博客

AdaBoost算法实例详解_程大海的博客-CSDN博客_adaboost算法实例


AdaBoost算法其实很精炼,算法流程也好理解,但是看了算法的解释版本之后,什么前向分布算法,什么指数损失函数之后有点迷糊了。抛开这些理论性的推导不谈(其实是因为能力有限),通过例子直观的了解AdaBoost算法的计算过程。


简要叙述一下AdaBoost算法的主要过程:

AdaBoost为每个数据样本分配权重,权重符合概率分布,初始权重符合均匀分布,串行训练M个模型,依据每轮训练的模型的错误率(被误分类样本的权重之和)确定当前模型在最终模型中的权重,以及更新训练样本的权重,误分类样本权重升高,分类正确的样本权重降低。

下图的算法流程来自于《统计学习方法》。


下面通过具体的实例来理解AdaBoost算法的流程,例子来自于《统计学习方法》。

第一轮迭代:

此时得到的组合模型中只有一个 ,此时 的分类结果就是最终模型的分类结果。第一轮迭代中6,7,8(6,7,8指的是x的值,不是指的序号)被误分类。此时得到的组合模型在训练数样本上的预测结果如下:

X

y

分类结果

0

1

0.4236

0.4236

1

正确

1

1

0.4236

0.4236

1

正确

2

1

0.4236

0.4236

1

正确

3

-1

-0.4236

-0.4236

-1

正确

4

-1

-0.4236

-0.4236

-1

正确

5

-1

-0.4236

-0.4236

-1

正确

6

1

-0.4236

-0.4236

-1

错误

7

1

-0.4236

-0.4236

-1

错误

8

1

-0.4236

-0.4236

-1

错误

9

-1

-0.4236

-0.4236

-1

正确

其中sign符号函数如下:

第二轮迭代:

第二轮迭代中3,4,5被误分类,此时得到的最终模型是前两轮模型的线性组合。那么在当前的组合条件下 的分类结果是怎样的?

X

y

分类结果

0

1

0.4236

0.6496

1.0732

1

正确

1

1

0.4236

0.6496

1.0732

1

正确

2

1

0.4236

0.6496

1.0732

1

正确

3

-1

-0.4236

0.6496

0.226

1

错误

4

-1

-0.4236

0.6496

0.226

1

错误

5

-1

-0.4236

0.6496

0.226

1

错误

6

1

-0.4236

0.6496

0.226

1

正确

7

1

-0.4236

0.6496

0.226

1

正确

8

1

-0.4236

0.6496

0.226

1

正确

9

-1

-0.4236

-0.6496

-1.0732

-1

正确

第三轮迭代:

第三轮迭代中0,1,2,9被误分类,此时得到的最终模型是前三轮模型的线性组合。那么在当前的组合条件下 的分类结果是怎样的?

X

y

分类结果

0

1

0.4236

0.6496

-0.7514

0.3218

1

正确

1

1

0.4236

0.6496

-0.7514

0.3218

1

正确

2

1

0.4236

0.6496

-0.7514

0.3218

1

正确

3

-1

-0.4236

0.6496

-0.7514

-0.5254

-1

正确

4

-1

-0.4236

0.6496

-0.7514

-0.5254

-1

正确

5

-1

-0.4236

0.6496

-0.7514

-0.5254

-1

正确

6

1

-0.4236

0.6496

0.7514

0.9774

1

正确

7

1

-0.4236

0.6496

0.7514

0.9774

1

正确

8

1

-0.4236

0.6496

0.7514

0.9774

1

正确

9

-1

-0.4236

-0.6496

0.7514

-0.3218

-1

正确

经过三轮迭代之后,在训练集上的错误率为0。


AdaBoost是如何侧重于误分类的样本的?

经过上面的算法流程介绍,下面我们就来通过一个简图看一下AdaBoost是如何通过调整训练样本的权重来是模型逐步关注分类错误的样本的。

1、初始化权重。首先在第1轮的时候,初始化一个权重分布

AdaBoost算法实例详解相关推荐

  1. html5走格子游戏,JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解 发布时间:2020-09-26 20:42:24 来源:脚本之家 阅读:112 作者:krapnik 本文实例讲述了JS/HTML5游戏常 ...

  2. 冒泡排序算法实例详解

    冒泡排序算法实例详解 1.复杂度与稳定性 算法时间复杂度 最坏情况:O(n^2) 最好情况:O(n) 平均情况:O(n^2) 空间复杂度:S(n)=O(1) 稳定性:稳定排序 2.过程介绍(以顺序为例 ...

  3. LESSON 11.4 原理进阶:AdaBoost算法流程详解

    2 原理进阶:AdaBoost的求解流程 在使用AdaBoost算法时,我们并不需要对AdaBoost的具体求解流程掌握太过于深入.严格来说,只要知道参数的含义,即便我们完全不了解AdaBoost的求 ...

  4. Manacher算法 , 实例 详解 . NYOJ 最长回文

    51 Nod http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089 Manacher 算法 定义数组 p[i]表示以i为 ...

  5. python如何调用文件进行换位加密_python 换位密码算法的实例详解

    python 换位密码算法的实例详解 一前言: 换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而实现加密.例如,字符串"Error should neve ...

  6. java二分查找法_java算法之二分查找法的实例详解

    java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...

  7. JAVA中希尔排序去的讲解_java 中基本算法之希尔排序的实例详解

    java 中基本算法之希尔排序的实例详解 希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shel ...

  8. python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...

  9. python类是实例的工厂_Python设计模式之工厂方法模式实例详解

    本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...

  10. python装饰器函数-Python函数装饰器常见使用方法实例详解

    本文实例讲述了Python函数装饰器常见使用方法.分享给大家供大家参考,具体如下: 一.装饰器 首先,我们要了解到什么是开放封闭式原则? 软件一旦上线后,对修改源代码是封闭的,对功能的扩张是开放的,所 ...

最新文章

  1. asp.net发布网站(转)
  2. 构建DHCP及中继服务器
  3. Pytorch中的optimizer.zero_grad和loss和net.backward和optimizer.step的理解
  4. 阿里排查Java问题工具清单!
  5. http中指定使用worker/prefork
  6. 判断linux进程是否存在
  7. 发短信的简单实现——C#版
  8. Form表单的五个属性
  9. Shiro JSP 标签
  10. 【医疗影像处理】DICOM Rescale Intercept / Rescale Slope
  11. 为什么优酷的《楚乔传》画质更清晰?独家解密窄带高清技术
  12. 记2021上半年软考中级-数据库系统工程师考试
  13. 概率论与统计学——学习资料(更新..........)
  14. Matlab绘制隐式函数形成曲面的方法总结(转载)
  15. mapinfo professional 学习资料
  16. 对硬盘进行分区时,GPT和MBR有什么区别
  17. windows 开机自启动cmd文件
  18. ff14怎么显示服务器时间,《FF14》8月20日维护到几点 最终幻想14服务器迁移维护公告...
  19. [转载] Rooting with a Locked Boot Loader
  20. 笑谈XML,xsd与xsl文件的区别

热门文章

  1. flink Too many fields referenced from an atomic type
  2. 基于SSM高校教室管理系统毕业设计-附源码181523
  3. Exception thrown when sending a message with key=‘null‘
  4. (转)CGJ02、BD09、西安80、北京54、CGCS2000常用坐标系详解
  5. vue + Electron 制作桌面应用
  6. C/C++获取系统IP地址
  7. 戴尔服务器加装固态硬盘吗,戴尔如何加装固态硬盘_戴尔电脑增加固态硬盘教程...
  8. 数据可视化-制作交易收盘价
  9. Wox + Everything = 效率神器(附下载链接)
  10. c语言switch怎么判断字符,c语言switch语句如何使用