(LXTML笔记)Random Forest

Random Forest=bagging+decision tree

随机森林实际上是决策树的bagging版,由bagging的原理,我们大致可以预想到随机森林的效果要比角决策树会好很多。

那么按照bagging的思想的话,我们必须尽量让我们的各棵决策树尽量不同,本课中提出我们还可以对features进行boost,
(LXTML笔记)Random Forest
即假设本来有很多的features,我们可以每次随机抽取一定量(d)的特征来进行决策树的训练,这样可以大大地提升“不同性”,这相当于是对x做了一个随机投影ϕi(x)
(LXTML笔记)Random Forest
这在实例上的表现体现为,切割的方向不再是纵横两个方向,而是有很多斜切(线性变换的结果):
(LXTML笔记)Random Forest

boost后剩余数据的利用

(LXTML笔记)Random Forest

每次boost之后都会有大量的数据剩余,如图中的红*部分,下面将利用这些数据对模型进行检验(起到的是测试集的作用)
首先我们知道,假设从N组数据中抽取N次的话,那么一组数据(xn,yn)没有被选中的概率为(11N)N1e,即大约有30%的数据从来没有被抽中!

(LXTML笔记)Random Forest

以最后一组数据(xn,yn)为例,没有被抽取用于g2,g3,gT的训练,所以我们可以定义一个误差,GN(x)=average(g2,g3,gT),计算一个总的误差

Eoob(G)=1Nn=1Nerr(yn,Gn(xn)),

(LXTML笔记)Random Forest