一、为什么要有放回抽样,而不是无放回?
- 保证数据量。假设总共有10w条样本,采用无放回抽样,用100颗树,这样每棵树最多只能用1000条样本。
- 如果不放回抽样,那么每棵树用的样本完全不同,基学习器之间的相似性过小,投票结果差,模型偏差大
二、怎么样给出特征重要性的?
- 对于每棵决策树,用袋外数据计算它的袋外数据误差,记为 e r r 1 err1 err1
- 随机地对袋外数据所有样本的特征 X X X加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算它的袋外数据误差,记为 e r r 2 err2 err2
- 假设随机森林中有 N N N棵树,那么特征 X X X的重要性就等于 1 N ∑ ( e r r 2 − e r r 1 ) \frac{1}{N}\sum(err2-err1) N1∑(err2−err1)
若给某个特征随机加入噪声之后,袋外的准确率大幅度降低,则说明这个特征对于样本的分类结果影响很大,也就是说它的重要程度比较高。
三、怎么样进行特征选择?
- 对随机森林中的特征变量按照VI(Variable Importance)降序排序
- 确定删除比例,从当前的特征变量中剔除相应比例不重要的指标,从而得到一个新的特征集
- 用新的特征集建立新的随机森林,并计算特征集中每个特征的VI,并排序
- 重复以上步骤,直到剩下m个特征
四、为什么随机森林能降低方差?
- 假设模型之间是相互独立的,每个模型的方差是 σ 2 \sigma^2 σ2,那么随机森林的方差就是 V a r ( 1 n ∑ i = 1 n X i ) = σ 2 n Var(\frac{1}{n}\sum\limits_{i=1}^n X_i)=\frac{\sigma^2}{n} Var(n1i=1∑nXi)=nσ2
- 但模型之间并不是独立的,假设单模型之间具有相关系数 0 < ρ < 1 0\lt\rho\lt1 0<ρ<1,那么随机森林的方差为 V a r ( 1 n ∑ i = 1 n X i ) = σ 2 n + n − 1 n ρ σ 2 Var(\frac{1}{n}\sum\limits_{i=1}^n X_i)=\frac{\sigma^2}{n}+\frac{n-1}{n}\rho\sigma^2 Var(n1i=1∑nXi)=nσ2+nn−1ρσ2当 n n n很大时,模型方差趋于 ρ σ 2 \rho\sigma^2 ρσ2。而随机森林又随机选取特征,所以单模型之间的相关性更低,所以模型方差更小。
五、优缺点?
- 优点
- 方差小,泛化能力强
- 表现较好
- 能够给出特征重要性
- 能够处理高维的数据
- 可以高度并行化
- 缺点:
- 在噪声较大的分类或者回归问题上会过拟合
- 比决策树慢
- 像一个黑盒子,你无法控制模型内部的运行