集成学习 - Bagging
认识
Bagging 的全称为 (BootStrap Aggregation), 嗯, 咋翻译比较直观一点呢, 就有放回抽样 模型训练? 算了, 就这样吧, 它的Paper是这样的:
Algorithm Bagging:
- Let n be the number of bootstrap samples
这步非常关键: 对训练样本进行 有放回抽样, 这样就可达到,将原来只有一个数据集,现在有n个数据集了.
- for i = 1 to n do:
3. Draw bootstrip sample of size \(m, D_i\)
\(D_i\) 表示第 i 个采样的数据集
- Train base classifier \(h_i\) on \(D_i\)
与之前的 voting 不同在于, 这里 hi 算法没有变, 只是数据变了
- \(\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的更多相关文章
- 集成学习---bagging and boosting
作为集成学习的二个方法,其实bagging和boosting的实现比较容易理解,但是理论证明比较费力.下面首先介绍这两种方法. 所谓的集成学习,就是用多重或多个弱分类器结合为一个强分类器,从而达到提升 ...
- 机器学习基础—集成学习Bagging 和 Boosting
集成学习 就是不断的通过数据子集形成新的规则,然后将这些规则合并.bagging和boosting都属于集成学习.集成学习的核心思想是通过训练形成多个分类器,然后将这些分类器进行组合. 所以归结为(1 ...
- [机器学习]集成学习--bagging、boosting、stacking
集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务. 如何产生"好而不同"的个体学习器,是集成学习研究的核心. 集成学习的思路是通过 ...
- 机器学习——集成学习(Bagging、Boosting、Stacking)
1 前言 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < ...
- 笔记︱集成学习Ensemble Learning与树模型、Bagging 和 Boosting
本杂记摘录自文章<开发 | 为什么说集成学习模型是金融风控新的杀手锏?> 基本内容与分类见上述思维导图. . . 一.机器学习元算法 随机森林:决策树+bagging=随机森林 梯度提升树 ...
- 集成学习—boosting和bagging
集成~bagging~权值~组合~抽样~样例~基本~并行 一.简介 集成学习通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能 根据个体学习器的生成方式,目前的集成学习方法 ...
- 集成学习:以Bagging、Adaboosting为例
集成学习是一大类模型融合策略和方法的统称,以下以bagging和boosting为例进行说明: 1.boosting boosting方法训练分类器采用串行的方式,每个弱分类器之间是相互依赖的,尤其后 ...
- 集成学习算法汇总----Boosting和Bagging(推荐AAA)
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- 集成学习一: Bagging
目录 偏倚与方差 Bagging 自助采样 投票 随机森林 参考文献: ''团结就是力量'' 对问题进行建模时, 算法无论如何优化都无法达到我们的要求,又或者精准算法的实现或调优成本太大, 这时,我们 ...
随机推荐
- (转)LoadRunner集合点设置1
集合点的意思时等到特定的用户数后再一起执行某个操作,比如一起保存,一起提交(我们通常意义上的并发数并不是指一起提交或者一起保存),一般情况下使用不到集合点,不过,订票系统或者促销类需要用到,比如说某个 ...
- 生产器&迭代器
生成器 列表生成器:简洁代码 >>> a = [i+1 for i in range(10)] >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, ...
- JDOJ 1927 求逆序对
洛谷 P1908 逆序对 洛谷传送门 JDOJ 1927: 求逆序对 JDOJ传送门 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现 ...
- springboot学习过程中遇到的问题(遇到再总结)
1.pom文件第一行报错 当引入的spring-boot-starter-parent版本高于2.1.1会导致pom.xml文件第一行报错 (以后找个时间彻底解决此问题) 2.servlet配置失 ...
- 实现一个new操作符
new 操作符做了这些事: 1.它创建了一个全新的对象: 2.它会被执行[[Prototype]](也就是__proto__)链接: 3.它使this指向新创建的对象: 4.通过new创建的每个对象最 ...
- 详解 ASP.NET Core MVC 的设计模式
MVC 是什么?它是如何工作的?我们来解剖它 在本节课中我们要讨论的内容: 什么是 MVC? 它是如何工作的? 什么是 MVC MVC 由三个基本部分组成 - 模型(Model),视图(View)和控 ...
- 关于对pei
我现在才开始整理这个不算晚吧...... 望轻喷 学习博客 我们需要四个程序 1.暴力 2.“正解” 3.数据生成器 4.检查程序 暴力: 就是暴力 eg: #include <cstdio&g ...
- [LeetCode] 33. Search in Rotated Sorted Array 在旋转有序数组中搜索
Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e. ...
- 本地搭建WordPress (XAMPP环境)
1,XAMPP是一个流行的PHP开发环境,官网下载: https://www.apachefriends.org/zh_cn/index.html 然后安装. 官方介绍:XAMPP是最流行的PHP开发 ...
- Salesforce 开发新工具 - Visual Studio Code
最近尝试使用Visual Studio Code来做Salesforce的开发工具,体验上比Sublime好用不少,介绍下详细步骤 第一步:下载对应版本的Visual Studio Code 下载地址 ...