【机器学习】(算法优化一)集成学习之:装袋算法(Bagging):装袋决策树、随机森林、极端随机树
文章目录
- 一、装袋算法的数学原理
- 1、目标函数推导
- 方差减少的关键计算
- 2、当基模型之间不独立时
- 3、装袋算法的实际意义
- 二、装袋模型一:装袋决策树(Bagged Decision Trees)
- 1、装袋决策树:数据随机性
- 方差减少的效果
- 2、协方差项的完整推导
- 3、方差减少的完整效果
- 4、实际意义
- 三、装袋模型二:随机森林:增加特征随机性
- 1、核心目标函数求解推导过程
- 2、与装袋决策树的比较
- 3、双重随机性的协同效应
- 4、实际意义
- 四、装袋模型三:极端随机树:再增加分裂点随机性
- 1、核心目标函数求解推导过程
- 与随机森林的比较
- 2、三重随机性的协同效应
- 3、实际意义
- 极端随机树的独特优势
- 五、三种模型的对比与应用
- 1、对比
- 2、三种装袋模型的使用场景
- 装袋决策树:稳定可靠的通用选择
- 随机森林:高维数据的强大解决方案
- 极端随机树:复杂数据的最优选择
在机器学习工程实践中,单一模型往往难以兼顾高准确率与强泛化能力。装袋算法(Bagging)通过"集思广益"的思想,将多个基模型的预测结果进行组合,能够在保持简单模型优势的同时,显著提升整体性能。
本文将深入剖析装袋算法的核心原理,并重点介绍三种重要的装袋模型:装袋决策树(Bagged Decision Trees)、随机森林(Random Forest)和极端随机树(Extra Trees)。这三种模型代表了装袋算法在不同应用场景下的最佳实践。
一、装袋算法的数学原理
1、目标函数推导
装袋算法的核心思路是"随机采样、独立训练、多数投票"。这个看似简单的策略蕴含着深刻的统计学原理:通过增加模型的多样性来减少方差,同时保持偏差大致不变。
装袋算法的目标函数可以表示为:
f^bag(x)=1B∑b=1Bf^b(x)\hat{f}_{bag}(x) = \frac{1}{B} \sum_{b=1}^{B} \hat{f}_b(x)f^bag(x)=B1b=1∑Bf^b(x)
其中 BBB 是基模型的数量,f^b(x)\hat{f}_b(x)f^b(x) 是第 bbb 个基模型的预测结果。
这个公式的核心思想是:通过平均多个独立训练的模型预测结果,来减少预测的方差。从统计学角度看,如果基模型是独立的,那么集成模型的方差会减少到原来的 1B\frac{1}{B}B1。
单个模型的预测结构
每个基模型的预测可以分解为:
f^b(x)=f(x)+ϵb\hat{f}_b(x) = f(x) + \epsilon_bf^b(x)=f(x)+ϵb
其中:
- f(x)f(x)f(x) 是真实的目标值(我们想要预测的,每个基模型应该是不同的,但它们都试图预测同一个真实值 f(x)f(x)f(x))
- ϵb\epsilon_bϵb 是第 bbb 个模型的预测误差
误差的统计特性
关键假设:如果基模型是独立的,那么误差 ϵb\epsilon_bϵb 可以视为独立的随机变量,且:
- 每个误差的均值为0:E[ϵb]=0E[\epsilon_b] = 0E[ϵb]=0
- 每个误差的方差为 σ2\sigma^2σ2:Var(ϵb)=σ2Var(\epsilon_b) = \sigma^2Var(ϵb)=σ2
集成预测的数学推导
将每个基模型的预测代入装袋公式:
f^bag(x)=1B∑b=1Bf^b(x)=1B∑b=1B(f(x)+ϵb)\hat{f}_{bag}(x) = \frac{1}{B} \sum_{b=1}^{B} \hat{f}_b(x) = \frac{1}{B} \sum_{b=1}^{B} (f(x) + \epsilon_b)f^bag(x)=B1b=1∑Bf^b(x)=B1b=1∑B(f(x)+ϵb)
进一步展开:
f^bag(x)=1B∑b=1Bf(x)+1B∑b=1Bϵb\hat{f}_{bag}(x) = \frac{1}{B} \sum_{b=1}^{B} f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_bf^bag(x)=B1b=1∑Bf(x)+B1b=1∑Bϵb
由于 f(x)f(x)f(x) 对所有模型都是相同的常数:
f^bag(x)=f(x)+1B∑b=1Bϵb\hat{f}_{bag}(x) = f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_bf^bag(x)=f(x)+B1b=1∑Bϵb
方差减少的关键计算
现在计算集成预测的方差:
Var(f^bag(x))=Var(f(x)+1B∑b=1Bϵb)Var(\hat{f}_{bag}(x)) = Var(f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b)Var(f^bag(x))=Var(f(x)+B1b=1∑Bϵb)
由于(对于给定的输入x) f(x)f(x)f(x) 是常数,其方差为0,所以:
Var(f^bag(x))=Var(1B∑b=1Bϵb)Var(\hat{f}_{bag}(x)) = Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b)Var(f^bag(x))=Var(B1b=1∑Bϵb)
根据方差的性质,对于独立随机变量的线性组合:
Var(1B∑b=1Bϵb)=1B2∑b=1BVar(ϵb)Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b) = \frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b)Var(B1b=1∑Bϵb)=B21b=1∑BVar(ϵb)
由于所有 ϵb\epsilon_bϵb 的方差都是 σ2\sigma^2σ2:
Var(1B∑b=1Bϵb)=1B2∑b=1Bσ2=1B2⋅B⋅σ2=σ2BVar(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b) = \frac{1}{B^2} \sum_{b=1}^{B} \sigma^2 = \frac{1}{B^2} \cdot B \cdot \sigma^2 = \frac{\sigma^2}{B}Var(B1b=1∑Bϵb)=B21b=1∑Bσ2=B21⋅B⋅σ2=Bσ2
方差减少的直观理解
这个结果 σ2B\frac{\sigma^2}{B}Bσ2 告诉我们:
- 方差减少:集成模型的方差只有单个模型的 1B\frac{1}{B}B1
- 数量效应:随着基模型数量 BBB 的增加,方差会越来越小
- 稳定性提升:预测变得更加稳定和可靠
2、当基模型之间不独立时
如果基模型不是独立的,那么误差之间会存在相关性。在这种情况下,方差的计算会变得复杂:
Var(1B∑b=1Bϵb)=σ2B+2B2∑i<jCov(ϵi,ϵj)Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b) = \frac{\sigma^2}{B} + \frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i, \epsilon_j)Var(B1b=1∑Bϵb)=Bσ2+B22i<j∑Cov(ϵi,ϵj)
其中 Cov(ϵi,ϵj)Cov(\epsilon_i, \epsilon_j)Cov(ϵi,ϵj) 是误差间的协方差。如果误差正相关,那么方差减少的效果会大打折扣。
3、装袋算法的实际意义
装袋算法的重要性在于它解决了机器学习中的一个核心问题:如何在保持模型简单性的同时提高预测稳定性。当单个模型因为数据噪声或模型复杂度而表现不稳定时,装袋算法通过集成多个模型来获得更稳定的预测结果。
更重要的是,装袋算法天然支持并行计算,这使得它在大规模数据处理中具有显著优势。同时,装袋算法对基模型的选择相对宽松,几乎任何机器学习算法都可以作为基模型使用。
二、装袋模型一:装袋决策树(Bagged Decision Trees)
装袋决策树是最经典的装袋算法实现,它使用决策树作为基模型,通过随机采样来增加模型的多样性。
1、装袋决策树:数据随机性
装袋决策树的目标函数为:
f^bagged_tree(x)=1B∑b=1Bf^treeb(x)\hat{f}_{bagged\_tree}(x) = \frac{1}{B} \sum_{b=1}^{B} \hat{f}_{tree_b}(x)f^bagged_tree(x)=B1b=1∑Bf^treeb(x)
每个决策树的预测可以分解为:
f^treeb(x)=f(x)+ϵb(x)\hat{f}_{tree_b}(x) = f(x) + \epsilon_b(x)f^treeb(x)=f(x)+ϵb(x)
其中 f(x)f(x)f(x) 是真实的目标函数,ϵb(x)\epsilon_b(x)ϵb(x) 是第 bbb 个决策树的预测误差。
将每个决策树的预测代入装袋目标函数:
f^bagged_tree(x)=1B∑b=1B(f(x)+ϵb(x))\hat{f}_{bagged\_tree}(x) = \frac{1}{B} \sum_{b=1}^{B} (f(x) + \epsilon_b(x))f^bagged_tree(x)=B1b=1∑B(f(x)+ϵb(x))
进一步展开:
f^bagged_tree(x)=f(x)+1B∑b=1Bϵb(x)\hat{f}_{bagged\_tree}(x) = f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)f^bagged_tree(x)=f(x)+B1b=1∑Bϵb(x)
方差减少的关键计算
现在计算装袋决策树预测的方差:
Var(f^bagged_tree(x))=Var(f(x)+1B∑b=1Bϵb(x))Var(\hat{f}_{bagged\_tree}(x)) = Var(f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x))Var(f^bagged_tree(x))=Var(f(x)+B1b=1∑Bϵb(x))
由于 f(x)f(x)f(x) 是常数,其方差为0:
Var(f^bagged_tree(x))=Var(1B∑b=1Bϵb(x))Var(\hat{f}_{bagged\_tree}(x)) = Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x))Var(f^bagged_tree(x))=Var(B1b=1∑Bϵb(x))
如果决策树是独立的,那么误差 ϵb(x)\epsilon_b(x)ϵb(x) 是独立的随机变量。根据方差的性质:
Var(1B∑b=1Bϵb(x))=1B2∑b=1BVar(ϵb(x))Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x))Var(B1b=1∑Bϵb(x))=B21b=1∑BVar(ϵb(x))
假设每个决策树误差的方差都是 σ2\sigma^2σ2:
Var(1B∑b=1Bϵb(x))=1B2∑b=1Bσ2=σ2BVar(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} \sigma^2 = \frac{\sigma^2}{B}Var(B1b=1∑Bϵb(x))=B21b=1∑Bσ2=Bσ2
方差减少的效果
这个结果 σ2B\frac{\sigma^2}{B}Bσ2 告诉我们:
- 单个决策树:预测方差为 σ2\sigma^2σ2
- 装袋决策树:预测方差为 σ2B\frac{\sigma^2}{B}Bσ2
这意味着通过集成 BBB 个决策树,我们能够将预测方差减少到原来的 1B\frac{1}{B}B1。
2、协方差项的完整推导
对于随机变量 X1,X2,...,XBX_1, X_2, ..., X_BX1,X2,...,XB,其平均值的方差为:
Var(1B∑b=1BXb)=1B2∑b=1BVar(Xb)+2B2∑i<jCov(Xi,Xj)Var(\frac{1}{B} \sum_{b=1}^{B} X_b) = \frac{1}{B^2} \sum_{b=1}^{B} Var(X_b) + \frac{2}{B^2} \sum_{i<j} Cov(X_i, X_j)Var(B1b=1∑BXb)=B21b=1∑BVar(Xb)+B22i<j∑Cov(Xi,Xj)
应用到我们的情况:
Var(1B∑b=1Bϵb(x))=1B2∑b=1BVar(ϵb(x))+2B2∑i<jCov(ϵi(x),ϵj(x))Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x)) + \frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i(x), \epsilon_j(x))Var(B1b=1∑Bϵb(x))=B21b=1∑BVar(ϵb(x))+B22i<j∑Cov(ϵi(x),ϵj(x))
第一项:方差项
假设每个决策树误差的方差都相同,设为 σ2\sigma^2σ2:
Var(ϵb(x))=σ2对所有bVar(\epsilon_b(x)) = \sigma^2 \quad \text{对所有} \quad bVar(ϵb(x))=σ2对所有b
那么第一项变为:
1B2∑b=1BVar(ϵb(x))=1B2∑b=1Bσ2=σ2B\frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} \sigma^2 = \frac{\sigma^2}{B}B21b=1∑BVar(ϵb(x))=B21b=1∑Bσ2=Bσ2
第二项:协方差项
对于协方差项,我们需要考虑决策树间的相关性。假设所有误差对之间的协方差都相同,设为 ρσ2\rho \sigma^2ρσ2:
Cov(ϵi(x),ϵj(x))=ρσ2对所有i≠jCov(\epsilon_i(x), \epsilon_j(x)) = \rho \sigma^2 \quad \text{对所有} \quad i \neq jCov(ϵi(x),ϵj(x))=ρσ2对所有i=j
其中 ρ\rhoρ 是相关系数,∣ρ∣≤1|\rho| \leq 1∣ρ∣≤1。
那么协方差项变为:
2B2∑i<jCov(ϵi(x),ϵj(x))=2B2∑i<jρσ2\frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i(x), \epsilon_j(x)) = \frac{2}{B^2} \sum_{i<j} \rho \sigma^2B22i<j∑Cov(ϵi(x),ϵj(x))=B22i<j∑ρσ2
由于有 B(B−1)2\frac{B(B-1)}{2}2B(B−1) 对不同的 (i,j)(i,j)(i,j),所以:
2B2∑i<jρσ2=2B2⋅B(B−1)2⋅ρσ2=B−1Bρσ2\frac{2}{B^2} \sum_{i<j} \rho \sigma^2 = \frac{2}{B^2} \cdot \frac{B(B-1)}{2} \cdot \rho \sigma^2 = \frac{B-1}{B} \rho \sigma^2B22i<j∑ρσ2=B22⋅2B(B−1)⋅ρσ2=BB−1ρσ2
因此,装袋决策树预测的方差为:
Var(f^bagged_tree(x))=σ2B+B−1Bρσ2Var(\hat{f}_{bagged\_tree}(x)) = \frac{\sigma^2}{B} + \frac{B-1}{B} \rho \sigma^2Var(f^bagged_tree(x))=Bσ2+BB−1ρσ2
3、方差减少的完整效果
这个结果告诉我们装袋决策树的方差减少效果:
- 由于Bootstrap采样,决策树间存在一定相关性,ρ>0\rho > 0ρ>0
- 方差减少到 σ2B+B−1Bρσ2\frac{\sigma^2}{B} + \frac{B-1}{B} \rho \sigma^2Bσ2+BB−1ρσ2
与单个决策树的比较
单个决策树:预测方差为 σ2\sigma^2σ2
装袋决策树:预测方差为 σ2B+B−1Bρσ2\frac{\sigma^2}{B} + \frac{B-1}{B} \rho \sigma^2Bσ2+BB−1ρσ2
由于 ρ<1\rho < 1ρ<1 且 B>1B > 1B>1,所以:
σ2B+B−1Bρσ2<σ2\frac{\sigma^2}{B} + \frac{B-1}{B} \rho \sigma^2 < \sigma^2Bσ2+BB−1ρσ2<σ2
这证明了装袋决策树确实能够减少预测方差。
这个完整的推导揭示了:
- 方差减少:第一项 σ2B\frac{\sigma^2}{B}Bσ2 表示通过平均减少的方差
- 相关性影响:第二项 B−1Bρσ2\frac{B-1}{B} \rho \sigma^2BB−1ρσ2 表示基模型间相关性对方差的影响
- Bootstrap的作用:通过Bootstrap采样,ρ\rhoρ 被控制在较小范围内,确保方差减少效果
- 独立性假设:当 ρ=0\rho = 0ρ=0 时,方差减少效果最大;当 ρ=1\rho = 1ρ=1 时,没有方差减少效果
4、实际意义
这个数学推导揭示了装袋决策树的核心价值:通过平均多个独立决策树的预测,我们获得了比任何单个决策树都更稳定、更可靠的预测结果。这就是装袋决策树能够显著提升模型性能的数学基础。
三、装袋模型二:随机森林:增加特征随机性
随机森林是装袋决策树的重要改进,它在装袋的基础上增加了特征随机性,进一步提升了模型的多样性和泛化能力。这种方法的核心价值在于:通过双重随机性(样本随机性 + 特征随机性),随机森林能够构建出比装袋决策树更加多样化的模型集合。
1、核心目标函数求解推导过程
随机森林的目标函数为:
f^random_forest(x)=1B∑b=1Bf^treeb(x)\hat{f}_{random\_forest}(x) = \frac{1}{B} \sum_{b=1}^{B} \hat{f}_{tree_b}(x)f^random_forest(x)=B1b=1∑Bf^treeb(x)
每个决策树的预测可以分解为:
f^treeb(x)=f(x)+ϵb(x)\hat{f}_{tree_b}(x) = f(x) + \epsilon_b(x)f^treeb(x)=f(x)+ϵb(x)
其中:
- f(x)f(x)f(x) 是真实的目标函数(对所有决策树都相同)
- ϵb(x)\epsilon_b(x)ϵb(x) 是第 bbb 个决策树的预测误差
随机森林预测的分解
将每个决策树的预测代入目标函数:
f^random_forest(x)=1B∑b=1B(f(x)+ϵb(x))=f(x)+1B∑b=1Bϵb(x)\hat{f}_{random\_forest}(x) = \frac{1}{B} \sum_{b=1}^{B} (f(x) + \epsilon_b(x)) = f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)f^random_forest(x)=B1b=1∑B(f(x)+ϵb(x))=f(x)+B1b=1∑Bϵb(x)
方差计算的关键步骤
计算随机森林预测的方差:
Var(f^random_forest(x))=Var(f(x)+1B∑b=1Bϵb(x))Var(\hat{f}_{random\_forest}(x)) = Var(f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x))Var(f^random_forest(x))=Var(f(x)+B1b=1∑Bϵb(x))
由于 f(x)f(x)f(x) 是常数,其方差为0:
Var(f^random_forest(x))=Var(1B∑b=1Bϵb(x))Var(\hat{f}_{random\_forest}(x)) = Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x))Var(f^random_forest(x))=Var(B1b=1∑Bϵb(x))
方差公式的完整展开
对于随机变量 X1,X2,...,XBX_1, X_2, ..., X_BX1,X2,...,XB,其平均值的方差为:
Var(1B∑b=1BXb)=1B2∑b=1BVar(Xb)+2B2∑i<jCov(Xi,Xj)Var(\frac{1}{B} \sum_{b=1}^{B} X_b) = \frac{1}{B^2} \sum_{b=1}^{B} Var(X_b) + \frac{2}{B^2} \sum_{i<j} Cov(X_i, X_j)Var(B1b=1∑BXb)=B21b=1∑BVar(Xb)+B22i<j∑Cov(Xi,Xj)
应用到我们的情况:
Var(1B∑b=1Bϵb(x))=1B2∑b=1BVar(ϵb(x))+2B2∑i<jCov(ϵi(x),ϵj(x))Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x)) + \frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i(x), \epsilon_j(x))Var(B1b=1∑Bϵb(x))=B21b=1∑BVar(ϵb(x))+B22i<j∑Cov(ϵi(x),ϵj(x))
简化假设
假设所有决策树误差的方差都相同,设为 σ2\sigma^2σ2:
Var(ϵb(x))=σ2对所有bVar(\epsilon_b(x)) = \sigma^2 \quad \text{对所有} \quad bVar(ϵb(x))=σ2对所有b
那么第一项变为:
1B2∑b=1BVar(ϵb(x))=1B2∑b=1Bσ2=σ2B\frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} \sigma^2 = \frac{\sigma^2}{B}B21b=1∑BVar(ϵb(x))=B21b=1∑Bσ2=Bσ2
协方差项的简化
对于协方差项,我们可以进一步简化。假设所有误差对之间的协方差都相同,设为 ρσ2\rho \sigma^2ρσ2:
Cov(ϵi(x),ϵj(x))=ρσ2对所有i≠jCov(\epsilon_i(x), \epsilon_j(x)) = \rho \sigma^2 \quad \text{对所有} \quad i \neq jCov(ϵi(x),ϵj(x))=ρσ2对所有i=j
那么协方差项变为:
2B2∑i<jCov(ϵi(x),ϵj(x))=2B2∑i<jρσ2\frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i(x), \epsilon_j(x)) = \frac{2}{B^2} \sum_{i<j} \rho \sigma^2B22i<j∑Cov(ϵi(x),ϵj(x))=B22i<j∑ρσ2
由于有 B(B−1)2\frac{B(B-1)}{2}2B(B−1) 对(种类) 不同的 (i,j)(i,j)(i,j),所以:
2B2∑i<jρσ2=2B2⋅B(B−1)2⋅ρσ2=B−1Bρσ2\frac{2}{B^2} \sum_{i<j} \rho \sigma^2 = \frac{2}{B^2} \cdot \frac{B(B-1)}{2} \cdot \rho \sigma^2 = \frac{B-1}{B} \rho \sigma^2B22i<j∑ρσ2=B22⋅2B(B−1)⋅ρσ2=BB−1ρσ2
最终方差公式
因此,随机森林预测的方差为:
Var(f^random_forest(x))=σ2B+B−1Bρσ2Var(\hat{f}_{random\_forest}(x)) = \frac{\sigma^2}{B} + \frac{B-1}{B} \rho \sigma^2Var(f^random_forest(x))=Bσ2+BB−1ρσ2
2、与装袋决策树的比较
装袋决策树:只使用样本随机性,基模型间仍有一定相关性,相关系数设为 ρbag\rho_{bag}ρbag
随机森林:使用双重随机性(样本 + 特征),基模型间相关性更小,相关系数设为 ρrf\rho_{rf}ρrf
由于特征随机性进一步减少了基模型间的相关性,所以:
ρrf<ρbag\rho_{rf} < \rho_{bag}ρrf<ρbag
因此随机森林的方差更小:
Var(f^random_forest(x))<Var(f^bagged_tree(x))Var(\hat{f}_{random\_forest}(x)) < Var(\hat{f}_{bagged\_tree}(x))Var(f^random_forest(x))<Var(f^bagged_tree(x))
这个推导告诉我们:
- 方差减少:第一项 σ2B\frac{\sigma^2}{B}Bσ2 表示通过平均减少的方差
- 相关性影响:第二项 B−1Bρσ2\frac{B-1}{B} \rho \sigma^2BB−1ρσ2 表示基模型间相关性对方差的影响
- 随机森林优势:通过特征随机性,ρrf\rho_{rf}ρrf 比 ρbag\rho_{bag}ρbag 更小,因此方差减少效果更强
这就是随机森林比装袋决策树更有效的数学基础。
3、双重随机性的协同效应
随机森林通过双重随机性实现了比装袋决策树更强的方差减少:
-
样本随机性:通过Bootstrap采样,每个决策树使用不同的训练数据子集,减少了数据层面的相关性。
-
特征随机性:通过随机特征选择,每个决策树使用不同的特征子集,减少了模型层面的相关性。
这两种随机性的结合产生了协同效应:样本随机性减少了数据相关性,特征随机性减少了模型相关性,两者结合产生了比单一随机性更强的独立性。
Bootstrap是一种重采样技术,它通过从原始数据集中有放回地随机采样来创建多个新的数据集,用于估计统计量的分布和不确定性。
4、实际意义
这个数学推导揭示了随机森林的核心价值:通过双重随机性,随机森林获得了比装袋决策树更强的方差减少效果,从而提供了更稳定、更可靠的预测结果。这就是为什么随机森林在大多数情况下比装袋决策树表现更好的数学基础。
更重要的是,随机森林不仅保持了装袋决策树的所有优势,还通过特征随机性进一步提升了模型的泛化能力和预测稳定性,使其成为集成学习中最成功的算法之一。
四、装袋模型三:极端随机树:再增加分裂点随机性
极端随机树(Extremely Randomized Trees)是随机森林的进一步改进,它在随机森林的基础上增加了分裂点随机性,实现了三重随机性机制。这种方法的核心价值在于:通过三重随机性(样本随机性 + 特征随机性 + 分裂点随机性),极端随机树能够构建出比随机森林更加独立和多样化的模型集合。
1、核心目标函数求解推导过程
极端随机树的目标函数为:
f^extra_trees(x)=1B∑b=1Bf^treeb(x)\hat{f}_{extra\_trees}(x) = \frac{1}{B} \sum_{b=1}^{B} \hat{f}_{tree_b}(x)f^extra_trees(x)=B1b=1∑Bf^treeb(x)
每个决策树的预测可以分解为:
f^treeb(x)=f(x)+ϵb(x)\hat{f}_{tree_b}(x) = f(x) + \epsilon_b(x)f^treeb(x)=f(x)+ϵb(x)
其中:
- f(x)f(x)f(x) 是真实的目标函数(对所有决策树都相同)
- ϵb(x)\epsilon_b(x)ϵb(x) 是第 bbb 个决策树的预测误差
极端随机树预测的分解
将每个决策树的预测代入目标函数:
f^extra_trees(x)=1B∑b=1B(f(x)+ϵb(x))=f(x)+1B∑b=1Bϵb(x)\hat{f}_{extra\_trees}(x) = \frac{1}{B} \sum_{b=1}^{B} (f(x) + \epsilon_b(x)) = f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)f^extra_trees(x)=B1b=1∑B(f(x)+ϵb(x))=f(x)+B1b=1∑Bϵb(x)
方差计算的关键步骤
计算极端随机树预测的方差:
Var(f^extra_trees(x))=Var(f(x)+1B∑b=1Bϵb(x))Var(\hat{f}_{extra\_trees}(x)) = Var(f(x) + \frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x))Var(f^extra_trees(x))=Var(f(x)+B1b=1∑Bϵb(x))
由于 f(x)f(x)f(x) 是常数,其方差为0:
Var(f^extra_trees(x))=Var(1B∑b=1Bϵb(x))Var(\hat{f}_{extra\_trees}(x)) = Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x))Var(f^extra_trees(x))=Var(B1b=1∑Bϵb(x))
方差公式的完整展开
对于随机变量 X1,X2,...,XBX_1, X_2, ..., X_BX1,X2,...,XB,其平均值的方差为:
Var(1B∑b=1BXb)=1B2∑b=1BVar(Xb)+2B2∑i<jCov(Xi,Xj)Var(\frac{1}{B} \sum_{b=1}^{B} X_b) = \frac{1}{B^2} \sum_{b=1}^{B} Var(X_b) + \frac{2}{B^2} \sum_{i<j} Cov(X_i, X_j)Var(B1b=1∑BXb)=B21b=1∑BVar(Xb)+B22i<j∑Cov(Xi,Xj)
应用到我们的情况:
Var(1B∑b=1Bϵb(x))=1B2∑b=1BVar(ϵb(x))+2B2∑i<jCov(ϵi(x),ϵj(x))Var(\frac{1}{B} \sum_{b=1}^{B} \epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x)) + \frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i(x), \epsilon_j(x))Var(B1b=1∑Bϵb(x))=B21b=1∑BVar(ϵb(x))+B22i<j∑Cov(ϵi(x),ϵj(x))
简化假设
假设所有决策树误差的方差都相同,设为 σ2\sigma^2σ2:
Var(ϵb(x))=σ2对所有bVar(\epsilon_b(x)) = \sigma^2 \quad \text{对所有} \quad bVar(ϵb(x))=σ2对所有b
那么第一项变为:
1B2∑b=1BVar(ϵb(x))=1B2∑b=1Bσ2=σ2B\frac{1}{B^2} \sum_{b=1}^{B} Var(\epsilon_b(x)) = \frac{1}{B^2} \sum_{b=1}^{B} \sigma^2 = \frac{\sigma^2}{B}B21b=1∑BVar(ϵb(x))=B21b=1∑Bσ2=Bσ2
协方差项的简化
对于协方差项,我们可以进一步简化。假设所有误差对之间的协方差都相同,设为 ρσ2\rho \sigma^2ρσ2:
Cov(ϵi(x),ϵj(x))=ρσ2对所有i≠jCov(\epsilon_i(x), \epsilon_j(x)) = \rho \sigma^2 \quad \text{对所有} \quad i \neq jCov(ϵi(x),ϵj(x))=ρσ2对所有i=j
那么协方差项变为:
2B2∑i<jCov(ϵi(x),ϵj(x))=2B2∑i<jρσ2\frac{2}{B^2} \sum_{i<j} Cov(\epsilon_i(x), \epsilon_j(x)) = \frac{2}{B^2} \sum_{i<j} \rho \sigma^2B22i<j∑Cov(ϵi(x),ϵj(x))=B22i<j∑ρσ2
由于有 B(B−1)2\frac{B(B-1)}{2}2B(B−1) 对(种类) 不同的 (i,j)(i,j)(i,j),所以:
2B2∑i<jρσ2=2B2⋅B(B−1)2⋅ρσ2=B−1Bρσ2\frac{2}{B^2} \sum_{i<j} \rho \sigma^2 = \frac{2}{B^2} \cdot \frac{B(B-1)}{2} \cdot \rho \sigma^2 = \frac{B-1}{B} \rho \sigma^2B22i<j∑ρσ2=B22⋅2B(B−1)⋅ρσ2=BB−1ρσ2
最终方差公式
因此,极端随机树预测的方差为:
Var(f^extra_trees(x))=σ2B+B−1Bρσ2Var(\hat{f}_{extra\_trees}(x)) = \frac{\sigma^2}{B} + \frac{B-1}{B} \rho \sigma^2Var(f^extra_trees(x))=Bσ2+BB−1ρσ2
与随机森林的比较
随机森林:使用双重随机性(样本 + 特征),基模型间相关性较小,相关系数设为 ρrf\rho_{rf}ρrf
极端随机树:使用三重随机性(样本 + 特征 + 分裂点),基模型间相关性最小,相关系数设为 ρet\rho_{et}ρet
由于分裂点随机性进一步减少了基模型间的相关性,所以:
ρet<ρrf<ρbag\rho_{et} < \rho_{rf} < \rho_{bag}ρet<ρrf<ρbag
因此极端随机树的方差最小:
Var(f^extra_trees(x))<Var(f^random_forest(x))<Var(f^bagged_tree(x))Var(\hat{f}_{extra\_trees}(x)) < Var(\hat{f}_{random\_forest}(x)) < Var(\hat{f}_{bagged\_tree}(x))Var(f^extra_trees(x))<Var(f^random_forest(x))<Var(f^bagged_tree(x))
这个推导告诉我们:
- 方差减少:第一项 σ2B\frac{\sigma^2}{B}Bσ2 表示通过平均减少的方差
- 相关性影响:第二项 B−1Bρσ2\frac{B-1}{B} \rho \sigma^2BB−1ρσ2 表示基模型间相关性对方差的影响
- 极端随机树优势:通过分裂点随机性,ρet\rho_{et}ρet 比 ρrf\rho_{rf}ρrf 更小,因此方差减少效果最强
这就是极端随机树比随机森林更有效的数学基础。
2、三重随机性的协同效应
极端随机树通过三重随机性实现了最强的方差减少:
-
样本随机性:通过Bootstrap采样,每个决策树使用不同的训练数据子集,减少了数据层面的相关性。
-
特征随机性:通过随机特征选择,每个决策树使用不同的特征子集,减少了模型层面的相关性。
-
分裂点随机性:通过随机选择分裂点,每个决策树在相同的特征上也可能产生不同的分裂,进一步减少了模型间的相关性。
这三种随机性的结合产生了最强的协同效应:样本随机性减少了数据相关性,特征随机性减少了模型相关性,分裂点随机性减少了结构相关性,三者结合产生了最强的模型独立性。
分裂点随机性是极端随机树的核心创新,它通过随机选择特征的分裂阈值,而不是寻找最优分裂点,进一步增加了决策树间的差异性。
3、实际意义
这个数学推导揭示了极端随机树的核心价值:通过三重随机性,极端随机树获得了比随机森林更强的方差减少效果,从而提供了最稳定、最可靠的预测结果。这就是为什么极端随机树在某些情况下比随机森林表现更好的数学基础。
更重要的是,极端随机树不仅保持了随机森林的所有优势,还通过分裂点随机性进一步提升了模型的泛化能力和预测稳定性,使其成为集成学习中最具随机性的算法之一。
极端随机树的独特优势
- 更强的独立性:三重随机性确保了基模型间最强的独立性
- 更快的训练速度:随机选择分裂点避免了寻找最优分裂点的计算开销
- 更好的泛化能力:极致的随机性有效防止了过拟合
- 更强的鲁棒性:对噪声和异常值更加不敏感
五、三种模型的对比与应用
1、对比
特性 | 装袋决策树 | 随机森林 | 极端随机树 |
---|---|---|---|
随机性类型 | 样本随机 | 样本+特征随机 | 样本+特征+阈值随机 |
训练速度 | 中等 | 中等 | 快 |
预测精度 | 好 | 很好 | 很好 |
抗过拟合 | 中等 | 强 | 很强 |
特征重要性 | 无 | 有 | 有 |
适用场景 | 一般集成 | 高维数据 | 复杂数据 |
2、三种装袋模型的使用场景
装袋决策树:稳定可靠的通用选择
装袋决策树适用于相对简单且稳定的数据场景。从业务角度看,它特别适合金融风险评估,如信用卡违约预测和贷款风险评估。在这些应用中,预测的稳定性比极致的精度更重要,装袋决策树的样本随机性提供了足够稳定的预测结果。
从技术角度看,装袋决策树适合中等维度的数据集,通常特征数量在100个以下。这种设计使得模型能够有效处理业务数据,同时避免维度灾难问题。装袋决策树在医疗诊断辅助领域也表现出色,能够提供稳定可靠的预测结果,同时保持模型的可解释性。
随机森林:高维数据的强大解决方案
随机森林特别适用于高维数据分析场景。从统计学角度看,随机森林的特征随机性有效处理了高维数据中的维度灾难问题,通过随机选择特征子集,避免了某些特征过度影响模型决策的问题。这使得随机森林在基因表达数据分析、图像特征分类等高维数据应用中表现出色。
从机器学习角度看,随机森林在推荐系统中表现优异。电商推荐、内容推荐、广告投放等应用需要处理用户行为的高维特征数据,随机森林的双重随机性提供了多样化的推荐结果,同时特征重要性分析帮助理解用户偏好模式。
极端随机树:复杂数据的最优选择
极端随机树适用于最复杂和噪声最大的数据场景。从计算效率角度看,极端随机树的随机分裂策略避免了寻找最优分裂点的计算开销,大大提高了训练速度。这使得极端随机树特别适合实时预测系统,如股票价格预测、天气预测、交通流量预测等需要快速模型更新的场景。
从鲁棒性角度看,极端随机树的三重随机性提供了最强的抗噪声能力。在传感器数据分析、工业过程监控、环境监测等应用中,数据通常包含大量噪声,极端随机树的极致随机性设计确保了模型不会过度拟合噪声,从而提供了最可靠的预测结果。