无意间开启了xgboost,为了弄清楚它的原理,只能往下挖,随着xgboost->gbdt->boost来到基本的boost算法,同时也遇见了Boost的伙伴Bagging。接下来,稍微看看他们吧。

学习Bagging和Boost首先需要了解两个名词“弱分类器”和“强分类器”。

“弱分类器”的分类能力不强,但它又比随机选的效果稍微好点,类似于“臭皮匠”。

“强分类器”具有很强的分类能力,也就是把特征扔给它,他能分的比较准确,算是“诸葛亮”一类的。

如果直接可以建立一个强分类器,那弱分类器实际上就是多余的,但是,这世上“绝顶聪明的诸葛亮”少之又少,反而,在某方面有才华的人很多。于是,Boost和Bagging都选择了用三个臭皮匠去顶诸葛亮。

实际上,在深度学习大行其道的今天,分类器的分类能力基本都比较好,但通常也会“强强联手”组成一个更强的决策系统。

Boost和Bagging都是构建多个弱学习算法,形成多个弱分类器,得到多种比较粗糙的分类规则,然后将这些弱分类规则组织成强分类规则。

1. 提升算法Boost

boost通常采用改变训练数据的概率分布,针对不同的训练数据分布调用弱学习算法学习一组弱分类器。在多次迭代的过程中,当前次迭代所用的训练数据的概率分布会依据上一次迭代的结果而调整。也就是说训练数据的各样本是有权重的,这个权重本身也会随着迭代而调整。如下图,Dm为训练数据集的概率分布,第一次迭代,基本分类器C1的分类误差用于调整D2,第二次迭代,基本分类器C2用于迭代D3, ...。

不同分布的训练数据进入不同学习法则后,得到的各基本分类器通常经过线性组合,形成强分类器。例如,像Adaboost和xgboost,最后的强分类器都是弱分类器的加性组合。

从上面的结构图可以看出,很明确的可优化点有两点:训练数据集的分布、各基本分类器在线性组合中的权重w_m。对于训练数据集的分布,通常,被上一次分类错误的样本的权重会被调大,被正确分类的会被调小。基本分类器的误差越大,其权重越小,反之越大。

2. Bagging算法

Bagging直译为“增强聚合”。它的方式是训练几个分类器,然后让这几个分类器的输出当做分类投票,选择票数最多的那个输出作为最后的输出。感觉起来,这就是大家常用的投票方式。Dropout也算是一种Bagging学习。

Bagging的特点:

A. 对每个分类器,输入数据都是从原始训练数据中可重复的采样, 每个分类器的输入服从相同的分布,且各输入之间相互独立。而Boost中,各训练数据的分布不独立,每个分类器的输入样本之间也不独立。

B. 各分类器可以采用相同算法,不同的超参数;也可采用不同算法; Boost基本采用相同的算法。

C. 每个分类器的输出没有权重之分,都是平等的。

Boost和Bagging都称为集成方法。

Boost和bagging算法相关推荐

  1. R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

    R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray.F1.偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机) ...

  2. R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型、并评估模型在测试集和训练集上的分类效果(accuray、F1、偏差Deviance):Bagging算法与随机森林对比

    R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型.并评估模型在测试集和训练集上的分类效果(accuray.F1.偏差Deviance):Bagging算法与随机森林对比 ...

  3. 集成学习、Bagging算法、Bagging+Pasting、随机森林、极端随机树集成(Extra-trees)、特征重要度、包外评估

    集成学习.Bagging算法.Bagging+Pasting.随机森林.极端随机树集成(Extra-trees).特征重要度.包外评估 目录

  4. EL之Bagging:利用Bagging算法实现回归预测(实数值评分预测)问题

    EL之Bagging:利用Bagging算法实现回归预测(实数值评分预测)问题 目录 输出结果 设计思路 核心思路 输出结果 设计思路 核心思路 #4.1.当treeDepth=1,对图进行可视化 # ...

  5. EL之Bagging(DTR):利用DIY数据集(预留30%数据+两种树深)训练Bagging算法(DTR)

    EL之Bagging(DTR):利用DIY数据集(预留30%数据+两种树深)训练Bagging算法(DTR) 目录 输出结果 设计思路 核心代码 输出结果 1.treeDepth=1 2.treeDe ...

  6. 快速了解Bagging算法

    快速了解Bagging算法 Boostrap sampling 自助采样 Bagging算法 Bagging性能 Boostrap sampling 自助采样  之前已经讲过模型的评估方法中有留一法( ...

  7. bagging算法_Bagging/Boosting傻傻分不清?来一探究竟吧~

    你是否还在迷惑什么是Bagging?你是否还在纠结Bagging和Boosting的区别到底在哪??你是否还在探索Bagging的具体用法???那就一起来看看吧! Bagging 同一个学习算法在来自 ...

  8. bagging算法_集成学习(Ensemble Learning)——Bagging与Random Forest(1)

    一. 什么是集成学习 集成学习是通过构建并结合多个学习器来完成学习任务的一类算法. 根据个体学习器(基学习器)之间是否存在强依赖关系可将集成学习分为两类: Boosting 个体学习器之间存在强依赖关 ...

  9. 机器学习 - [集成学习]Bagging算法的编程实现

    机器学习 - [集成学习] Bagging算法的编程实现 李俊才 的 CSDN 博客:https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 ...

最新文章

  1. 2012年12月4期手机网页开发
  2. 虚拟化入门:用虚拟机安装RHEL 5(下)
  3. 编程软件python中的if用法-Python高效编程的19个技巧
  4. CTFshow 信息收集 web10
  5. SpringSecurity案例之认证服务搭建
  6. java中treemap释放_在Java中从TreeMap删除键
  7. 我php第一个页面,PHP 第一个 PHP 页面 - 第一个 PHP 页面 - phpStudy
  8. java 夏令时区_如何获得另一个时区的夏令时状态
  9. comet学习(三)cometd心跳机制
  10. 八、Oracle学习笔记:日期函数
  11. 全链路压测之全链自动化
  12. aliez歌词_请问aLiez完整版中文 +罗马音歌词
  13. EPLAN入门学习笔记(一)——项目创建与基本使用方法
  14. 【每日一题】一起冲击蓝桥杯吧——Day1【蓝桥真题】
  15. 高兴就好,简单就好,明白就好
  16. implicit super constructor animal() is undefined for default constructor. Must define an explicit 异常
  17. java中jmod是什么,modulo - j中mod的语法是什么
  18. 眼睛血管分割matlab版本
  19. React基础(伍)———【案例】todoList
  20. 在线ASCII转换工具

热门文章

  1. 中兴新支点国产操作系统安装使用QQ的体验,很好用
  2. 世界杯,刹那的12年
  3. 人为什么会参与活动?
  4. 头条竞价php下单系统源码_PHP在线订单系统V8.0竞价单页网站源码 短信提醒+网银支付+支付宝...
  5. 字根科技-政府网站错别字检测的新选择
  6. 职称计算机考试准考证打印不了
  7. 企业微信开发总结-获取通讯录
  8. 读Chris Crawford 有感.
  9. 九、Kafka 消费位点
  10. 在Ubuntu使用802.11ac USB 无线wifi接收器