Random Forest=bagging+decision tree
随机森林实际上是决策树的bagging版,由bagging的原理,我们大致可以预想到随机森林的效果要比角决策树会好很多。
那么按照bagging的思想的话,我们必须尽量让我们的各棵决策树尽量不同,本课中提出我们还可以对features进行boost,
即假设本来有很多的features,我们可以每次随机抽取一定量(
d′
d
′
)的特征来进行决策树的训练,这样可以大大地提升“不同性”,这相当于是对
x
x
做了一个随机投影,
这在实例上的表现体现为,切割的方向不再是纵横两个方向,而是有很多斜切(线性变换的结果):
boost后剩余数据的利用
每次boost之后都会有大量的数据剩余,如图中的红*部分,下面将利用这些数据对模型进行检验(起到的是测试集的作用)
首先我们知道,假设从
N
N
组数据中抽取次的话,那么一组数据
(xn,yn)
(
x
n
,
y
n
)
没有被选中的概率为
(1−1N)N→1e
(
1
−
1
N
)
N
→
1
e
,即大约有30%的数据从来没有被抽中!
以最后一组数据
(xn,yn)
(
x
n
,
y
n
)
为例,没有被抽取用于
g2,g3,gT
g
2
,
g
3
,
g
T
的训练,所以我们可以定义一个误差,
G−N(x)=average(g2,g3,gT)
G
N
−
(
x
)
=
a
v
e
r
a
g
e
(
g
2
,
g
3
,
g
T
)
,计算一个总的误差