随机森林(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机森林
θk);k=1,......}定义:随机森林是一个分类器,它有一系列的单株树决策器{h(X,,
θk}是独立同分布的随机变量。再输入X时,每一棵树只投一票给来组成,其中{
它认为最合适的类。在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定,构成随机森林的基础分类器称为决策树。Leo Breiman和Adele Cutler发展出推论出随机森林的算法。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans 的"Bootstrap aggregating" 想法和Ho 的"random subspace method"" 以建造决策树的集合。随机森林是一个组合分类器,构成随机森林的基础分类器是决策树。
决策树算法
决策树可以视为一个树状预测模型,它是由结点和有向边组成的层次结构。树中包含3个节点:根节点。内部节点,终节点(叶子节点)。决策树只有一个根节点,是全体训练集的结合。树中的每个内部节点都是一个分裂问题,它将到达该节点的样本按某个特定的属性进行分割,可以将数据集合分割成2块或若干块。每个终结点(叶子节点)是带有分裂标签的数据集合,从决策树的根节点到叶子节点的每一条路径都形成一个类;决策树的算法很多,例如ID3算法,CART算法等。这些算法均采用自上而下的贪婪的算法,每个内部节点选择分类效果最好的属性进行分裂节点,可以分为两个或若干个子节点,继续此过程到这可决策树能够将全部训练数据准确的分类,或所有属性都被用到为止。具体步骤如下:
1)假设T为训练样本集。
2)选择一个最能区分T中样本的一个属性。
3)创建一个数的节点,它的值是所选择的属性,创建此节点的子节点,每个子链代表所选属性的唯一值,适用子链的值进一步将样本细分为子类。
对于3)创建的三个子类
(1)如果子类的样本满足预定义的标准,或者树的这条路的剩余可选属性集为空,为沿此路径的新的样本指定类别。
(2)如果子类不满足于定义的标准,或者至少有一个属性能细分树的路径,设T为当前子类样本的集合,返回步骤2),以下简单的给出二分树的结构图示:
建树算法在属性的选择标准非常重要。属性的选择的方法有很多种,例如信息增益(information gain)、信息增益比(information gain ratio)Gini指标(Gini Index)等方法。
ID3算法依据信息增益来选择属性。信息增益是在熵作为尺度的,是衡量属性对训练数据的分类的能力的标准。CART算法是利用Gini指标作为尺度来分裂属性的。Gini指标适用于二进制连续数值等类型的字段。为了防止决策树和训练样本集的过度拟合,需要对决策树进行剪枝。剪枝通常有事先剪枝法和事后剪枝法两种方法。事先剪枝法事建树过程中判断当前节点是否需要继续划分的简直方
法。通常是通过重要性检测( 2或信息增益等)判断是否停止分裂节点。事后
剪枝方法是让树“充分成长”之后在判断是否进行停止分裂节点。常用到的方法是根据错误分类率(或决策树编码长度)进行决策树的事后剪枝。决策树具有以下四个优点:
决策树方法不需要假设先验概率的分布,这种非参数化的特点使其具有更好的灵活性和鲁棒性。
决策树方法不仅可以利用连续实数或离散的数值样本,而且可以利用“语义数据”比如离散的语义数据:东、南、西、北等。
决策树方法产生的决策树或产生式规则具有结构简单直观,容易理解以及计算效率高的特点。
决策树方法能够有效地抑制训练样本噪音和解决属性缺失问题。因此可以防止由于训练样本存在噪声和数据确实引起的精度降低。
但决策树也有与生俱来的缺点:
1)分类规则杂
2)收敛到非全局的局部最优解
3)过度拟合由于分类复杂则它可能过于适合噪声从而导致过度拟合问题。
为了克服以上的缺点,引入了另一种预测模式——随机森林。
随机森林的特征
随机森林具有以下的特征:
在现有的算法中随机森林算法的精度是无可比拟的。
随机森林能够有效地处理大的数据集。
随机森里面可以处理没有删减的成千上万的变量。
随机森林能够在分类的过程中可以生成一个泛化误差的内部无偏估计。
随机森林是一种有效地估计缺失数据的一种方法,当数据集中有大比例的数据缺失时仍然可以保持精度不变。
在不平衡的数据集的类别总图中可以平衡误差。
保存生成的随机森林以备解决其他的数据。
技术原型的计算可以给出变量之间的相关性和分类的信息。
可以计算实例组之间的相似度,可以用来做聚类分析,确定异常点(通过缩放比例)给出数据集的有趣诠释。
上述的能力可以为没有标签的数据导出无监督的聚类方法和异常点检测。
随机森林提供了一种检测变量交互作用的实验方式。特别值得注意的是随机森林的运行速度非常的块并且不会产生过度拟合,可以根据需要来生成任意多的树。
基于随机树上的诸多优点,随机森林在当前的机器学习领域是一个新的研究热点。
随机森林的理论基础
随机森林之所有那么多的优点,是因为有强大的数学知识做后盾。一个随机森林是否能够进行正确的分类,分类的效果如何,以及如何评价随机森林的分类效果都有数学知识的基础。
R.F 不会过度拟合的保证——大数定律
随机森林的一个与众不同的特征就是它不会产生过度拟合。那么它为什么不会产生过度拟合呢?不会产生过度拟合的理论依据是什么呢?下面解释这一个问题。 给定一系列分类器h (x ,θ1),h (x ,θ2),,,,,,h (x ,θk )随机取出服从随机向量Y ,X 分布的训练集。定义边际函数为:
))((m ax
))((),(j x I a y x I a Y X h v h v m k k y j k k g =-==≠ 其中I(.)是示性函数,(.)v k a 表示取平均。于是,边际函数刻画了在正确分类Y
下X 的得票超过其他分类的最大平均得票数的程度。该值越大,表明分类器的
置信度越高。泛化误差由下式得出:
)0),((,<=*Y X P m P E g Y X 其中,下标X,Y 表明了概率的定义空间。
在随机森林中,)(x h k =h (x ,θk )。当树的数目很大时,它会遵循大数定律,
因此树的结构为:随着分类树数目的增加,由于所有的序列θi ,*pE 几乎处处
收敛到
)
0),((m ax )),(((,<=-==≠j x h y y X h p p p Y
j Y X θθθθ
其中θ是对应单棵树决策树的随机变量,h (x ,θ)是基于x 和θ的输出。 这以结果解释了为什么随机森林不会随着分布树的增加而产生过拟合,但是却有一个有限的繁华误差值。它的依据是大数定律。
在有关随机森林的实验中,装袋方法和随机特征选择并行应用。袋装方法的每一个新的训练集都是在原始训练集中通过一种叫做步步为营法随机重复采样得到的。应用这种方法的训练集一般只能包含原训练集中大约百分之六十七的样本,其余的样本作为袋外数据,基于新的训练集生成树可以充分的成长,不进行剪枝。
应用袋装方法的两个原因。其一,当使用随机特征时,结合袋装方法可以提高精度。其二,袋装方法可以对一个树集的总体泛化误差*pE 不断变化的上界进行估计,与效能和相关性的估计一样的好。这一估计是由袋装的分类器给出的,解释如下。
假定在任何训练集中用一种方法构造分类器。给定一个特殊的训练集T,构造步步为营训练集T k ,构建分类器h (X,T k ),由投票构成松弛的预测器。对于训练集T 中的每一个数y ,x
将不包含y ,x 的分类器T k 上得到的票数累加起来,称之为袋外数据分类器。繁