最近在做集成学习的时候,对Adaboost非常感兴趣,就自己复现了这个程序。

首先提升方法是基于这样的一个思想:对于一个复杂的任务来说,通将多个专家的判断进行适当的综合所得到的判断,这样得到的结果会比单个专家的判断要好。

Adaboost做法的核心问题,是通过提高前一轮分类器分类错误的样本的权值,降低分类分类正确的样本权值,对于那些没有本分类正确的样本会得到后面分类器更多的关注。然后可以产生很多的弱分类器,通过多数加权投票组合这些弱分类器,加大误差率小的分类器,减少误差率大的分类器,使其在表决中起到较少的作用。

Adaboost算法流程:

假设给定一个二分类的训练数据集

在这里x 代表输入的样例,y代表样例所属的类别空间。

在这里,Adaboost输入的是带标签的样例空间,输出的是最终的学习器。

(1) 初始化训练数据的权值分布。

(2)对于M(代表分类器的个数)个分类器,分别使用带权值分布的数据进行训练,在这里很多人在编程序的时候忘记把输入带权值的数据,而是一直用的是原始数据作为一个输入。那么第一次训练之后得到一个基分类器Gm(x)

(a) 计算在Gm(x)上的分类错误率(这里注意分类错误率指的是被分类器分类错误的样本前面权值相加的和,不是分类错误样本比总样本,这里格外需要注意)

(b)计算得到Gm(x)的系数可以得到

(c)更新训练数据的权值分布

(3)构建基分类器的线性组合。

最终的分类器是

以上分析了Adaboost的大致流程,讲了几个在编程中需要注意的点,有遇到其他问题的欢迎评论区讨论留言。

Adaboost算法——详细讲解相关推荐

  1. Adaboost算法详细讲解

    转自线上数据建模 Adaboost算法详细讲解 Adaboost(Adaptive Boosting): Adaboost是Boosting模型,和bagging模型(随机森林)不同的是:Adaboo ...

  2. dijkstra标号法表格_Dijkstra算法详细讲解

    最短路径之 Dijkstra 算法详细讲解 1 最短路径算法 在日常生活中,我们如果需要常常往返 A 地区和 B 地区之间,我们最希望 知道的可能是从 A 地区到 B 地区间的众多路径中,那一条路径的 ...

  3. lamport面包店算法详细讲解及代码实现

    lamport面包店算法详细讲解及代码实现 1 算法详解 1.1 一个较为直观的解释 1.2 Lamport算法的时间戳原理 1.3 Lamport算法的5个原则 1.4 一个小栗子 2 算法实现 3 ...

  4. 模拟退火算法详细讲解(含实例python代码)

    模拟退火算法详细讲解(含实例python代码) (一)模拟退火算法简介 (二)模拟退火算法原理 (三)退火过程中参数控制 (四)算法步骤 (五)实例分析 最近老师要求做模拟退火算法实验,看了很多博客之 ...

  5. C语言老鼠走迷宫(单路径)算法详细讲解

    最近在学习C语言的一些经典算法,其中遇到了一点困难,导致卡进度了.琢磨了很久,在绘制流程图时,突然灵感大开理解了,老鼠走迷宫算法的奇妙.所以写了这个,一来是方便以后右和我类似的同学自学时,遇到这个问题 ...

  6. Dijkstra算法 详细讲解

    Dijkstra算法 详细解释 Dijkstra算法适用于边权值为正的情况,如果边权值为负数就才用另一种最短路算法Bellman-Ford算法. 该算法是指从单个源点到各个结点的最短路,该算法适用于有 ...

  7. 排序算法详细讲解(超酷)

    目录 前言 一.插入类排序 1.直接插入排序 2.折半插入排序 3.希尔排序 二.交换类排序 1.冒泡排序(相邻比序法) 2.快速排序 三.选择类排序 1.简单选择排序 2.树形选择排序 3.堆排序 ...

  8. AdaBoost算法详细介绍

    一.Boosting算法 Boosting集成分类器包含多个非常简单的成员分类器,这些成员分类器的性能仅好于随机猜想,常被称为弱学习机.典型的弱学习机的例子就是单层决策树.Boosting算法主要针对 ...

  9. AdaBoost算法通俗讲解

    AdaBoost是元算法中最流行的一种,也被认为是最好的监督学习的方法 . 一.元算法 元算法(meta-algorithm),也被称作集成方法(ensemble method),是对其他算法进行组合 ...

最新文章

  1. 关于js复制文本信息(按钮级别)
  2. codefore 213 C Relay Race (朴素DP)
  3. LeetCode 1151. 最少交换次数来组合所有的 1(滑动窗口)
  4. 【Spark调优】内存模型与参数调优
  5. Deploy sahara on openstack-icehouse
  6. numpy.linalg.eig() 计算方形矩阵的特征值和特征向量
  7. gstreamer正确的结束办法
  8. 天天红单app下载安装_天天红单官网下载
  9. 科技爱好者周刊(第 167 期):广告拦截器太过分了
  10. html5文本设置字体大小,HTML5 Canvas的文本设置字体和大小
  11. Java OutputStream.write()的功能简介说明
  12. 面向对象:想和你一起看夕阳,还有好多想去的地方,希望能与你同行
  13. Spine动画动态切换模型显示
  14. 原码、反码与补码及其意义
  15. 普通青年VS文艺青年VS2B青年,爆笑语录!
  16. python图书推荐系统的设计_图书推荐系统毕业设计
  17. OJ 报数游戏(多种方法)
  18. Spring深入学习笔记
  19. 北京Linux运维培训怎么选?
  20. 华为OD机试题,用 Java 解【新员工座位安排系统】问题 | 含解题说明

热门文章

  1. TensorFlow入门教程(30)车牌识别之整合EAST+DenseNet进行车牌识别(六)
  2. use case简介
  3. java模拟三人爬山_java笔记——模拟多人徒步爬山例子
  4. 360浏览器模拟百度搜索引擎蜘蛛访问
  5. 易语言取文件名和文件扩展名
  6. 简单辨析关系和区别:YUV、H.264、RTP、UDP、RTSP
  7. Maven –如何跳过单元测试
  8. php 打开ppt,怎么播放ppt
  9. MOS管RC缓冲电路相关参数计算方法
  10. adaboost训练 之 弱分类器训练原理