机器学习之提升方法Adaboost算法
文章目录
- 1.背景
- 2.基本原理
- 3.Adaboost算法
- 4.周志华老师Boosting25周年
- 5.Adaboost算法优缺点
- 6.Q&A
1.背景
集成学习(ensemble learning)通过构建并结合多个学习器来提升性能
集成学习分为两大类:
个体分类器存在强依赖方法(Boosting)
个体学习器之间不存在强依赖关系(Bagging,随机森林)
提升方法的思路:
对于一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比任何一个专家单独的判断好。实际上,就是“三个臭皮匠顶个诸葛亮”的道理。
对于提升方法来说,有两个问题:
- 在每一轮如何改变训练数据的权值与概率分布
- 如何将若分类器组合成一个强分类器
Boosting类算法核心理念
将多个弱分类器进行合理的结合,使其成为一个强分类器,可以理解成“前人栽树,后人乘凉”。前辈创造条件,后备在前辈的基础上进行改进。即我们先训练一个弱学习器,再对这个模型进行评估,对这个模型中做对的问题,我们减小对它的注意力;做错的问题那就增大注意力,专注于克服前面模型不能解决的困难点。最后,当我们把所有的模型整合成一个大的框架的时候,里面既有处理简单问题的模型也有处理困难问题的模型,使大框架的整体模型性能有所提高。
Boosting族最著名的代表算法是Adaboost,它的做法是:
- 提高那些被前一轮若分类器错误分类样本数据的权值,降低正确分类样本的权值
- 采取加权多数表决的方法,加大分类误差率小的若分类器的权值,减小分类误差率大的弱分类器的权值。
2.基本原理
强可学习:识别准确率很高并能在多项式时间内完成的学习算法
弱可学习:识别错误率小于1/2(即准确率仅比随机猜测略高的学习算法)
Step1:训练每个弱分类器,计算样本困难度。
(1)初始化样本权重为1/N
(2)利用当前弱分类器的训练结果,更新所有样本的权重。正确分类的样本就降低权重,错误分类的样本就增大权重。
(3)基于当前样本权重,训练下一个弱分类器。对于这个弱分类器,我们已经提高了困难样本的权重,此时会有部分困难样本分类正确,采用和2相同的策略进行训练,依次迭代,直到到达所包含模型数量的最大值。
Step2:学习每个弱分类器的权重
需要对每个弱分类器的性能进行评估,学习到每个弱分类器权值。
利用所得到的的权值,将所有输出整合到一起。
(详细的推导过程可看第三部分)
Adaboost采用迭代的思想,每次迭代只训练一个弱分类器,训练好的弱分类器将参与下一次迭代的使用。也就是说,在第N次迭代中,一共就有N个弱分类器,其中N-1个是以前训练好的,其各种参数都不再改变,本次训练第N个分类器。其中弱分类器的关系是第N个弱分类器更可能分对前N-1个弱分类器没分对的数据,最终分类输出要看这N个分类器的综合效果。
两个权重:样本权重和弱分类器权重。
样本的权重有两个含义:第一个就是数据的重要性,第二个就是数据被选择的可能性更大。初始权重设为1/N,训练出弱学习器1,此时根据弱学习器1的学习误差率来更新样本权重,弱学习器1中误差高的样本权重变大。然后根据更新后的样本权值训练弱学习器2,依次进行迭代。
分类器权重:
分类器的权重是由最小误差计算得出分类器的权重越大说明在最后的决策时越重要。即,弱分类器错误率越低,权重就越高。
3.Adaboost算法
(李航老师《统计学习方法》)
输入:
训练数据集
机器学习之提升方法Adaboost算法相关推荐
- 提升方法-Adaboost算法
总第85篇 01|基本概念: 提升方法的基本思想:对于任何一个复杂任务来说,将多个专家的判断进行适当的综合所得出的判断,要比任何一个专家单独的判断好. 先来看两个概念:强可学习和弱可学习. 在概率近似 ...
- 统计学习方法--提升方法adaBoost算法(集成学习)
1.主要内容 介绍集成学习,然后讲述boosting和bagging的区别与联系,同时对adaBoost进行推导然后进行gbdt的推导,最后比较随机森林和gdbt的区别和联系. 2.集成学习 集成学习 ...
- 机器学习(四)——Adaboost算法
一,Boosting算法概论 boosting是一族可将弱学习器提升为强学习器的算法.booting中所使用的多个分类器的类型都是一致的,并且不同分类器是通过串行训练而获得的,每个新分类器都根据已训练 ...
- 08_提升方法Boosting2_统计学习方法
文章目录 三.GBDT算法 1.提升树算法 (1)算法三要素 (2)GBDT与AdaBoost区别 2.平方损失的提升树 3.梯度提升树(Gradient Boosting Decison Tree, ...
- 08_提升方法Boosting1_统计学习方法
文章目录 一.Boosting和集成学习介绍 二.AdaBoost 1.AdaBoost算法 (1)AdaBoost算法的三要素 (2)AdaBoost模型定义 (3)AdaBoost损失函数定义 ( ...
- 提升方法(Boosting)
文章目录 1. 提升方法AdaBoost算法 2. AdaBoost算法训练误差分析 3. AdaBoost算法的解释 4. 提升树 5. sklearn 实例 提升(boosting)方法是一种常用 ...
- 机器学习之【提升方法】
机器学习[提升方法] 一.Adaboost的起源 1.强可学习与弱可学习 二.怎样实现弱学习转为强学习 1.怎样获得不同的弱分类器? Bagging Bagging的弊端 2.怎样组合弱分类器? 三. ...
- 《李航 统计学习方法》学习笔记——第八章提升方法
提升方法 8.1提升方法AdaBoost 8.1.1提升方法的基本思路 8.1.2AdaBoost算法 8.1.3AdaBoost的例子(代码实现) 8.2AdaBoost算法的训练误差分析 定理8. ...
- AdaBoost算法理解
AdaBoost的前身和今世 强可学习和弱可学习 在概率近似正确(PAC)学习框架中, 一个类如果存在: 一个多项式复杂度的学习算法,正确率略大于随机猜测(例如二分类问题中大于1/2),称弱可学习的 ...
最新文章
- Oracle 内存一 手动内存管理,自动内存管理
- 【百度地图API1.1】修改文本标注的样式
- php密码怎么用md5,如何使用PHP使用MD5加密此密码?
- position:sticky布局
- 关于iPhone 11系列、A13芯片 知乎网友是这么说的
- 在Oracle中写出性能优良的SQL语句
- jemalloc内存分配器简介
- UWP 自然灾害App在刷新数据后卡死的解决方案
- 开张第一天,一年之际在于春
- [转]C#中的多线程进度条使用
- java获取数据库列的别名_java – JDBC ResultSet获取具有表别名的列
- 商户监控中一个基础的反洗钱规则不要漏了
- centos lnmp一键安装
- smb协议讲解_SMB协议原理抓包分析
- coalesce函数详解--判空三目表达式
- looking for domain authoritative name server and domain name location
- java基础简答题1
- 信号完整性问题的11个基本原则(伯格丁原则)
- MAX7456 OSD
- JavaC++题解与拓展——leetcode310.最小高度树【复习链式前向星】