随机森林详解

袋装(Bootstrap Aggregating——Bagging)


在统计学中,Bootstrap 是依靠替换随机采样的任意试验或度量。我们从上文可以看见,决策树会受到高方差的困扰。这意味着如果我们把训练数据随机分成两部分,并且给二者都安置一个决策树,我们得到的结果可能就会相当不同。Bootstrap 聚集,或者叫做袋装,是减少统计学习方法的方差的通用过程。


给定一组 n 个独立的样本观测值 Z_1,Z_2,...,Z_n,每一个值的方差均为 *σ^*2,样本观测值的均值方差为 *σ^*2/*n*。换句话说,对一组观测值取平均会减小方差。因此一种减小方差的自然方式,也就是增加统计学习方法预测精度的方式,就是从总体中取出很多训练集,使用每一个训练集创建一个分离的预测模型,并且对预测结果求取平均值。


这里有一个问题,即我们不能获取多个训练数据集。相反,我们可以通过从(单一)训练数据集提取重复样本进行自助法(bootstrap)操作。在这种方法中,我们生成了 B 个不同的自助训练数据集。我们随后在第 b 个自助训练数据集得到了一个预测结果

,从而获得一个聚集预测(aggregate prediction)。



这就叫做袋装(bagging)。注意,聚集(aggregating)在回归和分类问题中可能有不同的均值。当平均预测值在回归问题中的效果很好时,我们将会需要使用多数票决(majority vote):由于分类问题中的聚集机制,整体预测就是在 B 个预测值中最常出现的那个主要类别。


Out-of-Bag(OOB)误差

Bagging 方法最大的优势是我们可以不通过交叉验证而求得测试误差。回想一下,Bagging 方法的精髓是多棵树可以重复地拟合观察样本的自助子集。平均而言,每一个袋装树可以利用 2/3 的观察样本。而剩下的 1/3 观察样本就可以称为 out-of-bag (OOB) 观察样本,它们并不会拟合一一棵给定袋装树。我们可以使用每一棵树的 OOB 观察样本而计算第 i 个观察样本的预测值,这将会导致大约有 B/3 的预测值可以预测第 i 个观察样本。现在我们可以使用和 Bagging(平均回归和大多数投票分类)类似的聚集技术,我们能获得第 i 个观察样本的单一预测值。我们可以用这种方式获得 n 个观察样本的 OOB 预测,因此总体的 OOB MSE(回归问题)和分类误差率(分类问题)就能计算出来。OOB 误差结果是 Bagging 模型测试误差的有效估计,因为每一个样本的预测值都是仅仅使用不会进行拟合训练模型的样本。


特征重要性度量

通过使用单一树,Bagging 通常会提升预测的精确度。但是,解释最终的模型可能很困难。当我们袋装大量的树时,就不再可能使用单一的树表征最终的统计学习流程,因此,Bagging 是以牺牲阐释性能力为代价来提升预测精确度的。有趣的是,一个人可使用 RSS(用于 bagging 回归树)或者基尼指数(用于 bagging 分类树)得到每一个预测器的整体总结。在 bagging 回归树的情况中,我们可以记录由于所有的 B 树上平均的给定预测分子分裂而造成的 RSS 减少的所有数量。一个大的值表示一个重要的预测器。相似地,在 bagging 分类树的情况下,我们可以添加由于所有的 B 树上平均的给定预测分子分裂而造成的基尼系数降低的所有数量。一旦训练完成,sklearn 模块的不同袋装树(bagged tree)学习方法可直接访问特征的重要性数据作为属性。


随机森林模型

虽然袋装技术(Bagging)通过降低方差而提高了一般决策树的预测性能,但它还遇到了其他缺点:Bagging 要求我们在自助样本上生成整棵树,这就增加了 B 倍计算复杂度。此外,因为基于 Bagging 的树是相关联的,预测精度会根据 B 而饱和。


随机森林通过随机扰动而令所有的树去相关,因此随机森林要比 Bagging 性能更好。随机森林不像 Bagging,在构建每一棵树时,每一个结点分割前都是采用随机样本预测器。因为在核心思想上,随机森林还是和 Bagging 树一样,因此其在方差上有所减少。此外,随机森林可以考虑使用大量预测器,不仅因为这种方法减少了偏差,同时局部特征预测器在树型结构中充当重要的决策。


随机森林可以使用巨量的预测器,甚至预测器的数量比观察样本的数量还多。采用随机森林方法最显著的优势是它能获得更多的信息以减少拟合数值和估计分割的偏差。


通常我们会有一些预测器能主导决策树的拟合过程,因为它们的平均性能始终要比其他一些竞争预测器更好。因此,其它许多对局部数据特征有用的预测器并不会选定作为分割变量。随着随机森林计算了足够多的决策树模型,每一个预测器都至少有几次机会能成为定义分割的预测器。大多数情况下,我们不仅仅只有主导预测器,特征预测器也有机会定义数据集的分割。


随机森林有三个主要的超参数调整:

  • 结点规模:随机森林不像决策树,每一棵树叶结点所包含的观察样本数量可能十分少。该超参数的目标是生成树的时候尽可能保持小偏差。
  • 树的数量:在实践中选择数百棵树一般是比较好的选择。
  • 预测器采样的数量:一般来说,如果我们一共有 D 个预测器,那么我们可以在回归任务中使用 D/3 个预测器数作为采样数,在分类任务中使用 D^(1/2) 个预测器作为抽样。 

随机森林的局限性

除了 Bagging 树模型的一般局限性外,随机森林还有一些局限性:

  • 当我们需要推断超出范围的独立变量或非独立变量,随机森林做得并不好,我们最好使用如 MARS 那样的算法。
  • 随机森林算法在训练和预测时都比较慢。
  • 如果需要区分的类别十分多,随机森林的表现并不会很好。

总的来说,随机森林在很多任务上一般要比提升方法的精度差,并且运行时间也更长。所以在 Kaggle 竞赛上,有很多模型都是使用的梯度提升树算法或其他优秀的提升方法。


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机森林是一种集成学习算法,采用多个决策树进行训练和预测。该算法包含两个主要步骤:随机特征选择和决策树的集成。 首先,在每个决策树的训练过程中,随机森林通过随机选择特定数量的特征子集来增加多样性。这是为了防止某些特征对于预测结果的过于强调,从而避免过拟合问题。然后,基于这些特征子集,决策树按照预定义的规则进行分割,形成一个决策树模型。这个过程重复进行多次,得到多个决策树。 接下来,针对预测问题,随机森林通过将多个决策树的预测结果综合起来来进行预测。对于分类问题,多数投票被用来决定最终的类别。对于回归问题,平均值或者加权平均值被用来决定最终的预测值。 随机森林具有以下几个优点:首先,它对于处理高维度数据并不敏感,可以处理上千个特征的数据集;其次,它可以估计变量的重要性,对于特征选择非常有用;另外,它可以处理缺失值和不平衡数据;最后,它能够自动执行特征选择和参数调整。 然而,随机森林也存在一些限制。它在处理噪声数据时比较敏感,因此需要额外的处理措施。此外,由于每个决策树的训练都是独立的,因此无法学习到特征之间的相互关系。此外,随机森林可能在处理具有时间相关性的数据时表现不佳。 总的来说,随机森林是一种强大的机器学习算法,能够处理复杂的预测问题。在实际应用中,随机森林已经被广泛使用,并取得了一定的成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值