Aggregation(1):Blending、Bagging、Random Forest

假设我们有很多机器学习算法(可以是前面学过的任何一个),我们能不能同时使用它们来提高算法的性能?也即:三个臭皮匠赛过诸葛亮。

有这么几种aggregation的方式:

image

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

image

我们可以看出,有时候aggregation的表现像是在做feature transform,有时候又像是在做regularization。

 

Blending:uniform Blending、 linear Blending、 any Blending

image

image

image

image

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

image

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

image

image

image

 

Bagging

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

image

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

image

image

Random Forest

什么是random forest?就是Bagging的一种特殊情况:g为决策树的情况

为什么呢?之前我们说过uniform Blending是通过减小variance,使算法稳定,来提高算法性能。而bagging是Blending的一种特殊形式。而我们知道决策树对于数据很敏感,不同的数据会导致算法巨大的变化。Bagging正好可以减小variance。

所以可以说random forest是Bagging的一种特殊情况,也可以说random forest是为了提高决策树性能(稳定性)而使用的一种策略

那么如何进行所谓的“bootstrap”步骤?产生大量的“D”?

image

image

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

image

 

 

 

Out-of-Bagging(OOB)技术

Bagging技术我们之前谈到过了:

image

image

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

回想一下validation:

image

image

 

Feature Selection

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

image

image

image

image

posted @ 2016-05-23 15:30  wangyanphp  阅读(905)  评论(1编辑  收藏  举报