(总感觉random forest没有gradient boosting效果好,本章的实验图也有这种感觉)
目录
15.1 导言
- P587 委员会committee,只关注票数,平均并不重要。用于分类
- P587 随机森林random forest是对bagging的修改,建立一个去相关性de-correlated树的集合。在许多问题上,与boosting表现相似,而且训练和调参更简单
15.2 随机森林的定义
- P587 树是bagging的理想模型,因为它们可以捕捉数据中复杂的交叉项,而且如果树足够深,会有相对较低的偏差
- P588 注意,经过bagged的树的偏差和单个bootstrap树的偏差是一样的,因为bagged的树都是同分布的。唯一改善的是降低方差。这和boosting相反,boosting中树以自适应的方式减小偏差,因此不是同分布的
- P588 如果
B
B
B个变量是同分布i.d.,identically distributed但不是independent,有正的相关系数
ρ
\rho
ρ,平均后方差为
见习题15.1,另外根据方差大于等于0,得到 ρ ≥ − 1 B − 1 \rho\ge -\frac{1}{B-1} ρ≥−B−11,也即相关稀疏不可能太小
随着 B B B增大,第二项消失,第一项主导方差,随机森林的想法是通过降低树之间的相关系数来减小平均方差,同时又不使单个方差 σ 2 \sigma^2 σ2增大太多。(如果特征数量少了,单个方差会增大吗,我感觉是会的,比如考虑 y y y和 x x x的线性关系, x x x本身带噪声,多个 x x x的观测得到的模型比单个 x x x方差小。所以特征少了,方差可能大了,偏差可能也大。15.4节图15.10有分析)
可以通过在生成树的过程中对输入变量进行随机选择来实现,每次分割时,随机选 m ≤ p m\le p m≤p个输入变量作为候选,一般地,取 m = p m=\sqrt p m=p甚至 1 1 1 - P589 并非所有估计都可以通过这种震荡数据的方式来改善,似乎强非线性估计,比如树,改善最大。对于bootstrapped树,
ρ
\rho
ρ一般很小,0.05或更小,见图15.9. 而
σ
2
\sigma^2
σ2不比原树的方差大(所以这里的
ρ
\rho
ρ是实验做出来的,不是从数据推算的)
bagging不会改善线性的估计,比如样本均值的估计,或者样本方差,其bootstrapped均值之间成对相关系数大约50%,见习题15.4 - P590 McNemar检验
- P590,591 随机森林和GBM的一些实验对比
- P592 Wilcoxon检验(没有细看)
15.3 随机森林的细节
- P592 发明者给出两条推荐,对于特征数量为 p p p,任务分类,随机选择特征数量 m m m的默认值为 ⌊ p ⌋ \left \lfloor \sqrt p \right \rfloor ⌊p⌋,最小结点大小为 1 1 1(应该是指结点中样本量);对于分类,默认值为 ⌊ p / 3 ⌋ \left \lfloor p/3 \right \rfloor ⌊p/3⌋,最小结点大小为 5 5 5
15.3.1 集外样本Out of Bag Samples
- P592 随机森林一个重要的特征是它对集外out-of-bag,OOB样本的使用:对每个观测
z
i
=
(
x
i
,
y
i
)
z_i=(x_i, y_i)
zi=(xi,yi),仅通过对部分树的平均来预测,这部分树是对应那些
z
i
z_i
zi不出现的. OOB误差几乎等价于通过
N
N
N折交叉验证得到的估计,见习题15.2(其实也能理解,当树的数量
B
B
B很大时,不包含
z
i
z_i
zi的那一堆树就可以看作是用把
z
i
z_i
zi排除掉的剩下的样本进行随机森林拟合产生的集合)
因此与许多其它的非线性估计器不同,随机森林可以逐步拟合,交叉验证沿着拟合进度逐步进行.一旦OOB误差稳定,训练可以终止(有些非线性估计器需要拟合完之后,才能算CV误差,不能边拟合边算)
15.3.2 变量重要性
- P593 度量特征重要性的第一种方法:可以用和10.13节一样的方法Relative Importance构造变量重要性。通过比较图15.5和10.6,两者差不多。不过Boosting完全忽略了一些变量,而随机森林不会.切分候选变量增加了任意单个变量被包含进随机森林的概率
- P593 第二种方法:随机森林也采用OOB样本来构造重要性度量,当生成第
b
b
b棵树时,得到OOB样本,记录预测的准确度.接下来打乱第
j
j
j个变量在OOB样本中的顺序,再一次计算准确度.对所有的树应用这种随机打乱,计算平均降低的准确度,然后用作对随机森林中第
j
j
j个变量的重要性的度量. (weiya注:这种方法得到的重要性也称为Permutation Importance。sklearn分析了这两者不同)
尽管这两种方法得到的特征排名类似,图15.5说明Permutation Importance在变量间更加均匀.
随机化有效取消了单个变量的影响,这很像在线性模型中设置对应变量的系数为0,见习题15.7
这个方法不能度量当某个变量不可用时,对结果的影响。因为如果重新拟合,其他变量可能代替之
15.3.3 邻近图Proximity Plots
- P595 积累训练数据的 N × N N\times N N×N的邻近矩阵Proximity matrix(回顾14.3.1节),对每棵树,任意一对OOB观测值如果共享一个叶子,则邻近proximity加1. 邻近矩阵进一步可用多维缩放至2维。尽管原始数据可能是高维的、包含混合变量的,但邻近图给出随机森林看来彼此充分靠近的观测(这里用的是相似性,MDS中用的是距离,这两者不知道中间是怎么转换的)
- P595 不管什么数据,随机森林的邻近图经常看起来非常类似,这也让人怀疑其效用. 图趋向于星形,每个类别一个臂,当分类效果越好,图就会越清楚
15.3.4 随机森林和过拟合
- P596 当特征数量增多,而有效特征的比例变小时,随机森林会在随机选的特征数量
m
m
m小的情况下表现不好
当相关变量个数变多,随机森林的表现在噪声变量增加时出奇地鲁棒。与boosting相比,这不会损害随机森林的表现.这种鲁棒性大部分是因为误分类代价相对于每棵树中概率估计的偏差和方差的不敏感性(这一大段不理解。分类问题的方差是普遍比回归问题要小吗?) - P596 随机森林中树数
B
B
B增大,不会使随机森林序列过拟合。
然而充分生长的树的平均可以导致模型太丰富too rich,产生额外方差. Segal (2004)通过控制单个生成树的深度小幅度改善效果.本书作者的经验是采用充分生长的模型也不会有太大代价,并且少调一个参数
15.4 随机森林的分析
- P597 本节集中讨论回归和平方误差损失,而0-1损失下的偏差和方差都会更复杂,参考7.3.1节
15.4.1 方差和去相关性De-Correlation的影响
(这里de-correlation就是指各个树之间通过只使用部分特征减小预测值相关系数)
- P597 方差的极限形式
B
→
∞
B\to \infty
B→∞是
其中 Z \bm Z Z是训练数据集。由式15.1得到
其中
式15.6和15.7中计算的波动是在 Z \bm Z Z的条件下的,由自助采样和特征采样造成;以及 Z \bm Z Z自身的采样波动(所以训练集 Z \bm Z Z自身也会存在波动, Z \bm Z Z采样完了之后再采样 Θ 1 , Θ 2 \Theta_1,\Theta_2 Θ1,Θ2)(这里 Z \bm Z Z应该确实是训练集,没有经过bootstrap。如果 Z \bm Z Z表示的是bootstrap之后的,考虑用所有特征拟合树的bagging情况,必有 ρ ( x ) = 1 \rho(x)=1 ρ(x)=1,这显然不是我们想研究的)
在x处拟合的成对树的条件协方差 C o v Θ 1 ∣ Z , Θ 2 ∣ Z [ T ( x ; Θ 1 ( Z ) , T ( x ; Θ 2 ( Z ) ) ] = 0 Cov_{\Theta_1|\bm Z,\Theta_2|\bm Z}[T(x;\Theta_1(\bm Z), T(x;\Theta_2(\bm Z))]=0 CovΘ1∣Z,Θ2∣Z[T(x;Θ1(Z),T(x;Θ2(Z))]=0,这是必然的,因为 Θ 1 ∣ Z , Θ 2 ∣ Z \Theta_1|\bm Z,\Theta_2|\bm Z Θ1∣Z,Θ2∣Z独立。由习题15.5(这里需要条件方差公式Law of total covariance,式15.9也需要)
图15.9做了个实验,考察 m m m对相关系数的影响
考虑方差
(这里很有趣的是式(15.9)第一项就是随机森林的Variance,而总方差是单棵树的方差。15.5给出了这两者的另一个关系式。这两个式子看起来是等价的。这三个量的关系怎么看都觉得很神奇)
单棵树的方差在 m m m的大部分取值不会明显改变,不过 ρ 2 \rho^2 ρ2变得多,所以随机森林的总方差在 m m m小时显著降低(也就是图15.10右图所示)
15.4.2 偏差
- P600 和bagging中一样,随机森林的偏差与任意单棵采样后的树
T
(
x
;
Θ
(
Z
)
)
T(x;\Theta(\bm Z))
T(x;Θ(Z))一样
因为随机化特征和减小的样本空间的约束,这一般比由 Z \bm Z Z生成的未剪枝的树的偏差的绝对值要大。因此bagging或随机森林带来的改善仅仅是方差降低的结果 - P601 随机森林与岭回归的相似性.对于大量的特征,通过岭回归正则化能允许所有的变量都有它们的影响,尽管被削弱.
m
m
m较小的随机森林表现出相似的平均.每个相关的变量都会成为主分割,并且平均降低了任一单个变量的贡献.
(模拟例子15.8,用岭回归达到最优结果的约为 d f ( λ o p t ) ≈ 29 df(\lambda_{opt})\approx 29 df(λopt)≈29。为什么这么低,明明50个变量都起作用?是不是噪声越大,参数有效数越低)
15.4.3 自适应最近邻
- P601 随机森林分类器是kNN分类器的加权版本。当每棵树长到最大时,对特定 Θ ∗ \Theta^* Θ∗, T ( x ; Θ ∗ ( Z ) ) T(x;\Theta^*(\bm Z)) T(x;Θ∗(Z))是其中一个训练样本的响应值。这里忽略了一个叶子结点多个同类的情况。平均的过程是对训练响应变量赋予权重,最终对预测值进行投票.那些靠近目标点的观测赋予了权重,相当于一个等价核,这些结合在一起形成了分类边界
文献笔记
- P602 Dietterich(2000b)在每个结点出对前20个候选分离排序,接着随机从中选择,从而提升bagging性能
- P602 Friedman and Hall (2007)证明了不放回子采样能有效代替bagging. 在大小为 N / 2 N/2 N/2的样本上对树的生长和平均近似等于bagging——在考虑偏差及方差的情况下;而采用更少的样本则会降低更大的方差——通过去相关处理
参考文献:
[1] Trevor Hastie, Robert Tibshirani, Jerome Friedman. The Elements of Statistical Learning, Second Edition
[2] ESL CN