Language agnostic 什么是随机森林中的包外误差?
什么是随机森林中的包外误差?Language agnostic 什么是随机森林中的包外误差?,language-agnostic,machine-learning,classification,random-forest,Language Agnostic,Machine Learning,Classification,Random Forest,什么是随机森林中的包外误差? 它是在随机林中找到正确数量的树的最佳参数吗?在Breiman最初实现的随机林算法中,每棵树都是根据大约2/3的总训练数据进行训练的。随着森林的建立,每棵树都可以在未用于构建该树的样本上进行测试(类似于不进行交叉验证)。这是现成的误差估计-随机林在构建时的内部误差估计 我将尝试解释: 假设我们的训练数据集用T表示,假设数据集有M个特征(或属性或变量) T={(X1,y1),(X2,y2),…(Xn,yn)} 及 RF概述: 随机森林算法是一种主要基于两种方法的分类器-
它是在随机林中找到正确数量的树的最佳参数吗?在Breiman最初实现的随机林算法中,每棵树都是根据大约2/3的总训练数据进行训练的。随着森林的建立,每棵树都可以在未用于构建该树的样本上进行测试(类似于不进行交叉验证)。这是现成的误差估计-随机林在构建时的内部误差估计 我将尝试解释: 假设我们的训练数据集用T表示,假设数据集有M个特征(或属性或变量)
T={(X1,y1),(X2,y2),…(Xn,yn)}
及
RF概述:
随机森林算法是一种主要基于两种方法的分类器-
- 装袋
- 随机子空间法李>
S
数量的树,那么我们首先创建S
数据集,其大小与原始数据集的大小相同,
是通过对T中的数据进行随机重采样并进行替换而创建的(每个数据集n次)。这将产生{T1,T2,…TS}
数据集。其中每一个都称为引导数据集。由于“替换”,每个数据集Ti
都可能有重复的数据记录,并且Ti可能会从原始数据集中丢失多个数据记录。这被称为引导
。(en.wikipedia.org/wiki/Bootstrapping(统计))
Bagging是一个获取引导的过程&然后将在每个引导中学习到的模型聚合起来
现在,RF创建S
树,并使用m(=sqrt(m)或=floor(lnM+1))
从m
可能的特征中随机创建任何树。这就是所谓的随机子空间方法
因此,对于每个Ti
引导数据集,您将创建一个树Ki
。如果您想对一些输入数据进行分类D={x1,x2,…,xM}
可以让它通过每一棵树,并产生S
输出(每棵树一个),输出可以用Y={y1,y2,…,ys}
表示。最后的预测是这一组的多数票
出包错误:
在创建分类器(S
树)后,对于原始训练集中的每个(Xi,yi)
,即T
,选择不包括(Xi,yi)
的所有Tk
。注意,这个子集是一组boostrap数据集,不包含原始数据集中的特定记录。这一套被称为现成的例子。有n
这样的子集(原始数据集T中的每个数据记录一个)。OOB分类器是仅对Tk
投票的聚合,因此它不包含(xi,yi)
泛化误差的包外估计是训练集上的包外分类器的错误率(将其与已知的yi
进行比较)
为什么它很重要
年对袋装分类器的误差估计进行了研究,给出了实证证据,证明了袋外估计的正确性
与使用与培训相同大小的测试集一样准确
设置因此,使用出袋误差估计消除了需要
对于备用测试集
(感谢@Rudolf的更正。下面是他的评论。)如果这个问题不是针对具体实施的,您可以将您的问题发布在Thank@bourneli上,我同意答案简洁时有用性更好,但我着重于将答案放在上下文中,这占用了大部分空间。非常好的解释,但是有一个小错误——用替换抽样,你称之为“打包”,实际上被称为“自举”。()Bagging是获取引导的过程&然后将在每个引导中学习到的模型聚合起来。())你好,Alex,基本上如上所述-我们创建了一个OOB分类器,它一次提取一条记录(用(Xi,yi)
从所有可用的训练记录(用T
表示)-查找所有缺少该记录的引导样本或数据集(例如T3
,T7
,T8
,T9
)-我们在我们的森林中运行当前记录(Xi,yi)
,但只从对应于没有此记录的引导样本的树中计算选票(即K3
,K7
,K8
,K9
)。如果还不清楚,请告诉我。现在,RF创建s树,并使用m个可能的功能中的m…随机子功能来创建任何树。
不是创建整个树,而是创建树中的每个节点。据我所知,每次它必须创建分支节点时,它都会对要使用的m
功能进行采样。Excellent解释。也许值得一提的是:根据数据的结构,OOB误差估计可能与仅使用整个数据的一小部分进行训练时预测的误差不同。这可能会影响一个人对适当数量的树的决定。例如,如果你的数据由100个单独实验的1000个数据点组成,则如果只在实验1-80上进行训练并在81-100上进行验证,则e分类器的精度将不同于OOB方法,OOB方法中所有100个实验的所有数据点基本上都是随机的。
Xi is input vector {xi1, xi2, ... xiM}
yi is the label (or output or class).