共计 1840 个字符,预计需要花费 5 分钟才能阅读完成。
摘要
随机森林是集成算法最前沿的代表之一。随机森林是 Bagging 的降级,它和 Bagging 的次要区别在于引入了随机特征选择。即:在每棵决策树抉择宰割点时,随机森林会先随机抉择一个特色子集,而后在这个子集上进行传统的宰割点抉择。
随机森林
随机森林的结构过程:如果有 N 个样本,则有放回的随机抉择 N 个样本(每次随机抉择一个样本,而后返回持续抉择)。这抉择好了的 N 个样本用来训练一个决策树,作为决策树根节点处的样本。
当每个样本有 M 个属性时,在决策树的每个节点须要决裂时,随机从这 M 个属性当选取出 m 个属性,满足条件 m << M。而后从这 m 个属性中采纳某种策略(比如说信息增益)来抉择 1 个属性作为该节点的决裂属性。
决策树造成过程中每个节点都要依照下面步骤来决裂(很容易了解,如果下一次该节点选出来的那一个属性是刚刚其父节点决裂时用过的属性,则该节点曾经达到了叶子节点,毋庸持续决裂了)。始终到不可能再决裂为止。留神整个决策树造成过程中没有进行剪枝。
依照上述步骤建设大量的决策树,这样就形成了随机森林了。在建设每一棵决策树的过程中,有两点须要留神采样与齐全决裂。
首先是两个随机采样的过程,random forest 对输出的数据要进行行、列的采样。对于行采样,采纳有放回的形式,也就是在采样失去的样本汇合中,可能有反复的样本。假如输出样本为 N 个,那么采样的样本也为 N 个。这样使得在训练的时候,每一棵树的输出样本都不是全副的样本,使得绝对不容易呈现 over-fitting。而后进行列采样,从 M 个 feature 中,抉择 m 个(m << M)。
之后就是对采样之后的数据应用齐全决裂的形式建设出决策树,这样决策树的某一个叶子节点要么是无奈持续决裂的,要么外面的所有样本的都是指向的同一个分类。个别很多的决策树算法都一个重要的步骤——剪枝,然而这里不这样干,因为之前的两个随机采样的过程保障了随机性,所以就算不剪枝,也不会呈现 over-fitting。
输出:数据集 D ={(x1,y1),(x2,y2),…,(xm,ym)};
特色子集大小 K。
步骤:
Nß给定数据集 D 构建节点;
If 所有样本属于一个类别 thenreturn N;
Fß能够持续分类的特色汇合;
If F 为空 thenreturn N;
Fiß从 F 中随机抉择 K 个特色;
N.fß特色 Fi 中具备最好宰割点的特色;
N.pßf 中最好的宰割点;
DlßD 中 N.f 值小于 N.p 的样本子集;
DrßD 中 N.f 值不小于 N.p 的样本子集;
Nlß以参数 (Dl,K) 持续调用本程序;
Nrß以参数 (Dr,K) 持续调用本程序;
Return N.
输入:一棵随机决策树。
随机森林和 Bagging
以上是随机森林中应用的随机决策树算法。参数 K 用来管制随机性。当 K 等于所有特色总数时,构建的决策树等价于传统确定性的决策树;当 K = 1 时,会随机抉择一个特色;倡议 K 值为特色数的对数。随机树只在特征选择阶段引入随机性,在抉择宰割点时不会引入。
图 a:Bagging 的 10 个基学习器;图 b:随机森林的 10 个基学习器;图 c:Bagging;图 d:随机森林。
随机森林和 Bagging 在 40 个 UCI 数据集上预测谬误的比照。每个点为一个数据集,点的坐标为两个比照算法的预测误差。对角线标出两个比照算法雷同预测误差的地位。
比拟了随机森林,Bagging 和它们基分类器的决策边界。由图可见随机森林和它的基学习器的决策边界比拟灵便,因此具备更好的泛化能力。在高斯数据集上,随机森林的测试错误率为 7.85%,而 Bagging 为 8.3%。以上图中比拟了随机森林和 Bagging 在 40 个 UCI 数据集上的预测谬误。很显著,无论应用剪枝还是未剪枝的决策树,随机森林的预测精度都优于 Bagging 的后果。
集成规模在 2 个 UCI 数据集上对随机森林和 Bagging 的影响。
随机森林的收敛性和 Bagging 类似。随机森林的起始点个别较差,特地是当集成规模为 1 时,随机特征选择会导致决策树性能进化;然而,它通常能够收敛到很低的测试误差。在训练的阶段,随机森林的收敛比 Bagging 更疾速。这是因为,在决策树的构建阶段,Bagging 应用的全量的特色进行宰割抉择,进而生成确定性的决策树,而随机森林仅须要应用随机抉择的特色来生成随机决策树。
总结:
组合分类器比繁多分类器的分类成果好,随机森林(random forest)是一种利用多个分类树对数据进行判断与分类的办法,它在对数据进行分类的同时,还能够给出各个变量(基因)的重要性评分,评估各个变量在分类中所起的作用。