首页 > 其他分享 >集成学习:Bagging & Boosting

集成学习:Bagging & Boosting

时间:2023-04-28 11:56:35浏览次数:28  
标签:Bagging 集成 权重 模型 分类器 Boosting Var

核心思想

将多个弱分类器组装成一个强分类器 。

前置知识

Bias & Variance

定义:

$ bias=\bar{f}(x) -y $,为模型的期望预测与真实值之间的差异。

$ variance=\mathbb{E}_{\mathcal{D} }[(f(x;\mathcal{D})-\bar{f}(x))^2] $,模型在数据集 \(\mathcal{D}\) 上的鲁棒性。

image

Bagging (bootstrap aggregating)

Bootstrap:有放回的抽样方法

算法流程:

  • Bootstrap采样出来 k 份训练集(又放回抽样保证 k 份训练集相互独立)
  • 在 k 个训练集上训 k 个基模型
  • aggregating:
    • 分类任务:投票
    • 回归任务:平均值

优点:

  • 可以并行
  • 主要降低 Variance,对 Bias 无明显作用。适用于 High Variance & Low Bias 的模型
    • 当 k 个模型相互独立:\(Var(\frac{1}{k}\sum_i^k{X_i}) = \frac{1}{k^2}Var(\sum_i^k{X_i}) = \frac{\sigma ^2}{k}\)
      • \(Var(cX)=c^2Var(X)\)
      • $Var(X+Y)=Var(X)+Var(Y) $ ,其中 \(X\), \(Y\) 独立

算法代表

随机森林 = Bagging + 决策树

Boosting

算法流程:

  • 每轮迭代:
    • 针对上轮基模型结果:提高分错样本的权重,降低分对样本的权重
    • 在新样本权重上训本轮基模型
  • 线性组合所有基模型

算法优点:

1、序贯式集成方法(Sequential Ensemble)。每轮迭代生成的基模型,主要提升前一代基模型表现不好的地方。

2、不断迭代弱分类器,从而降低 Bias。适用于 Low Variance & High Bias 的模型

算法代表

AdaBoost

算法:
  • 初始化训练集权重分布值
  • while
    • 在当前权重上训练基模型 \(G_m(X)\)
    • 计算该模型权重 \(a_m\)(模型预测误差越小,权重越大)
    • 更新训练集权重(依据分类效果,分的差的权重高)
  • 加权各基模型,得到最终强分类器 \(f(X)=\sum_m^M{a_mG_m(X)}\)
其他:

正则化/步长 : \(v\), \(v\) 越小,需要迭代更多个基模型。

\(f_m(X)=f_{m-1}+ v a_mG_m(X)\)

通常用步长和最大迭代次数来决定拟合效果

、GBDT、XGBoost等。

提升树:每个基模型拟合上一个模型的残差

Bagging,Boosting二者之间的区别

1)样本选择:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

2)样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3)预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4)并行计算:

Bagging:可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

标签:Bagging,集成,权重,模型,分类器,Boosting,Var
From: https://www.cnblogs.com/shiiiilong/p/17361709.html

相关文章

  • GMaps.js:让你快速集成 Google Maps 服务的 jQuery 插件
    GMaps.js功能除了添加指定经纬度的标准地图之外,GMaps.js还能定义地图放大的级别,添加标注,获取当前用户的地理位置(HTML5geolocation),定义路线,绘制折线,并且实现这些功能只需要简单的几行代码。另外GMaps.js每个动作都有callback函数让你去集成自定义事件。目前GMaps.js没有详......
  • 集成学习
    集成学习思想:集成学习通过构建多个学习器来完成学习任务,即用多个弱学习器组合形成强学习器。集成学习需要关注的问题:弱学习器如何训练得到?答:改变训练数据的权值或者概率分布如何组合弱学习器形成强学习器?答:线性加权或者投票1.Boosting个体学习器之间存在强依赖关系,必须串......
  • UNRAID6.11.1开心版下载及使用说明(集成中文插件)
    众所周知,所谓开心版就是已经解除限制功能,可正常开心使用。申明:此版本用于个人测试研究使用,如用于生产环境请购买官方正版,支持正版。部份资源转载于网络,请自行测试研究,下载测试后自行删除,如因软件版权及功能引起的任何问题自用户自行承担。该版本集成了常用插件,默认简体中文界面,......
  • Azure DevOps(二)Azure Pipeline 集成 SonarQube 维护代码质量和安全性
    一,引言对于今天所分析的SonarQube,首先我们得了解什么是SonarQube?SonarQube又能帮我们做什么?我们是否在项目开发的过程中遇到人为Review代码审核规范?带着以上问题,开始今天的分析内容吧!!!1)什么是SonarQube?SonarQube是一种自动代码审查工具,用于检测代码中的错误......
  • SpringBoot 集成 SpringSecurity + MySQL + JWT 附源码,废话不多直接盘
    SpringBoot集成SpringSecurity+MySQL+JWT无太多理论,直接盘一般用于Web管理系统可以先看SpringBootSpringSecurity基于内存的使用介绍本文介绍如何整合SpringSecurity+MySQL+JWT数据结构数据库脚本:https://gitee.com/VipSoft/VipBoot/blob/develop/vipsoft-sec......
  • ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测|附代码数据
    全文下载链接:http://tecdat.cn/?p=12174最近我们被客户要求撰写关于ARMA-EGARCH的研究报告,包括一些图形和统计输出。本文比较了几个时间序列模型,以预测SP500指数的每日实际波动率。基准是SPX日收益序列的ARMA-EGARCH模型。将其与GARCH模型进行比较 。最后,提出了集合预测算法......
  • 类似idea编译器集成gitee和github
      详细博客:(24条消息)IDEA集成github和Gitee_尘开的笔记的博客-CSDN博客......
  • Xxl-job安装部署以及SpringBoot集成Xxl-job使用
    1、安装Xxl-job:可以使用docker拉取镜像部署和源码编译两种方式,这里选择源码编译安装。代码拉取地址:https://github.com/xuxueli/xxl-job/tree/2.1.2官方开发文档:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA......
  • [XXL-JOB] 项目集成-Framework
    1、导入pom坐标<dependency><groupId>com.hbasesoft.framework</groupId><artifactId>framework-job-core</artifactId></dependency><dependency><groupId>com.hbasesoft.framework</groupId>......
  • 集成Hawk 2.0.1,遇到gson冲突的解决办法
    这个错误提示是因为在两个不同的库中都包含了相同的类(com.google.gson.ExclusionStrategy)。解决方法如下:删掉其中一个库。如果你的项目中只需要其中一个库,那么可以直接删除另一个库,或者将其从依赖中移除。升级库版本。如果两个库都是必需的,那么可以尝试升级其中一个库的版本......