随机森林

title: 历史.
content: 随机森林的引入最初是由华裔美国人于1995年先提出的。然后随机森林由Leo Breiman于2001年在一篇论文中提出的。这篇文章描述了一种结合随机节点优化和bagging,利用类CART过程构建不相关树的森林的方法。此外,本文还结合了一些已知的、新颖的、构成了现代随机森林实践的基础成分,特别是
title: 算法.
title: 预备:决策树学习.
content: 决策树是各种机器学习任务的常用方法。 Hastie等说:“树学习是如今最能满足于数据挖掘的方法,因为它在特征值的缩放和其他各种转换下保持不变,对无关特征是鲁棒的,而且能生成可被检查的模型。然而,它通常并不准确。”  特别的,生长很深的树容易学习到高度不规则的模式,即过学习,在训练集上具有低偏差和高方差的特点。随机森林是平均多个深决策树以降低方差的一种方法,其中,决策树是在一个数据集上的不同部分进行训练的。这是以偏差的小幅增加和一些可解释性的丧失为代价的,但是在最终的模型中通常会大大提高性能。
title: Bagging.
content: 随机森林训练算法把bagging的一般技术应用到树学习中。给定训练集 =,..., 和目标 =,...,,bagging方法重复("B"次)从训练集中有放回地采样,然后在这些样本上训练树模型:  在训练结束之后,对未知样本x的预测可以通过对x上所有单个回归树的预测求平均来实现:  或者在分类任务中选择多数投票的类别。  这种bagging方法在不增加偏置的情况下降低了方差,从而带来了更好的性能。这意味着,即使单个树模型的预测对训练基的噪声非常敏感,但对于多个树模型,只要这些树并不相关,这种情况就不会出现。简单地在同一个数据集上训练多个树模型会产生强相关的树模型(甚至是完全相同的树模型)。Bootstrap抽样是一种通过产生不同训练集从而降低树模型之间关联性的方法。  此外,上所有单个回归树的预测的标准差可以作为预测的不确定性的估计:  样本或者树的数量B是一个自由参数。通常使用几百到几千棵树,这取决于训练集的大小和性质。使用交叉验证,或者通过观察out-of-bag误差(那些不包含的抽样集合在样本的平均预测误差),可以找到最优的B值。当一些树训练到一定程度之后,训练集和测试集的误差开始趋于平稳。
title: 从 bagging 到随机森林.
content: 上面的过程描述了树的原始的 bagging 算法。随机森林与这个通用的方案只有一点不同:它使用一种改进的学习算法,在学习过程中的每次候选分裂中选择特征的随机子集。这个过程有时又被称为“特征 bagging”。这样做的原因是 bootstrap 抽样导致的树的相关性:如果有一些特征预测目标值的能力很强,那么这些特征就会被许多树所选择,这样就会导致树的强相关性。分析了不同条件下 bagging 和随机子空间投影对精度提高的影响。  典型地,对于一个包含 个特征的分类问题,可以在每次划分时使用 formula_3 个特征。对于回归问题,作者推荐 但不少于 5 个特征。
title: 极限树.
content: 再加上一个随机化步骤,就会得到极限随机树("extremely randomized trees"),即极限树。与普通的随机森林相同,他们都是单个树的集成,但也有不同:首先,每棵树都使用整个学习样本进行了训练,其次,自上而下的划分是随机的。它并不计算每个特征的最优划分点(例如,基于信息熵或者基尼不纯度),而是随机选择划分点。该值是从特征经验范围内均匀随机选取的。在所有随机的划分点中,选择其中分数最高的作为结点的划分点。与普通的随机森林相似,可以指定每个节点要选择的特征的个数。该参数的默认值,对于分类问题,是formula_4,对于回归问题,是formula_5,其中 formula_5是模型的特征个数。
title: 性质.
title: 特征的重要性.
content: 随机森林天然可用来对回归或分类问题中变量的重要性进行排序。下面的技术来自Breiman的论文,R语言包randomForest包含它的实现。  度量数据集 formula_7的特征重要性的第一步是,使用训练集训练一个随机森林模型。在训练过程中记录下每个数据点的out-of-bag误差,然后在整个森林上进行平均。  为了度量第formula_8个特征的重要性,第formula_8个特征的值在训练数据中被打乱,并重新计算打乱后的数据的out-of-bag误差。则第formula_8个特征的重要性分数可以通过计算打乱前后的out-of-bag误差的差值的平均来得到,这个分数通过计算这些差值的标准差进行标准化。  产生更大分数的特征比小分数的特征更重要。这种特征重要性的度量方法的统计定义由Zhu "et al."给出。  这种度量方法也有一些缺陷。对于包含不同取值个数的类别特征,随机森林更偏向于那些取值个数较多的特征,partial permutations、growing unbiased trees可以用来解决这个问题。如果数据包含一些相互关联的特征组,那么更小的组更容易被选择。
title: 与最近邻算法的关系.
content: Lin和Jeon在2002年指出了随机森林算法和K-近邻算法(-NN)的关系。 事实证明,这两种算法都可以被看作是所谓的“加权邻居的方案”。这些在数据集formula_11上训练的模型通过查看一个点的邻居来计算一个新点的预测值formula_12,并且使用权重函数对这些邻居进行加权:  其中, formula_14是第个点在同一棵树中相对于新的数据点的非负权重。对于任一特定的点,formula_15的权重的和必须为1。权重函数设定如下:  因为森林平均了棵树的预测,且这些树具有独立的权重函数formula_18,故森林的预测值是:  上式表明了整个森林也采用了加权的邻居方案,其中的权重是各个树的平均。在这里,的邻居是那些在任一树中属于同一个叶节点的点formula_15。只要formula_15与在某棵树中属于同一个叶节点,formula_15就是的邻居。
title: 基于随机森林的非监督学习.
content: 作为构建的一部分,随机森林预测器自然会导致观测值之间的不相似性度量。还可以定义未标记数据之间的随机森林差异度量:其思想是构造一个随机森林预测器,将“观测”数据与适当生成的合成数据区分开来。 观察到的数据是原始的未标记数据,合成数据是从参考分布中提取的。随机森林的不相似性度量之所以吸引人,是因为它能很好地处理混合变量类型,对输入变量的单调变换是不敏感的,而且在存在异常值的情况下度量结果依然可靠。由于其固有变量的选择,随机森林不相似性很容易处理大量的半连续变量。
title: 学习算法.
content: 根据下列算法而建造每棵树:
title: 优点.
content: 随机森林的优点有:

Summary: 在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。

Náhodný les: Náhodný les ( "Random forest") je kombinovaná učící metoda pro klasifikaci a regresi, která vytvoří více rozhodovacích stromů při učení a následně vydá modus (nejčastější hodnotu) tříd vrácených jednotlivými stromy. Termín pochází z "náhodných rozhodovacích lesů", které zavedl Tin Kam Ho v roce 1995. Metoda kombinuje myšlenku "baggingu" Leo Breimana a náhodným výběrem příznaků (features), aby zkonstruovala skupinu stromů s řízenou variancí.