随机森林算法是什么?

2024-05-17 20:50

1. 随机森林算法是什么?


随机森林算法是什么?

2. 随机森林算法是什么?

随机森林是一种比较新的机器学习模型。
经典的机器学习模型是神经网络,有半个多世纪的历史了。神经网络预测精确,但是计算量很大。上世纪八十年代Breiman等人发明分类树的算法(Breiman et al. 1984),通过反复二分数据进行分类或回归,计算量大大降低。
2001年Breiman把分类树组合成随机森林(Breiman 2001a),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。
随机森林对多元共线性不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个解释变量的作用(Breiman 2001b),被誉为当前最好的算法之一(Iverson et al. 2008)。

随机森林优点:
随机森林是一个最近比较火的算法,它有很多的优点:
a、在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合。
b、在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的抗噪声能力。
c、它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化。

3. 随机森林算法的原理

随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由Leo Breiman和Adele Cutler提出,并被注册成了商标。
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 "Random Forests" 是他们的商标。 

这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。
这个方法则是结合 Breimans 的 "Bootstrap aggregating" 想法和 Ho 的"random subspace method"以建造决策树的集合。
学习算法
根据下列算法而建造每棵树:
1、 用N来表示训练用例(样本)的个数,M表示特征数目。
2、 输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。
3、 从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
4、 对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。
5、 每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用)。

随机森林算法的原理

4. 随机森林算法是什么?

随机森林算法是以决策树为基学习器构建bagging的基础上,进一步在决策树的训练过程中引入随机属性的算法。
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 
而 "Random Forests" 是他们的商标。 这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合 Breimans 的 "Bootstrap aggregating" 想法和 Ho 的"random subspace method"以建造决策树的集合。

随机森林算法之根据下列算法而建造每棵树:
用N来表示训练用例(样本)的个数,M表示特征数目。
输入特征数目m,用于确定决策树上一个节点的决策结果;其中m应远小于M。
从N个训练用例(样本)中以有放回抽样的方式,取样N次,形成一个训练集(即bootstrap取样),并用未抽到的用例(样本)作预测,评估其误差。
对于每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。
每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用)。

5. 随机森林的学习算法

根据下列算法而建造每棵树:1. 用 N 来表示训练例子的个数,M表示变量的数目。2. 我们会被告知一个数 m ,被用来决定当在一个节点上做决定时,会使用到多少个变量。m应小于M3. 从N个训练案例中以可重复取样的方式,取样N次,形成一组训练集(即bootstrap取样)。并使用这棵树来对剩余预测其类别,并评估其误差。4. 对于每一个节点,随机选择m个基于此点上的变量。根据这 m 个变量,计算其最佳的分割方式。5. 每棵树都会完整成长而不会剪枝(Pruning)(这有可能在建完一棵正常树状分类器后会被采用)。

随机森林的学习算法

6. 随机森林算法简介

随机森林是一种包含多个决策树的分类器。随机森林的算法是由Leo Breiman和Adele Cutler发展推论出的。随机森林,顾名思义就是用随机的方式建立一个森林,森林里面由很多的决策树组成,而这些决策树之间没有关联。
  
 随机森林就是用过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支------集成学习(Ensemble Learning)方法。集成学习就是使用一系列学习器进行学习,并将各个学习方法通过某种特定的规则进行整合,以获得比单个学习器更好的学习效果。集成学习通过建立几个模型,并将它们组合起来来解决单一预测问题。它的工作原理主要是生成多个分类器或者模型,各自独立地学习和作出预测。
  
 随机森林是由多棵决策树构成的。对于每棵树,他们使用的训练集是采用放回的方式从总的训练集中采样出来的。而在训练每棵树的结点时,使用的特征是从所有特征中采用按照一定比例随机地无放回的方式抽取的。
  
 随机森林的建立基本由随机采样和完全分裂两部分组成。
  
 随机森林对输入的数据进行行、列的采样,但两种采样的方法有所不同。对于行采样,采用的方式是有放回的的采样,即在采样得到的样本集合中,可能会有重复的样本。假设输入样本为N个,那么采样的样本也为N个。这使得在训练时,每棵树的输入样本都不是全部的样本,所以相对不容易出现过拟合。对于列采样,采用的方式是按照一定的比例无放回的抽样,从M个特征中,选择m个样本(m<M);
  
 在形成决策树的过程中,决策树的每个节点都要按完全分裂的方式来分裂,直到结点不能再分裂。采用这种方式建立出的决策树的某一个叶子节点要么是无法继续分裂的,要么里面的所有样本都是指向同一个分类器。

7. 随机森林的优点

随机森林的优点有:1. 对于很多种资料,它可以产生高准确度的分类器。2. 它可以处理大量的输入变量。3. 它可以在决定类别时,评估变量的重要性。4. 在建造森林时,它可以在内部对于一般化后的误差产生不偏差的估计。5. 它包含一个好方法可以估计遗失的资料,并且,如果有很大一部分的资料遗失,仍可以维持准确度。6. 它提供一个实验方法,可以去侦测 variable interactions 。7. 对于不平衡的分类资料集来说,它可以平衡误差。8. 它计算各例中的亲近度,对于数据挖掘、侦测偏离者(outlier)和将资料视觉化非常有用。9. 使用上述。它可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类。也可侦测偏离者和观看资料。10. 学习过程是很快速的。

随机森林的优点

8. 随机森林的缺点

1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟2. 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。