导读:很多朋友问到关于人工智能随机森林如何分类的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
怎么使用随机森林进行分类?
随机森林是一种集成分类器,对影响随机森林性能的参数进行了分析,结果表明随机森林中树的数量对随机森林的性能影响至关重要。对树的数量的确定方法以及随机森林性能指标的评价方法进行了研究与总结。以分类精度为评价方法,利用UCI数据集对随机森林中决策树的数量与数据集的关系进行了实验分析,实验结果表明对于多数数据集,当树的数量为100时,就可以使分类精度达到要求。将随机森林和分类性能优越的支持向量机在精度方面进行了对比,实验结果表明随机森林的分类性能可以与支持向量机相媲美。
随机森林算法的原理
随机森林指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由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、 每棵树都会完整成长而不会剪枝,这有可能在建完一棵正常树状分类器后会被采用)。
分类算法 - 随机森林
上次我写了决策树算法,决策树可以解决分类问题,也有CART算法可以解决回归问题,而随机森林也和决策树非常类似,采用了CART算法来生成决策树,因此既可以解决分类问题,也可以解决回归问题。从名字中可以看出,随机森林是用随机的方式构建的一个森林,而这个森林是由很多的相互不关联的决策树组成。实时上随机森林从本质上属于机器学习的一个很重要的分支叫做集成学习。集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成单预测,因此优于任何一个单分类的做出预测。
所以理论上,随机森林的表现一般要优于单一的决策树,因为随机森林的结果是通过多个决策树结果投票来决定最后的结果。简单来说,随机森林中每个决策树都有一个自己的结果,随机森林通过统计每个决策树的结果,选择投票数最多的结果作为其最终结果。我觉得中国一句谚语很形象的表达了随机森林的运作模式,就是“三个臭皮匠,顶个诸葛亮”。
我有一批100条的数据,通过颜色、长度、甜度、生长地方和水果类别,那么我要预测在某种颜色、长度、甜度和生长地方的水果究竟是什么水果,随机森林要怎么做呢?
这里的抽样是指的在这批水果中,有放回地抽样,比如我要生成3个决策树来预测水果种类,那么每棵树要抽样50条数据来生成,每棵树抽取数据后数据要放回,下一棵树抽取数据仍然要从100条数据里面抽取。这种方法就叫做 bootstrap重采样技术 。
每棵树利用抽取的样本生成一棵树,值得注意的是,由于采用的是CART算法,因此生成的是二叉树,并且可以处理连续性数据。如果每个样本的特征维度为M,像以上提到的数据,样本特征维度5,指定一个常数mM,随机地从5个特征中选取m个特征子集 (这一点非常重要,这也是随机森林的随机这个名字的来源,因此这样才能保证生成的决策树不同) ,每次树进行分裂时,从这m个特征中选择最优的,并且每棵决策树都最大可能地进行生长而不进行剪枝。
此时,一颗茂盛的决策树就生成了。
根据3颗决策树的结果,如果是连续型的数据最终需要求均值获得结果,如果是分类型的数据最后求众数获得结果。
1)正如上文所述,随机森林算法能解决分类与回归两种类型的问题,并在这两个方面都有相当好的估计表现
2)随机森林对于高维数据集的处理能力令人兴奋,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。此外,该模型能够输出变量的重要性程度,这是一个非常便利的功能
3)在对缺失数据进行估计时,随机森林是一个十分有效的方法。就算存在大量的数据缺失,随机森林也能较好地保持精确性
4)当存在分类不平衡的情况时,随机森林能够提供平衡数据集误差的有效方法
5)模型的上述性能可以被扩展运用到未标记的数据集中,用于引导无监督聚类、数据透视和异常检测
6)随机森林算法中包含了对输入数据的重复自抽样过程,即所谓的bootstrap抽样。这样一来,数据集中大约三分之一将没有用于模型的训练而是用于测试,这样的数据被称为out of bag samples,通过这些样本估计的误差被称为out of bag error。研究表明,这种out of bag方法的与测试集规模同训练集一致的估计方法有着相同的精确程度,因此在随机森林中我们无需再对测试集进行另外的设置。
1)随机森林在解决回归问题时并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测,这可能导致在对某些还有特定噪声的数据进行建模时出现过度拟合。
2)对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试。
随机森林
摘录自别人
随机森林中有一个错误发现率还有一个是树木,,更多的是体现这个工具帮你解决的问题
使用这个工具干了什么,而不是别的
随机森林原理
1、什么是随机森林?
随机森林就是用随机的方式建立一个森林,在森林里有很多决策树组成,并且每一棵决策树之间是没有关联的。当有一个新样本的时候,我们让森林的每一棵决策树分别进行判断,看看这个样本属于哪一类,然后用投票的方式,哪一类被选择的多,作为最终的分类结果。在回归问题中,随机森林输出所有决策树输出的平均值。
(1)随机森林既可以用于分类,也可以用于回归。
(2)它是一种降维手段,用于处理缺失值和异常值。
(3)它是集成学习的重要方法。
2、两个随机抽取
(1)样本有放回随机抽取固定数目
(2)构建决策树时,特征随机抽取
解释:两个随机性的引入对随机森林的分类性能至关重要。由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感)
3、随机森林算法是如何工作的?
在随机森林中,每一个决策树“种植”和“生长”的四个步骤:
(1)假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;
(2)如果有M个输入变量,每个节点都将随机选择m(mM)个特定的变量,然后运用这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个再放回?
注意:
构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。
结语:以上就是首席CTO笔记为大家整理的关于人工智能随机森林如何分类的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~