我将尝试解释一下:
假设我们的训练数据集由 T 表示,并且假设数据集有 M 个特征(或属性或变量)。
T = {(X1,y1), (X2,y2), ... (Xn, yn)}
and
Xi is input vector {xi1, xi2, ... xiM}
yi is the label (or output or class).
射频总结:
随机森林算法是主要基于两种方法的分类器 -
假设我们决定有S
我们森林中的树木数量,然后我们首先创建S
的数据集"same size as original"
通过对 T 中的数据进行随机重采样并进行替换而创建(每个数据集 n 次)。这将导致{T1, T2, ... TS}
数据集。其中每一个都称为引导数据集。由于每个数据集都有“替换”Ti
Ti 可能有重复的数据记录,并且 Ti 可能会丢失原始数据集中的多个数据记录。这就是所谓的Bootstrapping
。 (en.wikipedia.org/wiki/Bootstrapping_(统计))
Bagging 是采用引导程序然后聚合在每个引导程序上学习到的模型的过程。
现在,RF创造了S
树木和用途m (=sqrt(M) or =floor(lnM+1))
随机子特征M
创建任何树的可能功能。这称为随机子空间方法。
所以对于每个Ti
引导数据集创建一棵树Ki
。如果你想对一些输入数据进行分类D = {x1, x2, ..., xM}
你让它穿过每棵树并产生S
输出(每棵树一个)可以表示为Y = {y1, y2, ..., ys}
。最终预测是对该组的多数投票。
袋外错误:
创建分类器后(S
树),对于每个(Xi,yi)
在原始训练集中,即T
, 全选Tk
其中不包括(Xi,yi)
。请注意,该子集是一组引导数据集,其中不包含原始数据集中的特定记录。该集合称为袋外示例。有n
这样的子集(原始数据集 T 中的每个数据记录一个)。 OOB 分类器仅是投票的聚合Tk
使得它不包含(xi,yi)
.
泛化误差的袋外估计是袋外分类器在训练集上的错误率(与已知的比较)yi
's).
它为什么如此重要?
The study of error estimates for bagged classifiers in Breiman
[1996b] https://www.stat.berkeley.edu/~breiman/OOBestimation.pdf, gives empirical evidence to show that the out-of-bag estimate
is as accurate as using a test set of the same size as the training
set. Therefore, using the out-of-bag error estimate removes the need
for a set aside test set.1 https://doi.org/10.1023/A:1010933404324.
(感谢@Rudolf 的更正。他的评论如下。)