【机器学习笔记之六】Bagging 简述
本文结构:
- 基本流程
- 有放回抽样的好处
- Bagging 特点
- sklearn 中 Bagging 使用
- Bagging 和 Boosting 的区别
bagging:bootstrap aggregating 的缩写。
是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。
基本流程:
- 对一个包含 m 个样本的数据集,有放回地进行 m 次随机采样,这样得到具有 m 个样本的采样集。
- 取 T 个这样的采样集。
- 每个采样集训练一个基学习器。
- 结合:分类任务,使用简单投票法。回归任务,使用简单平均法。
有放回抽样的好处
这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。
当基学习器是决策树时,可以用包外样本来辅助剪枝,
还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。
基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。
Bagging 特点
Bagging 主要关注降低方差,是要降低过拟合,而不会降低偏差,因此最好不要用高偏差的模型。
在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显。例如当基学习器是决策树时,Bagging 是并行的生成多个决策树,此时可以不做剪枝,这样每个都是强学习器,就会有过拟合的问题,但是多个学习器组合在一起,可以降低过拟合。
scikit-learn 中 Bagging 使用例子:
from sklearn.ensemble import BaggingClassifier
from sklearn.neighbors import KNeighborsClassifier
model=BaggingClassifier(KNeighborsClassifier(), max_samples=0.5,max_features=0.5)
Bagging 和 Boosting 的区别
- 样本选择:Bagging 的训练集是在原始集中有放回选取的,各轮训练集之间是独立的,每个样例的权重相等;Boosting 的训练集不变,只是每个样例在分类器中的权重发生变化,错误的样本会得到更大的重视;
- Bagging 的预测函数没有权重之分;Boosting 的预测函数是有权重之分,效果好的函数权重大;
- Bagging 的各个预测函数并行产生,容易 map-reduce ,Boosting 的预测是顺序产生,后一个模型参数需要前一轮模型的结果。
学习资料:
《机器学习》
http://f.dataguru.cn/thread-301569-1-1.html
http://scikit-learn.org/stable/modules/ensemble.html#bagging
http://www.cnblogs.com/liuwu265/p/4690486.html
http://www.jianshu.com/p/708dff71df3a
【机器学习笔记之六】Bagging 简述的更多相关文章
- Python机器学习笔记:sklearn库的学习
网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...
- Python机器学习笔记:不得不了解的机器学习面试知识点(1)
机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因 ...
- Python机器学习笔记 集成学习总结
集成学习(Ensemble learning)是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合,从而获得比单个学习器显著优越的泛化性能.它不是一种单独的机器学习算法啊,而更像是一种优 ...
- 机器学习笔记:Gradient Descent
机器学习笔记:Gradient Descent http://www.cnblogs.com/uchihaitachi/archive/2012/08/16/2642720.html
- 机器学习笔记5-Tensorflow高级API之tf.estimator
前言 本文接着上一篇继续来聊Tensorflow的接口,上一篇中用较低层的接口实现了线性模型,本篇中将用更高级的API--tf.estimator来改写线性模型. 还记得之前的文章<机器学习笔记 ...
- 【Visual C++】游戏编程学习笔记之六:多背景循环动画
本系列文章由@二货梦想家张程 所写,转载请注明出处. 本文章链接:http://blog.csdn.net/terence1212/article/details/44264153 作者:ZeeCod ...
- Python机器学习笔记:使用Keras进行回归预测
Keras是一个深度学习库,包含高效的数字库Theano和TensorFlow.是一个高度模块化的神经网络库,支持CPU和GPU. 本文学习的目的是学习如何加载CSV文件并使其可供Keras使用,如何 ...
- 机器学习笔记(4):多类逻辑回归-使用gluton
接上一篇机器学习笔记(3):多类逻辑回归继续,这次改用gluton来实现关键处理,原文见这里 ,代码如下: import matplotlib.pyplot as plt import mxnet a ...
- 【转】机器学习笔记之(3)——Logistic回归(逻辑斯蒂回归)
原文链接:https://blog.csdn.net/gwplovekimi/article/details/80288964 本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读 ...
随机推荐
- java excel导出
下面是jsp代码: <li class="btns"><input id="btnExport" class="btn btn-pr ...
- web前端CSS2学习2017.6.17
CSS---表现层,修饰和表现html文档,为了解决结构层和表现层分离的问题. 通过CSS极大的提高了工作效率,方便工作人员维护和管理CSS:层叠样式表,目前用的最广泛的css版本为css2,最新版本 ...
- Wireshark初步入门
第一次捕获数据包 为了能让Wireshark得到一些数据包,你可以开始你的第一次数据包捕获实验了.你可能会想:"当网络什么问题都没有的时候,怎么能捕获数据包呢?" 首先,网络总是有 ...
- Eclipse 快捷键和模板设置
快捷键设置 菜单 Window --> Preferences---General---Keys Content Assist: 代码提示快捷键 模板设置 新建一个模板 在Insert Va ...
- Android 动画——Frame Animation与Tween Animation
很多手机应用的引导页都是动画的,添加动画后的应用画面会更加生动灵活,今天博主也学习了Android中Animation的使用,下面来总结下. android中的Animation分为两种,一种是Fr ...
- java 图片质量压缩
/** * 图片质量压缩 * @param file 要压缩的图片文件 * @param input 文件输入流 * @param quality 压缩质量(0-1) * @author ouyang ...
- JAVA高并发
一.JAVA高级并发 1.5JDK之后引入高级并发特性,大多数的特性在java.util.concurrent 包中,是专门用于多线程发编程的,充分利用了现代多处理器和多核心系统的功能以编写大规模并发 ...
- shell统计文本中单词的出现次数
Ubuntu14.04 给定一个文本,统计其中单词出现的次数 方法1 # solution 1 grep与awk配合使用,写成一个sh脚本 fre.sh sh fre.sh wordfretest.t ...
- 【NOIP2016】Day1 T3 换教室(期望DP)
题目背景 NOIP2016 提高组 Day1 T3 题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n 节课程安排在 n 个时间段上. ...
- maven引入已经拥有的jar包
<!-- https://mvnrepository.com/artifact/jfree/jcommon --><dependency> <groupId> ...