本单元将介绍以下主题:
- 解读随机森林
 - 训练随机森林
 - 随机森林的优缺点
 
解读随机森林
与决策树相比,随机森林的解读更为复杂。随机森林包含使用随机噪声训练的决策树。因此,对决策树结构做出判断更难。不过,我们可以通过多种方式解读随机森林模型。
解释随机森林的方法之一是,只需使用 CART 算法训练和解释决策树即可。由于随机森林和 CART 都是使用相同的核心算法进行训练的,因此它们“共享数据集的相同全局视图”。此选项非常适合简单的数据集,并且有助于理解模型的整体解读。
变量重要性是另一种可解释性方法。例如,下表对基于美国人口普查局数据集(也称为成人)训练的随机森林模型的不同特征的变量重要性进行了排名。
表 8. 14 个不同特征的变量重要性。
| 功能 | 总分 | 准确度平均下降幅度 | AUC 平均下降幅度 | 平均最小深度 | 节点数 | PR-AUC 平均下降幅度 | 以 root 身份运行 Num | 
|---|---|---|---|---|---|---|---|
| 关系 | 4203592.6  | 
   0.0045  | 
   0.0172  | 
   4.970  | 
   57040  | 
   0.0093  | 
   1095  | 
  
| capital_gain | 3363045.1  | 
   0.0199  | 
   0.0194  | 
   2.852  | 
   56468  | 
   0.0655  | 
   457  | 
  
| marital_status | 3128996.3  | 
   0.0018  | 
   0.0230  | 
   6.633  | 
   52391  | 
   0.0107  | 
   750  | 
  
| 年龄 | 2520658.8  | 
   0.0065  | 
   0.0074  | 
   4.969  | 
   356784  | 
   0.0033  | 
   200  | 
  
| 教育 | 2015905.4  | 
   0.0018  | 
   -0.0080  | 
   5.266  | 
   115751  | 
   -0.0129  | 
   205  | 
  
| 职业 | 1939409.3  | 
   0.0063  | 
   -0.0040  | 
   5.017  | 
   221935  | 
   -0.0060  | 
   62  | 
  
| education_num | 1673648.4  | 
   0.0023  | 
   -0.0066  | 
   6.009  | 
   58303  | 
   -0.0080  | 
   197  | 
  
| fnlwgt | 1564189.0  | 
   -0.0002  | 
   -0.0038  | 
   9.969  | 
   431987  | 
   -0.0049  | 
   0  | 
  
| hours_per_week | 1333976.3  | 
   0.0030  | 
   0.0007  | 
   6.393  | 
   206526  | 
   -0.0031  | 
   20  | 
  
| capital_loss | 866863.8  | 
   0.0060  | 
   0.0020  | 
   8.076  | 
   58531  | 
   0.0118  | 
   1  | 
  
| workclass | 644208.4  | 
   0.0025  | 
   -0.0019  | 
   9.898  | 
   132196  | 
   -0.0023  | 
   0  | 
  
| native_country | 538841.2  | 
   0.0001  | 
   -0.0016  | 
   9.434  | 
   67211  | 
   -0.0058  | 
   0  | 
  
| sex | 226049.3  | 
   0.0002  | 
   0.0002  | 
   10.911  | 
   37754  | 
   -0.0011  | 
   13  | 
  
| race | 168180.9  | 
   -0.0006  | 
   -0.0004  | 
   11.571  | 
   42262  | 
   -0.0031  | 
   0  | 
  
如您所见,不同变量重要性定义具有不同的量级,可能会导致特征排名出现差异。
对于决策树(请参阅“购物车 | 变量重要性”部分)和随机森林,系统会以类似的方式计算来自模型结构的变量重要性(例如,上表中的总得分、平均最小深度、节点数和作为根的节点数)。
排列变量重要性(例如,上表中 {accuracy, auc, pr-auc} 的平均下降幅度)是与模型无关的衡量指标,可对具有验证数据集的任何机器学习模型进行计算。不过,对于随机森林,您可以使用袋外评估来计算排列变量重要性,而无需使用验证数据集。
SHAP(SHapley Additive exPlanations)是一种与模型无关的方法,用于解释个别预测或模型级解释。(如需简要了解与模型无关的解释,请参阅 Molnar 的《可解释机器学习》。)通常,计算 SHAP 的开销很高,但对于决策树,可以显著加快计算速度,因此它是解读决策树的好方法。
用法示例
在上一课中,我们通过调用 tfdf.keras.CartModel 在小型数据集上训练了 CART 决策树。如需训练随机森林模型,只需将 tfdf.keras.CartModel 替换为 tfdf.keras.RandomForestModel:
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
优缺点
本部分简要介绍了随机森林的优缺点。
优点:
- 与决策树一样,随机森林支持原生数值特征和分类特征,通常不需要特征预处理。
 - 由于决策树是独立的,因此可以并行训练随机森林。因此,您可以快速训练随机森林。
 - 随机森林具有默认参数,通常可提供出色的结果。调整这些参数通常对模型没有太大影响。
 
缺点:
- 由于决策树不会被修剪,因此它们可能很大。节点数超过 100 万的模型很常见。随机森林的大小(以及推理速度)有时会成为问题。
 - 随机森林无法学习和重复使用内部表示法。每个决策树(以及每个决策树的每个分支)都必须重新学习数据集模式。在某些数据集中(尤其是非表格数据集,例如图片、文本),这会导致随机森林的结果不如其他方法。