随机森林算法的原理

2024-05-06 07:25

1. 随机森林算法的原理

随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由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、 每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用)。

随机森林算法的原理

2. 随机森林的优点

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

3. 随机森林通俗理解

随机森林通俗理解如下:
要了解随机森林模型,必须首先了解决策树,即随机森林的基本构成元素。我们所有人都在日常生活中使用决策树,即使您不知道这个名字,我也相信您会认识到这一过程。为了说明这一概念,我们将使用一个日常示例,预测我们城市明天的最高气温。

我们首先根据已知的知识形成一个初始的合理的温度取值范围,例如,如果我们不知道目前是一年中的哪个时间段,那么温度可能是30-70度(华氏度)。随后,通过一系列问题和答案,我们逐渐缩小了范围,直到我们有足够的信心做出单点预测。

你可能会想,有什么好问的?好吧,如果我们想尽可能地限制取值范围,那么考虑与当前问题相关的问题是最合理的。由于温度高度依赖于一年中的时间,因此一个合适的问题是:现在处于什么季节?如果季节是冬季,那么,我们就可以将预测范围限制在30–50度。
因此,为了得出估计值,我们使用了一系列问题,每个问题都会缩小我们的可能值,直到我们有足够的信心做出单个预测。我们在日常生活中一遍又一遍地重复此决策过程,只是问题和答案发生了变化。此时,我们也就解决了与决策树建立连接的问题。

随机森林通俗理解

4. 随机森林通俗理解

随机森林通俗理解是:
随机森林分解开来就是“随机”和“森林”。“随机”的含义我们之后讲,我们先说“森林”,森林是由很多棵树组成的,因此随机森林的结果是依赖于多棵决策树的结果。

这是一种集成学习的思想。森林里新来了一只动物,森林举办森林大会,判断这到底是什么动物,每棵树都必须发表意见,票数最多的结果将是最终的结果。

随机森林是现在比较流行的一个算法。对于回归和分类问题有很好的效果。大家有可能有过这样的经历,辛辛苦苦搭好神经网络,最后预测的准确率还不如随机森林。

5. 什么是随机森林

 Bagging是 bootstrap aggregating 。思想就是从总体样本当中 随机取一部分样本进行训练,通过多次这样的结果,进行投票获取平均值作为结果输出 ,这就极大可能的 避免了不好的样本数据,从而提高准确度 。因为有些是不好的样本,相当于噪声,模型学入噪声后会使准确度不高。Bagging降低 Variance ,因此采用的都是强学习器。
    举个例子 :
   假设有1000个样本,如果按照以前的思维,是直接把这1000个样本拿来训练,但现在不一样,先抽取800个样本来进行训练,假如噪声点是这800个样本以外的样本点,就很有效的避开了。重复以上操作,提高模型输出的平均值。
   Random Forest(随机森林)是 一种基于树模型的Bagging的优化版本 ,一棵树的生成肯定还是不如多棵树,因此就有了随机森林,解决 决策树泛化能力弱的 特点。(可以理解成三个臭皮匠顶过诸葛亮)
   而同一批数据,用同样的算法只能产生一棵树,这时Bagging策略可以 帮助我们产生不同的数据集 。 Bagging 策略来源于bootstrap aggregation:从样本集(假设样本集N个数据点)中重采样选出Nb个样本(有放回的采样,样本数据点个数仍然不变为N),在所有样本上,对这n个样本建立分类器(ID3\C4.5\CART\SVM\LOGISTIC), 重复以上两步m次,获得m个分类器 ,最后根据这m个分类器的投票结果,决定数据属于哪一类。
    每棵树的按照如下规则生成: 
   一开始我们提到的随机森林中的“随机”就是指的这里的两个随机性。两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林 不容易陷入过拟合,并且具有很好得抗噪能力 (比如:对缺省值不敏感)。
   总的来说就是随机选择样本数,随机选取特征,随机选择分类器,建立多颗这样的决策树,然后通过这几课决策树来投票,决定数据属于哪一类( 投票机制有一票否决制、少数服从多数、加权多数 )
   减小 特征选择个数m,树的相关性和分类能力也会相应的降低 ;增大m,两者也会随之增大。所以关键问题是 如何选择最优的m (或者是范围),这也是随机森林唯一的一个参数。
    优点: 
    缺点: 
   根据随机森林创建和训练的特点,随机森林对缺失值的处理还是比较特殊的。
   其实,该缺失值填补过程类似于推荐系统中采用协同过滤进行评分预测,先计算缺失特征与其他特征的相似度,再加权得到缺失值的估计,而随机森林中计算相似度的方法(数据在决策树中一步一步分类的路径)乃其独特之处。
    OOB :
   上面我们提到,构建随机森林的关键问题就是 如何选择最优的m ,要解决这个问题主要依据计算 袋外错误率oob error(out-of-bag error) 。
   bagging方法中Bootstrap每次约有 1/3的样本不会出现在Bootstrap所采集的样本集合中 ,当然也就没有参加决策树的建立,把这1/3的数据称为 袋外数据oob(out of bag) ,它可以用于 取代测试集误差估计方法 。
    袋外数据(oob)误差的计算方法如下: 
    优缺点 :
   这已经经过证明是 无偏估计的 ,所以在随机森林算法中 不需要再进行交叉验证或者单独的测试集来获取测试集误差 的无偏估计。

什么是随机森林

6. 随机森林特征重要性

在随机森林介绍中提到了随机森林一个重要特征:能够计算单个特征变量的重要性。并且这一特征在很多方面能够得到应用,例如在银行贷款业务中能否正确的评估一个企业的信用度,关系到是否能够有效地回收贷款。但是信用评估模型的数据特征有很多,其中不乏有很多噪音,所以需要计算出每一个特征的重要性并对这些特征进行一个排序,进而可以从所有特征中选择出重要性靠前的特征。
 
一:特征重要性
在随机森林中某个特征X的重要性的计算方法如下:
1:对于随机森林中的每一颗决策树,使用相应的OOB(袋外数据)数据来计算它的袋外数据误差,记为errOOB1.
2:  随机地对袋外数据OOB所有样本的特征X加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算它的袋外数据误差,记为errOOB2.
3:假设随机森林中有Ntree棵树,那么对于特征X的重要性=∑(errOOB2-errOOB1)/Ntree,之所以可以用这个表达式来作为相应特征的重要性的度量值是因为:若给某个特征随机加入噪声之后,袋外的准确率大幅度降低,则说明这个特征对于样本的分类结果影响很大,也就是说它的重要程度比较高。
 
二:特征选择
在论文 Variable Selection using Random Forests中详细的论述了基于随机森林的特征选择方法,这里我们进行一些回顾。
首先特征选择的目标有两个:
1:找到与应变量高度相关的特征变量。
2:选择出数目较少的特征变量并且能够充分的预测应变量的结果。
其次一般特征选择的步骤为:
1:初步估计和排序
a)对随机森林中的特征变量按照VI(Variable Importance)降序排序。
b)确定删除比例,从当前的特征变量中剔除相应比例不重要的指标,从而得到一个新的特征集。
c)用新的特征集建立新的随机森林,并计算特征集中每个特征的VI,并排序。
d)重复以上步骤,直到剩下m个特征。
2:根据1中得到的每个特征集和它们建立起来的随机森林,计算对应的袋外误差率(OOB err),将袋外误差率最低的特征集作为最后选定的特征集。

7. 随机森林的缺点

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

随机森林的缺点

8. 随机森林的介绍