IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【学习笔记】集成学习(五):Bagging -> 正文阅读

[人工智能]【学习笔记】集成学习(五):Bagging

Datawhale组队学习第27期:集成学习
本次学习的指导老师萌弟教学视频
本贴为学习记录帖,有任何问题欢迎随时交流~
部分内容可能还不完整,后期随着知识积累逐步完善。
开始时间:2021年7月22日
最新更新:2021年7月22日(Task5 Bagging)

一、Bootstrap抽样

1. 简单描述

  • 有放回采样(自助采样),如:对给定样本,抽n个样本集合,重复抽m次,可以得到m个参数估计,可以估计总体的方差。

2. 含义

  • 设总体 A A A服从未知分布 F F F,样本 X = { x 1 , x 2 , . . . x n } X=\{x_1, x_2,...x_n\} X={x1?,x2?,...xn?} A A A的一个样本,而样本 X X X服从的抽样分布 F ^ \hat F F^ F F F的估计。其中, ? \phi ?是分布 F F F的一个数字特征, ψ \psi ψ是统计量 ? ^ \hat \phi ?^?的抽样分布的数字特征。

  • 目标是用统计量 ? ^ = g ( X ) \hat \phi=g(X) ?^?=g(X)去估计 ? \phi ?。采用随机模拟的方法估计 ψ \psi ψ,从而得到统计量的数字特征(如用 ψ = V a r ( X ˉ ) \psi=\sqrt{Var(\bar X)} ψ=Var(Xˉ) ?去计算统计量 X ˉ \bar X Xˉ的标准误),这种方法就称为bootstrap方法

3. 步骤

  • F ^ \hat F F^有放回随机地抽取 B B B个样本量为 n n n的独立样本 Y ( b ) Y^{(b)} Y(b) Y ( b ) Y^{(b)} Y(b)称为bootstrap样本,其中 b = 1 , . . . , B b=1,...,B b=1,...,B

  • 每个独立样本 Y ( b ) Y^{(b)} Y(b)用常规的估计方法计算 ? ^ ( b ) \hat \phi^{(b)} ?^?(b)去估计得到总体分布 F F F的数字特征 ? \phi ?,可以得到 B B B个统计量的数字特征。

  • ? ^ = { ? ^ ( 1 ) , . . . , ? ^ ( B ) } \hat \phi = \{\hat \phi^{(1)}, ...,\hat \phi^{(B)}\} ?^?={?^?(1),...,?^?(B)}的每个 ? ^ ( b ) \hat \phi^{(b)} ?^?(b)都是 F ^ \hat F F^下的独立同分布样本,同样可以用常规的估计方法计算 ψ ^ \hat \psi ψ^?去估计 F ^ \hat F F^的分布特征 ψ \psi ψ

  • 更深入的可以查阅李东风老师的《统计计算》

二、Bagging的思想

1. Bootstrap的体现

??以服从均匀分布的概率从数据集中重复且有放回地抽取新的样本,对每个样本进行训练得到模型(子模型),得到多个子模型的预测值。

2. Aggregating的体现

  • 整体模型一般采用的是线性组合。

  • 对于分类问题来说,通常采用投票法,可以划分成硬投票和软投票两种方式。

    • 硬投票,直接计算预测值出现最多的类
    • 软投票,计算所有投票结果中概率加权最大的类。
    • 软投票一般比硬投票要好,但要看具体的使用场景。软投票必须是基于概率的模型,能够产生预测值。对于关联规则模型、层次聚类模型等不能使用软投票。
  • 对于回归问题来说,通常是直接计算所有子模型预测值的平均值

3. sklearn中的实现

  • 调用库:sklearn.ensemble.BaggingClassifiersklearn.ensemble.BaggingRegressor
  • 随机森林:sklearn.ensemble.RandomForestClassifiersklearn.ensemble.RandomForestRegressor

三、Bagging的精度分析

1. 推导

  • 推导主要参考本篇文章

  • 设定基模型为 f f f,通过给定样本 X X X进行bootstrap抽样,训练出m个基模型。

  • 最终模型是m个基模型的线性组合,记为 F = ∑ i = 1 m r i f i F = \sum\limits_{i=1}^{m}r_if_i F=i=1m?ri?fi?,其中 r i r_i ri?为第 i i i个模型的权重系数

  • f f f训练的样本来自总体 X X X,可以记 E ( f i ) = μ E(f_i)=\mu E(fi?)=μ V a r ( f i ) = σ 2 Var(f_i) = \sigma^2 Var(fi?)=σ2
    E ( F ) = E ( ∑ i = 1 m r i f i ) = ∑ i = 1 m r i E ( f i ) V a r ( F ) = V a r ( ∑ i = 1 m r i f i ) = ∑ i = 1 m V a r ( r i f i ) + ∑ i ≠ j m c o v ( r i f i , r j f j ) = ∑ i = 1 m r i 2 V a r ( f i ) + ∑ i ≠ j m ρ i j r i r j V a r ( f i ) V a r ( f j ) \begin{aligned} E(F) &= E(\sum\limits_{i=1}^{m}r_if_i) \\ &= \sum\limits_{i=1}^{m}r_iE(f_i) \\ Var(F) &= Var(\sum\limits_{i=1}^{m}r_if_i) \\ &= \sum\limits_{i=1}^{m}Var(r_if_i) + \sum\limits_{i \ne j}^{m}cov(r_if_i, r_jf_j) \\ &= \sum\limits_{i=1}^{m}r_i^2Var(f_i) + \sum\limits_{i \ne j}^{m}\rho_{ij}r_ir_j\sqrt{Var(f_i)}\sqrt{Var(f_j)} \\ \end{aligned} E(F)Var(F)?=E(i=1m?ri?fi?)=i=1m?ri?E(fi?)=Var(i=1m?ri?fi?)=i=1m?Var(ri?fi?)+i?=jm?cov(ri?fi?,rj?fj?)=i=1m?ri2?Var(fi?)+i?=jm?ρij?ri?rj?Var(fi?) ?Var(fj?) ??

  • 从bootstrap抽样的步骤可以知道, F F F的数字特征可以反应原始数据的数字特征,同时每个 f i f_i fi?所接受的样本都是独立的,因此可以得到:
    E ( F ) = μ ∑ i = 1 m r i V a r ( F ) = σ 2 ∑ i = 1 m r i 2 \begin{aligned} E(F) &= \mu \sum\limits_{i=1}^{m}r_i \\ Var(F) &= \sigma^2\sum\limits_{i=1}^{m}r_i^2 \end{aligned} E(F)Var(F)?=μi=1m?ri?=σ2i=1m?ri2??

2. 基于偏差与方差理论分析

  • 根据偏差与方差理论可以知道,测试误差主要由方差 V a r Var Var和偏差的平方 B i a s 2 Bias^2 Bias2决定的, V a r ( ? ) Var(\epsilon) Var(?)是与任务本身有关,不纳入其中考虑。在本模型中, E ( F ) E(F) E(F)反映 B i a s Bias Bias,而 V a r ( F ) Var(F) Var(F)反映 V a r Var Var
    [ E ( F ) E ( f ) ] 2 = ( ∑ i = 1 m r i ) 2 V a r ( F ) V a r ( f ) = ∑ i = 1 m r i 2 [ E ( F ) ? E ( f ) ] 2 = ( 1 ? ∑ i = 1 m r i ) 2 μ 2 V a r ( F ) ? V a r ( f ) = ( 1 ? ∑ i = 1 m r i 2 ) σ 2 \begin{aligned} {[\frac{E(F)}{E(f)}]}^2 &= (\sum\limits_{i=1}^{m}r_i)^2 \\ \frac{Var(F)}{Var(f)} &= \sum\limits_{i=1}^{m}r_i^2 \\ {[E(F)-E(f)]}^2 &= (1 - \sum\limits_{i=1}^{m}r_i)^2\mu^2 \\ Var(F)-Var(f) &= (1 - \sum\limits_{i=1}^{m}r_i^2)\sigma^2 \\ \end{aligned} [E(f)E(F)?]2Var(f)Var(F)?[E(F)?E(f)]2Var(F)?Var(f)?=(i=1m?ri?)2=i=1m?ri2?=(1?i=1m?ri?)2μ2=(1?i=1m?ri2?)σ2?

  • 相对于基模型而言,Bagging模型能够降低模型的方差,同时也有可能增大模型的偏差。而实际上,Bagging模型中的权重系数之和 ∑ i = 1 m r i ≈ 1 \sum\limits_{i=1}^{m}r_i \approx 1 i=1m?ri?1,Bagging模型的 B i a s Bias Bias会十分接近于基模型的 B i a s Bias Bias,因此模型 V a r Var Var减少的量会大于 B i a s Bias Bias增大的量,从而达到减少测试误差(即牺牲偏差来减小测试误差)。

3. 样例

  • 假设Bagging模型将每个基模型的权重系数 r i r_i ri?都设为 1 m \frac{1}{m} m1?,则有:
    E ( F ) = μ ∑ i = 1 m 1 m = μ V a r ( F ) = σ 2 ∑ i = 1 m 1 m 2 = 1 m σ 2 \begin{aligned} E(F) &= \mu \sum\limits_{i=1}^{m}\frac{1}{m} \\ &= \mu \\ Var(F) &= \sigma^2\sum\limits_{i=1}^{m}\frac{1}{m^2} \\ &= \frac{1}{m}\sigma^2 \end{aligned} E(F)Var(F)?=μi=1m?m1?=μ=σ2i=1m?m21?=m1?σ2?
  • 显然,此时Bagging模型的 B i a s Bias Bias取决于基模型的 B i a s Bias Bias,而Bagging模型的 V a r Var Var要远小于基模型的 V a r Var Var,因此Bagging具有更高的泛化能力。

4. 基模型的选择

  • 从上述推导中可以发现,Bagging模型对 B i a s Bias Bias改变不明显,这意味在这方面Bagging十分依赖基模型,因此Bagging对基模型选择的是强模型(低 B i a s Bias Bias V a r Var Var模型),通过对基模型的线性组合来降低 V a r Var Var来提高模型的精度。

四、参考资料

  1. https://github.com/datawhalechina/ensemble-learning
  2. https://www.bilibili.com/video/BV1Mb4y1o7ck?t=470
  3. https://www.bilibili.com/video/BV1X64y1m71o?t=2972
  4. https://zhuanlan.zhihu.com/p/86263786
  5. https://www.math.pku.edu.cn/teachers/lidf/docs/statcomp/html/_statcompbook/sim-bootstrap.html
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-23 10:47:03  更:2021-07-23 10:47:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 10:58:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码