【机器学习笔记之六】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虚拟机(JVM)
1. JVM生命周期 启动.启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例 ...
- P2727 Stringsobits
01串 Stringsobits 题目背景 考虑排好序的N(N<=31)位二进制数. 题目描述 他们是排列好的,而且包含所有长度为N且这个二进制数中1的位数的个数小于等于L(L<=N)的数 ...
- servlet导出Excel
package khservlet; import java.io.IOException;import java.io.PrintWriter;import java.sql.*; import j ...
- SpringMvc多视图配置(jsp、velocity、freemarker) velocity在springmvc.xml配置VelocityViewResolver,VelocityConfigurer,FreeMarkerConfigurer,FreeMarkerViewResolver
?xml version="1.0"encoding="UTF-8"?> <beans xmlns="http://www.springf ...
- P1280 尼克的任务
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...
- 动态数组ArrayList的使用
1.定义类 package com.realhope.rmeal.bean; /** * * @author Wucy * 菜谱类 */ public class Menu{ private Inte ...
- python基础(4):条件语句与循环语句
今天我们看看条件语句与循环语句. 预习: 1.使用while循环输出1 2 3 4 5 6 8 9 10 2.求1-100的所有数的和 3.输出 1-100 内的所有奇数 4.输出 1-100 内的所 ...
- hihocoder 1050 树中的最长路(动态规划,dfs搜索)
hihocoder 1050 树中的最长路(动态规划,dfs搜索) Description 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅 ...
- Django学习(七)---添加新文章页面
在template中添加add_article.html页面 (form input)请求方法使用post 这个页面涉及到了两个响应函数 1)显示页面的响应函数 2)表单提交的响应函数 add_a ...
- js菜鸟进阶-jQuery源码分析(1)-基本架构
导读: 本人JS菜鸟一枚,为加强代码美观和编程思想.所以来研究下jQuery,有需要进阶JS的同学很适合阅读此文!我是边看代码(jquery2.2.1),边翻“javascript高级程序设计”写的, ...