随机森林中的袋外错误是什么?

随机森林中的袋外错误是什么? 它是在随机森林中找到正确树木数量的最佳参数吗?

70779 次浏览

在 Breiman 最初实现的随机森林算法中,每棵树的训练约占总训练数据的2/3。随着森林的构建,每棵树都可以在未用于构建该树的样本上进行测试(类似于省略一个交叉验证)。这是袋外误差估计-随机森林的内部误差估计,因为它正在建设。

我试着解释一下:

假设我们的训练数据集由 T 表示,假设数据集具有 M 个特征(或属性或变量)。

T = {(X1,y1), (X2,y2), ... (Xn, yn)}

还有

Xi is input vector {xi1, xi2, ... xiM}


yi is the label (or output or class).

射频讯号摘要:

随机森林算法是一种主要基于两种方法的分类器-

  • 装袋
  • 随机子空间方法

假设我们决定在我们的森林中有 S数量的树,那么我们首先创建 "same size as original"S数据集,这些数据集是通过随机重采样 T 中的数据(每个数据集 n 次)创建的。这将导致 {T1, T2, ... TS}数据集。其中的每一个都称为引导数据集。由于“用替换”,每个数据集 Ti可能有重复的数据记录,并且 Ti 可能会从原始数据集中丢失几个数据记录。这就是 Bootstrapping。( en.wikipedia.org/wiki/bootstrapping_(statistics))

装袋的过程是采取自举,然后汇总每个自举学到的模型。

现在,RF 创建 S树,并使用 m (=sqrt(M) or =floor(lnM+1))随机子特征从 M可能的特征创建任何树。这叫随机子空间方法。

因此,对于每个 Ti引导数据集,您创建一个树 Ki。如果你想分类一些输入数据 D = {x1, x2, ..., xM},你让它通过每棵树,并产生 S输出(每棵树一个) ,这可以由 Y = {y1, y2, ..., ys}表示。最后的预测是大多数人投票决定。

袋外错误:

在创建分类器(S树)之后,对于原始训练集(即 T)中的每个 (Xi,yi),选择所有不包括 (Xi,yi)Tk。注意,这个子集是一组 boostrap 数据集,它不包含来自原始数据集的特定记录。这个集合称为袋外示例。有 n这样的子集(原始数据集 T 中的每个数据记录一个子集)。OOB 分类器是仅对 Tk进行投票的聚合,因此它不包含 (xi,yi)

袋外分类器对泛化误差的估计是训练集上袋外分类器的错误率(与已知的 yi进行比较)。

为什么这很重要?

在 Breiman 中对袋装分类器的误差估计的研究 [1996年 b ] 给出经验证明,以显示袋外估计 与使用与训练相同大小的测试集一样精确 因此,使用袋外误差估计可以消除这种需要 对于一个预留的测试集。”rel = “ noReferrer”> 1

(感谢@Rudolf 的纠正,他的评论如下。)