Aggregation(1):Blending、Bagging、Random Forest
假设我们有很多机器学习算法(可以是前面学过的任何一个),我们能不能同时使用它们来提高算法的性能?也即:三个臭皮匠赛过诸葛亮。
有这么几种aggregation的方式:

一些性能不太好的机器学习算法(弱算法),如何aggregation,成为表现比较好的算法?来看一下:

我们可以看出,有时候aggregation的表现像是在做feature transform,有时候又像是在做regularization。
Blending:uniform Blending、 linear Blending、 any Blending




我们可以看出:机器学习算法A的表现,分为两部分,performance of consensus (bias) 和 expected deviation to consensus (variance)。而uniform blending提高性能是通过减小variance ,来获得更加stable的算法来实现的。

其中α必然会大于0,约束条件可以去掉。



Bagging
我们可以看出,aggregation之所以奏效,是因为机器学习算法的多样性。那么,如何产生足够多的机器学习算法?有如下几种情形。现在我们将注意力集中到:diversity by data randomness.

之前我们在uniform Blending中假想过这一情形。但是呢,那是在理想状态下,1)我们的T不可能无限大;2)我们的D不可能无限多,现在我们采用如下技术来解决:


Random Forest
什么是random forest?就是Bagging的一种特殊情况:g为决策树的情况。
为什么呢?之前我们说过uniform Blending是通过减小variance,使算法稳定,来提高算法性能。而bagging是Blending的一种特殊形式。而我们知道决策树对于数据很敏感,不同的数据会导致算法巨大的变化。Bagging正好可以减小variance。
所以可以说random forest是Bagging的一种特殊情况,也可以说random forest是为了提高决策树性能(稳定性)而使用的一种策略。
那么如何进行所谓的“bootstrap”步骤?产生大量的“D”?


那究竟需要多少棵决策树呢?作者在一次比赛中使用了12000棵。

Out-of-Bagging(OOB)技术
Bagging技术我们之前谈到过了:


也就是说,对于某个g来说,有将近三分之一的资料没有被使用!这是巨大的浪费!如何使用这些OOB资料呢?
回想一下validation:


Feature Selection
假设每一个样本有很多Feature,那其中有很多冗余的特性,有很多与问题不相关的特性,如何选择我们想要的特性呢?




Aggregation(1):Blending、Bagging、Random Forest的更多相关文章
- 单点登录CAS使用记(六):单点登出、单点注销
单点登出基本上没有啥配置 直接在原来logout的时候,重定向到Cas-Server的logout方法 @RequestSecurity @RequestMapping(value = "l ...
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.ne ...
- x264代码剖析(三):主函数main()、解析函数parse()与编码函数encode()
x264代码剖析(三):主函数main().解析函数parse()与编码函数encode() x264的入口函数为main().main()函数首先调用parse()解析输入的參数,然后调用encod ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...
- libzip开发笔记(二):libzip库介绍、ubuntu平台编译和工程模板
前言 Qt使用一些压缩解压功能,选择libzip库,libzip库比较原始,也是很多其他库的基础支撑库,编译过了windows版本,有需求编译一个ubuntu版本的,交叉编译需求的同样可参照本文章 ...
- zlib开发笔记(三):zlib库介绍、在ubuntu上进行arm平台交叉编译
前言 方便做嵌入式arm的交叉移植zlib库. Zlib库 zlib被设计为一个免费的,通用的,法律上不受限制的-即不受任何专利保护的无损数据压缩库,几乎可以在任何计算机硬件和操作系统上使 ...
- zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板
前言 Qt使用一些压缩解压功能,介绍过libzip库编译,本篇说明zlib库.需要用到zlib的msvc2015x64版本,编译一下. 版本编译引导 zlib在windows上的mingw32 ...
- oc语言学习之基础知识点介绍(四):方法的重写、多态以及self、super的介绍
一.方法重写 /* 重写:当子类继承了父类的方法时,如果觉得父类的方法不适合,那么可以对这个方法进行重新实现,那么这个就重写. 注意:也就是说,一定只能发生在父类和子类关系中. 然后是子类重新实现父类 ...
- C#程序员整理的Unity 3D笔记(十):Unity3D的位移、旋转的3D数学模型
遇到一个想做的功能,但是实现不了,核心原因是因为对U3D的3D数学概念没有灵活吃透.故再次系统学习之—第三次学习3D数学. 本次,希望实现的功能很简单: 如在小地图中,希望可以动态画出Player当前 ...
随机推荐
- Java多线程2:实现多线程的两种方式
原文:http://www.cnblogs.com/skywang12345/p/3479063.html 常见的实现多线程的方式有2种,一是继承Thread类,二是实现 Runnable接口,还可以 ...
- 《数据通信与网络》笔记--TCP中的拥塞控制
1.拥塞窗口 发送方窗口的大小不仅取决于接收方,而.而且还取决于网络拥塞的情况. 发送方有2种信息:接收方通告的窗口大小和拥塞窗口的大小,实际的窗口大小事这两者中的最小者. 实际窗口大小 = min( ...
- java导出excel报表
1.java导出excel报表: package cn.jcenterhome.util; import java.io.OutputStream;import java.util.List;impo ...
- C# 常用控件及单击事件
1.窗体 1.常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2)WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三种: No ...
- poj 1845 Sumdiv (数论)
题目链接 题意:求 A^B的所有约数之和对9901取模后的结果. 分析: 看了小优的博客写的. 分析来自 http://blog.csdn.net/lyy289065406/article/detai ...
- attachEvent,addEventListener事件绑定
兼容各主流浏览器的事件绑定(在同一个事件上添加多个处理函数). 1.绑定方法: //IE attachEvent(事件名, 函数) oBtn.attachEvent('onclick', aaa); ...
- JAVA安卓和C# 3DES加密解密的兼容性问题(2013年8月修改版)
近 一个项目.net 要调用JAVA的WEB SERVICE,数据采用3DES加密,涉及到两种语言3DES一致性的问题, 下面分享一下, 这里的KEY采用Base64编码,便用分发,因为Java的By ...
- HTTP请求头host解析
Host: 域名 Host表示请求的服务器网址: request headers中的host字段 例如有user.xiaoqiang.com,hotel.xiaoqiang.com 现在需要登录后 ...
- 【C#学习笔记】类构造函数使用
using System; namespace ConsoleApplication { class stu { private string name; private int age; publi ...
- HTML5之video元素
一.video元素支持的视频格式 HTML5中的video标签支持3种常用的视频格式: 1.Ogg = 带有Theora 视频编码和Vorbis 音频编码的 Ogg 文件: 2.MPEG4 = 带有H ...