1. 随机森林的释义
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 Random Forests 是他们的商标。 这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合 Breimans 的 Bootstrap aggregating 想法和 Ho 的random subspace method以建造决策树的集合.
2. 什么是随机森林
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)误差的计算方法如下:
优缺点 :
这已经经过证明是 无偏估计的 ,所以在随机森林算法中 不需要再进行交叉验证或者单独的测试集来获取测试集误差 的无偏估计。
3. 随机森林的优点
随机森林的优点有:1. 对于很多种资料,它可以产生高准确度的分类器。2. 它可以处理大量的输入变量。3. 它可以在决定类别时,评估变量的重要性。4. 在建造森林时,它可以在内部对于一般化后的误差产生不偏差的估计。5. 它包含一个好方法可以估计遗失的资料,并且,如果有很大一部分的资料遗失,仍可以维持准确度。6. 它提供一个实验方法,可以去侦测 variable interactions 。7. 对于不平衡的分类资料集来说,它可以平衡误差。8. 它计算各例中的亲近度,对于数据挖掘、侦测偏离者(outlier)和将资料视觉化非常有用。9. 使用上述。它可被延伸应用在未标记的资料上,这类资料通常是使用非监督式聚类。也可侦测偏离者和观看资料。10. 学习过程是很快速的。
4. 随机森林的缺点
1. 随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟2. 对于有不同级别的属性的数据,级别划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
5. 随机森林的介绍
6. 随机森林原理
1、什么是随机森林? 随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联的。当有一个新样本的时候,我们让森林的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后用投票的方式,哪一类被选择的多,作为最终的分类结果。在回归问题中,随机森林输出所有决策树输出的平均值。
(1)随机森林既可以用于分类,也可以用于回归。 (2)它是一种降维手段,用于处理缺失值和异常值。 (3)它是集成学习的重要方法。
2、两个随机抽取 (1)样本有放回随机抽取固定数目 (2)构建决策树时,特征随机抽取 解释:两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感)
3、随机森林算法是如何工作的?
在随机森林中,每一个决策树“种植”和“生长”的四个步骤:
(1)假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;
(2)如果有M个输入变量,每个节点都将随机选择m(m<M)个特定的变量,然后运用这m个变量来确定最佳的分裂点。在决策树的生成过程中,m的值是保持不变的;
(3)每棵决策树都最大可能地进行生长而不进行剪枝;
(4)通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均)。
4、随机森林的优缺点 优点: (1)在分类和回归都表现良好 (2)对高维数据的处理能力强,可以处理成千上万的输入变量,是一个非常不错的降维方法 (3)能够输出特征的重要程度 (4)有效的处理缺省值
5、重要参数 随机森林分类效果(错误率)与两个因素有关: (1)森林中任意两棵树的相关性:相关性越大,错误率越大; (2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。 减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。在学习如何选择参数前首先介绍oob的概念。
6、oob:袋外错误率 为了选择最优的m,这里需要利用的是袋外错误率oob(out-of-bag error)。我们知道,在构建每个决策树的时候,采用的是随机又放回的抽取,所以对于每棵树来说,都有一些样本实力没有参与树的生成,所以这些样本成为袋外样本,即oob。所以我们需要做一下oob估计: (1)对每个样本,计算它作为oob样本的树对它的分类情况 (2)多数投票作为该样本的分类结果 (3)用误分个数占样本总数的比率作为随机森林的oob误分率
oob误分率是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量计算的k折交叉验证。所以没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。
当我们知道了oob的计算方法,我们可以通过选取不同的m,计算oob error,找出oob error最小时对应的m的值。这和交叉验证的思想非常的相似。
7、RF特征重要性的度量方法 (1)对于每一棵决策树,计算其oob error_0 (2)选取一个特征,随机对特征加入噪声干扰,再次计算oob error_1 (3)特征的重要性=∑(oob error_1-oob error_0)/随机森林中决策树的个数
(4)对随机森林中的特征变量按照特征重要性降序排序。 (5)然后重复以上步骤,直到选出m个特征。
解释:用这个公式来度量特征重要性,原因是:给某个特征随机的加入噪声后,如果oob error增大,说明这个特征对样本分类的结果影响比较大,说明重要程度比较高。
8、RF特征选择 首先特征选择的目标有两个: 1:找到与分类结果高度相关的特征变量。 2:选择出数目较少的特征变量并且能够充分的预测应变量的结果。
特征选择的步骤: (1)对于每一棵决策树,计算其oob error (2)随机的修改OOB中的每个特征xi的值,计算oob error_2,再次计算重要性 (3)按照特征的重要性排序,然后剔除后面不重要的特征 (4)然后重复以上步骤,直到选出m个特征。
9、几个问题 (1)为什么要随机抽取样本? 答:如果不进行随机抽样,对于每个树的训练集都是相同的,训练出来的结果也是一样的,所以此时进行投票决策没有意义。
(2)为什么要有放回的去抽样呢? 答:如果不是有放回的抽样,那么每一棵树的训练样本是不同的,都是没有交集的,那么每棵树都是有偏的,都是片面的,树与树之间并不是完全公平的。我们需要的是,没颗决策树是公平的,然后让它们投票决策得出结果,并且这样可以防止过度拟合。
(3)这里指的有放回的抽样,是每次抽一个放回,还是一次抽n个再放回?
注意: 构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。
参考资源: http://www.cnblogs.com/emanlee/p/4851555.html http://www.cnblogs.com/maybe2030/p/4585705.html http://scientistcafe.com/2016/11/18/Tree4.html http://www.cnblogs.com/justcxtoworld/p/3447231.html https://zhuanlan.zhihu.com/p/21358126
7. 随机森林算法的原理
随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由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、 每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用)。
8. 随机森林
摘录自别人
随机森林中有一个错误发现率还有一个是树木,,更多的是体现这个工具帮你解决的问题
使用这个工具干了什么,而不是别的
随机森林原理
1、什么是随机森林?
随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联的。当有一个新样本的时候,我们让森林的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后用投票的方式,哪一类被选择的多,作为最终的分类结果。在回归问题中,随机森林输出所有决策树输出的平均值。
(1)随机森林既可以用于分类,也可以用于回归。
(2)它是一种降维手段,用于处理缺失值和异常值。
(3)它是集成学习的重要方法。
2、两个随机抽取
(1)样本有放回随机抽取固定数目
(2)构建决策树时,特征随机抽取
解释:两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感)
3、随机森林算法是如何工作的?
在随机森林中,每一个决策树“种植”和“生长”的四个步骤:
(1)假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;
(2)如果有M个输入变量,每个节点都将随机选择m(m<M)个特定的变量,然后运用这m个变量来确定最佳的分裂点。在决策树的生成过程中,m的值是保持不变的;
(3)每棵决策树都最大可能地进行生长而不进行剪枝;
(4)通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均)。
4、随机森林的优缺点
优点:
(1)在分类和回归都表现良好
(2)对高维数据的处理能力强,可以处理成千上万的输入变量,是一个非常不错的降维方法
(3)能够输出特征的重要程度
(4)有效的处理缺省值
5、重要参数
随机森林分类效果(错误率)与两个因素有关:
(1)森林中任意两棵树的相关性:相关性越大,错误率越大;
(2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。
减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。在学习如何选择参数前首先介绍oob的概念。
6、oob:袋外错误率
为了选择最优的m,这里需要利用的是袋外错误率oob(out-of-bag error)。我们知道,在构建每个决策树的时候,采用的是随机又放回的抽取,所以对于每棵树来说,都有一些样本实力没有参与树的生成,所以这些样本成为袋外样本,即oob。所以我们需要做一下oob估计:
(1)对每个样本,计算它作为oob样本的树对它的分类情况
(2)多数投票作为该样本的分类结果
(3)用误分个数占样本总数的比率作为随机森林的oob误分率
oob误分率是随机森林泛化误差的一个无偏估计,它的结果近似于需要大量计算的k折交叉验证。所以没有必要对它进行交叉验证或者用一个独立的测试集来获得误差的一个无偏估计。它可以在内部进行评估,也就是说在生成的过程中就可以对误差建立一个无偏估计。
当我们知道了oob的计算方法,我们可以通过选取不同的m,计算oob error,找出oob error最小时对应的m的值。这和交叉验证的思想非常的相似。
7、RF特征重要性的度量方法
(1)对于每一棵决策树,计算其oob error_0
(2)选取一个特征,随机对特征加入噪声干扰,再次计算oob error_1
(3)特征的重要性=∑(oob error_1-oob error_0)/随机森林中决策树的个数
(4)对随机森林中的特征变量按照特征重要性降序排序。
(5)然后重复以上步骤,直到选出m个特征。
解释:用这个公式来度量特征重要性,原因是:给某个特征随机的加入噪声后,如果oob error增大,说明这个特征对样本分类的结果影响比较大,说明重要程度比较高。
8、RF特征选择
首先特征选择的目标有两个:
1:找到与分类结果高度相关的特征变量。
2:选择出数目较少的特征变量并且能够充分的预测应变量的结果。
特征选择的步骤:
(1)对于每一棵决策树,计算其oob error
(2)随机的修改OOB中的每个特征xi的值,计算oob error_2,再次计算重要性
(3)按照特征的重要性排序,然后剔除后面不重要的特征
(4)然后重复以上步骤,直到选出m个特征。
9、几个问题
(1)为什么要随机抽取样本?
答:如果不进行随机抽样,对于每个树的训练集都是相同的,训练出来的结果也是一样的,所以此时进行投票决策没有意义。
(2)为什么要有放回的去抽样呢?
答:如果不是有放回的抽样,那么每一棵树的训练样本是不同的,都是没有交集的,那么每棵树都是有偏的,都是片面的,树与树之间并不是完全公平的。我们需要的是,没颗决策树是公平的,然后让它们投票决策得出结果,并且这样可以防止过度拟合。
(3)这里指的有放回的抽样,是每次抽一个放回,还是一次抽n个再放回?
注意:
构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。