Boosting Bagging Stacking整理

2024-06-14 08:58

本文主要是介绍Boosting Bagging Stacking整理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 知识点


Bias-Variance Tradeoff

bias-variance是分析boosting和bagging的一个重要角度,首先讲解下Bias-Variance Tradeoff.

假设training/test数据集服从相似的分布,即

yi=f(xi)+ϵi, y i = f ( x i ) + ϵ i ,
其中 noise ϵi ϵ i 满足 E(ϵi)=0 E ( ϵ i ) = 0 , Var(ϵi)=σ2 V a r ( ϵ i ) = σ 2 . f(xi) f ( x i ) 为样本真实值, yi y i 为样本实际观测值.
从训练集我们可以得到一个评估函数 f^ f ^ ,对于测试集的每个样本 j j ,对其观测值yj=f(xj)+ϵj的预测为 f^(xj) f ^ ( x j )

考虑测试集上的MSE(mean squared error)

Test MSE=E[(yf^(x))2]=E[(ϵ+f(x)f^(x))2]=E[ϵ2]+E2[f(x)f^(x)]+Var(f(x)f^(x)) T e s t M S E = E [ ( y − f ^ ( x ) ) 2 ] = E [ ( ϵ + f ( x ) − f ^ ( x ) ) 2 ] = E [ ϵ 2 ] + E 2 [ f ( x ) − f ^ ( x ) ] + V a r ( f ( x ) − f ^ ( x ) )

上式中 E[ϵ2] E [ ϵ 2 ] 来源于测试集本身的误差,不可控。 第二项是bias term, 主要来源于欠拟合,即评估函数 f^(x) f ^ ( x ) 不能够充分拟合数据真实值(模型capacity弱)。最后一项是与过拟合紧密联系的,即评估函数 f^(x) f ^ ( x ) 过度拟合了训练集数据(训练集自身非全局的特性被学习器学到),导致泛化能力弱,一但数据集扰动,误差就很大。

reference:
[1]. http://scott.fortmann-roe.com/docs/BiasVariance.html
[2]. http://cs229.stanford.edu/section/error-analysis.pdf


二. 联系与区别

    Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法。

(1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

(2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

(3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

(4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

(5) Bias-Variance角度:
Bagging: 减少variance
Boosting: 减少Bias

reference:
[1]. https://www.cnblogs.com/liuwu265/p/4690486.html
[2]. http://www.cnblogs.com/guolei/archive/2013/05/21/3091301.html


三. 相关面试问题

1. 为什么说bagging是减少variance,而boosting是减少bias?

  • 独立与线性不相关
        假设两个随机变量是 X X Y, 联合概率密度函数是 f(x,y) f ( x , y ) X X 的边缘密度函数是g(x) Y Y 的边缘密度函数是h(y), 他们的期望分别是 E[X] E [ X ] E[Y] E [ Y ] , 方差分别是 Var(X) V a r ( X ) Var(Y) V a r ( Y ) , 协方差是 COV(X,Y)=E[XY]E[X]E[Y] C O V ( X , Y ) = E [ X Y ] − E [ X ] E [ Y ]

        两个随机变量相互独立,等价于联合密度函数等于两个边缘密度的乘积,即 f(x,y)=g(x)h(y) f ( x , y ) = g ( x ) h ( y )

        两个随机变量线性不相关, 等价于协方差或者Pearson的线性相关系数为0,即 COV(X,Y)=0 C O V ( X , Y ) = 0

    独立是线性不相关的充分不必要条件

  • Variance
    给定 N N 个随机变量{X1,X2,...,XN}, 则

    Var(i=1NXi)=i=1Nj=1NCOV(Xi,Xj)=i=1NVar(Xi)+ijCOV(Xi,Xj) V a r ( ∑ i = 1 N X i ) = ∑ i = 1 N ∑ j = 1 N C O V ( X i , X j ) = ∑ i = 1 N V a r ( X i ) + ∑ i ≠ j C O V ( X i , X j )

reference:
[1]. https://en.wikipedia.org/wiki/Variance


TO BE CONTINUED.

这篇关于Boosting Bagging Stacking整理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1059953

相关文章

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Spring Boot 常用注解整理(最全收藏版)

《SpringBoot常用注解整理(最全收藏版)》本文系统整理了常用的Spring/SpringBoot注解,按照功能分类进行介绍,每个注解都会涵盖其含义、提供来源、应用场景以及代码示例,帮助开发... 目录Spring & Spring Boot 常用注解整理一、Spring Boot 核心注解二、Spr

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /