未采用的评估方式
随机林不需要验证数据集。大多数随机森林使用一种称为“袋外评估”(OOB 评估)的技术来评估模型的质量。out-of-bag-evaluationout-of-bag-evaluationout-of-bag-evaluationOOB 评估会将训练集视为位于交叉验证的测试集上。
如前所述,随机森林中的每个决策树通常基于大约 67% 的训练样本进行训练。因此,每个决策树不会看到约 33% 的训练样本。OOB 评估的核心理念如下:
- 评估训练集上的随机森林。
- 对于每个样本,请仅使用在训练期间没有看到该样本的决策树。
下表展示了使用 6 个样本训练 3 个决策树的随机森林的 OOB 评估。(可以,这与“装箱”部分中的表相同)。下表显示了 OOB 评估期间,哪个决策树与哪个示例搭配使用。
表 7. OOB 评估 - 数字表示在训练指定样本期间使用指定训练样本的次数
训练示例 | OOB 评估示例 | ||||||
---|---|---|---|---|---|---|---|
#1 | #2 | #3 | #4 | #5 | 6 | ||
原始数据集 | 1 | 1 | 1 | 1 | 1 | 1 | |
决策树 1 | 1 | 1 | 0 | 2 | 1 | 1 | #3 |
决策树 2 | 3 | 0 | 1 | 0 | 2 | 0 | 第 2 条、第 4 条和第 6 条 |
决策树 3 | 0 | 1 | 3 | 1 | 0 | 1 | 1 和 5 |
在表 7 所示的示例中,训练示例 1 的 OOB 预测将使用决策树 3 来计算(因为决策树 1 和决策树 2 将此示例用于训练)。实际上,在规模合理的数据集和少量决策树上,所有示例都具有 OOB 预测。
YDF 代码
在 YDF 中,如果模型是使用 compute_oob_performances=True
训练的,则训练日志中会提供 OOB 评估。OOB 评估在计算随机森林模型的排列变量重要性方面也很有效。请注意,在变量重要性中,排列变量重要性通过衡量模型质量在随机打乱变量时的下降情况来衡量变量的重要性。随机林“OOB 排列变量重要性”是使用 OOB 评估计算出的排列变量重要性。
YDF 代码
在 YDF 中,如果模型是使用 compute_oob_variable_importances=True
训练的,则训练日志中会提供 OOB 排列变量重要性。