认识

Bagging 的全称为 (BootStrap Aggregation), 嗯, 咋翻译比较直观一点呢, 就有放回抽样 模型训练? 算了, 就这样吧, 它的Paper是这样的:

Algorithm Bagging:

  1. Let n be the number of bootstrap samples

这步非常关键: 对训练样本进行 有放回抽样, 这样就可达到,将原来只有一个数据集,现在有n个数据集了.

  1. for i = 1 to n do:

​ 3. Draw bootstrip sample of size \(m, D_i\)

\(D_i\) 表示第 i 个采样的数据集

  1. Train base classifier \(h_i\) on \(D_i\)

与之前的 voting 不同在于, 这里 hi 算法没有变, 只是数据变了

  1. \(\hat y = mode(h_1(X), h_2(X)..)\)

mode 是众数的意思, 民主投票, 来确定最终结果

BootStrap 有放回采样

假设数据是均匀分布的, 然后我们有采样了一个样本 X, 假设有 n 条数据, 则每条数据, 被抽中的概率是均等的, 都是:

$P(x_i) = \frac {1}{n} $

没有被抽中的概率是:

\(1-P(x_i) = 1-\frac {1}{n}\)

现在进行有放回抽样, 该条数据在 n次都没有被抽中的概率为:

\(P = (1- \frac {1}{n})^n\)

当 n -> 无穷 时:

\(=\frac {1}{e} = 0.3682...\)

洛必达法则求极限

\(lim_{x \rightarrow 0} e^{ln(1-\frac{1}{n})^n} = e^{lim_{x \rightarrow 0} e^{ln(1\frac{n-1}{n})^n}} = e^1 = e\)

Bias-Variance 分解

也就是误差分解. 当然这里引入也是为了, 说明, 为啥这种 bootstrap 比较能充分利用样本数据做训练

\(Loss = Bias + Variance + Noise\)

怎么理解这个误差(真实值 和预测值)呢, 其实就从上面的式子, 从误差产生的原来做一个分析:

  • Bias : 模型自身的偏差, 模型都是由假设前提(目标函数的嘛, 只是对真实的一种近似

  • Variance: 样本数据的训练误差, 每次抽样不一样, 训练的model也不太一样.
  • Noise: 真实的样本数据和理想模型有差距, 数据点很多是"异常值" 要特征处理等

case

我自己的栗子, 也谈到过, 就上学那会儿, 为了更好拟合数据, 然后模型很复杂, 就过拟合了. 最直观的是简单线性回归

通常收集到的点是有异常值的, 或者数据的分布没有很线性, 这时候, 如果不考虑实际情况, 就去求解, 不论是最小二乘, 还是梯度下降啥都, 能求解, 但必然是欠拟合的, 这样得到的模型, 会有较大的bias.

于是这时候, 为了更好拟合数据, 我通过给模型增加项, 或正则...之类的, 这样造成的问题是 过拟合了. 或者换一个复杂一些的模型, 如决策树来拟合, 也会面临这样的 "均衡问题".

说这么多,就只是想引入这种, bootStrap (有放回抽样)的 方式来训练模型, 做voting , 这样是可以 "抵消" variance 的. 即从整体来说, 这种有放回抽样的方式来训练模型, 会让样本得到比较充分的 训练. 也可以理解为, 投资组合理论中的, 降低风险. 好像也不大恰当的比喻哦.

上学时有过严格证明的, 关于降低风险, 回头整理下,补充一波吧再

集成学习 - Bagging的更多相关文章

  1. 集成学习---bagging and boosting

    作为集成学习的二个方法,其实bagging和boosting的实现比较容易理解,但是理论证明比较费力.下面首先介绍这两种方法. 所谓的集成学习,就是用多重或多个弱分类器结合为一个强分类器,从而达到提升 ...

  2. 机器学习基础—集成学习Bagging 和 Boosting

    集成学习 就是不断的通过数据子集形成新的规则,然后将这些规则合并.bagging和boosting都属于集成学习.集成学习的核心思想是通过训练形成多个分类器,然后将这些分类器进行组合. 所以归结为(1 ...

  3. [机器学习]集成学习--bagging、boosting、stacking

    集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务. 如何产生"好而不同"的个体学习器,是集成学习研究的核心. 集成学习的思路是通过 ...

  4. 机器学习——集成学习(Bagging、Boosting、Stacking)

    1 前言 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < ...

  5. 笔记︱集成学习Ensemble Learning与树模型、Bagging 和 Boosting

    本杂记摘录自文章<开发 | 为什么说集成学习模型是金融风控新的杀手锏?> 基本内容与分类见上述思维导图. . . 一.机器学习元算法 随机森林:决策树+bagging=随机森林 梯度提升树 ...

  6. 集成学习—boosting和bagging

    集成~bagging~权值~组合~抽样~样例~基本~并行 一.简介 集成学习通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能 根据个体学习器的生成方式,目前的集成学习方法 ...

  7. 集成学习:以Bagging、Adaboosting为例

    集成学习是一大类模型融合策略和方法的统称,以下以bagging和boosting为例进行说明: 1.boosting boosting方法训练分类器采用串行的方式,每个弱分类器之间是相互依赖的,尤其后 ...

  8. 集成学习算法汇总----Boosting和Bagging(推荐AAA)

     sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  9. 集成学习一: Bagging

    目录 偏倚与方差 Bagging 自助采样 投票 随机森林 参考文献: ''团结就是力量'' 对问题进行建模时, 算法无论如何优化都无法达到我们的要求,又或者精准算法的实现或调优成本太大, 这时,我们 ...

随机推荐

  1. 【Spring IoC】依赖注入DI(四)

    平常的Java开发中,程序员在某个类中需要依赖其它类的方法.通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理. Spring提出了依赖注入的思想,即依赖类不由程 ...

  2. django之三剑客、静态文件配置、请求响应对象、数据库操作

    三剑客 from django.shortcuts import render,HttpResponse,redirect HttpResponse # 返回字符串 render(response, ...

  3. Azure产品整理

    Azure的文档真是够落地,简明易懂. 计算 Linux 虚拟机:为 Ubuntu.Red Hat 等预配虚拟机 Windows 虚拟机 为 SQL Server.SharePoint 等预配虚拟机 ...

  4. pom文件详解(自己没看过)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  5. [NOIP2015]联合权值

    1.题面 2.总结 第一次回忆一下当年的题目.但是这道题已经做烂了,只是看还记得树遍历会写么. 然后我写了一下,有点费劲,交上去之后只有70,比较尴尬,看了下去年5月写的代码,发现完全不是一个感觉啊. ...

  6. AcWing 91. 最短Hamilton路径

    今天第一次在\(AcWing\)这个网站上做题,来发一下此网站的第一篇题解 传送门 思路 直接枚举的话时间复杂度为\(O(n*n!)\) 复杂度显然爆炸,所以我们用二进制枚举,这样就可以把复杂度降到\ ...

  7. win7 64位平台编译的程序在XP 32位平台无法运行的解决方法

    win7 64位平台编译的程序在XP 32位平台无法运行的解决方法 vs2010的开发环境,制作了一个DLL库.但DLL在XP 32位平台一直无法使用.解决方法如下: 右键项目,属性->配置属性 ...

  8. Linux性能优化实战学习笔记:第二十五讲

    一.磁盘性能指标 1.使用率 2.饱和度 3.IOPS 4.吞吐量 5.响应时间 6.性能测试工具 二.磁盘I/O观测 1.每块磁盘的使用率(指标实际上来自/proc/diskstats) [root ...

  9. MySQL实战45讲学习笔记:第十七讲

    一 .引子 我在上一篇文章,为你讲解完 order by 语句的几种执行模式后,就想到了之前一个做英语学习 App 的朋友碰到过的一个性能问题.今天这篇文章,我就从这个性能问题说起,和你说说 MySQ ...

  10. oracle--10.2.0.3升级到11.2.0.4

    一,环境 01,待升级的系统 升级仅支持10.2.0.2版本之后的系统,如果不是,请把10G升级至高版本! 本次实验环境10.2.0.3 02,挂载11G系统 03,升级须知 1) 做好备份 二,DB ...