机器学习集成算法——袋装法和随机森林

随机森林是最流行、最强大的机器学习算法之一。它是机器学习集成算法中的一种,可称之为自助集成(Bootstrap Aggregation)或袋装法(Bagging)。

在这篇文章中,您将学习使用袋装集成算法和随机森林算法建立预测模型。阅读这篇文章后,您将学到:

  • 用自助法从样本中估计统计量。
  • 用自助集成算法从单个训练数据集中训练多个不同的模型。
  • 强大的分类器——随机森林算法。它只对袋装法进行小小的调整。

这篇文章是为开发人员编写的,不需要统计学或数学背景。这篇文章重点介绍了该算法的工作原理以及如何将其用于预测建模问题。

如果您有任何问题,请留下评论,我会尽我所能来回答。

让我们开始吧。

机器学习集成算法中的袋装法和随机森林。

照片由Nicholas A. Tonelli提供,一些权利保留。

自助法

在我们学习袋装法之前,让我们快速了解一下自助法这个重要的基础技术。

自助法是一种用于从数据样本中估计某个量的强大的统计方法。我们假设这个量是描述性的统计数据,如平均值或标准差。这样有助于我们理解它。

假设我们有一个100个样本值(x),我们希望估计样本均值。

我们可以直接从样本中计算均值,如下所示:

mean(x)= 1/100 * sum(x)

我们的样本很小,这个均值是不正确的。我们可以使用自助法来进行更准确的估计:

  1. 多次(如1000次)从数据集中随机采样子样本,各次采样之间是有放回的(可以多次选择相同的值)。
  2. 计算每个子样本的均值。
  3. 计算上一步产生的所有均值的平均值,作为最终结果。

例如,假设我们共进行3次采样,得到了每个子样本的平均值分别为2.3,4.5和3.3。取这些数据的平均值作为原数据的均值,可得3.367。

这个方法也可以用来估计其他的统计量,如标准差。它甚至可以估计机器学习算法中的量,如算法学到的系数。

自助集成(袋装法)

自助集成(简称袋装法)是一种简单而强大的集成算法。

集成算法是一种将来自多个机器学习算法的预测值结合在一起的技术,以比任何单独的模型做出更准确的预测。

自助集成是一个通用的算法,可以用来减少方差较大的算法的方差。具有高方差的算法之一是决策树,比如分类和回归树(CART)。

决策树对它所接受的具体数据很敏感。如果训练数据改变(哪怕是使用训练数据的子集),则所得到的决策树可能是完全不同的,因而预测结果可能是完全不同的。

将自助算法应用于高方差的机器学习算法(典型的如决策树),即成为袋装法。

假设我们的样本数据集有1000个值(x)。我们在CART算法中运用Bagging,如下所示。

  1. 多次(如100次)从数据集中随机采样子样本。各次采集之间是有放回的。
  2. 在每个子样本上训练一个CART模型。
  3. 给定一个新的数据集,计算每个模型的预测值的平均值。

例如,如果我们训练了5个袋装决策树,它们分别对输入样本进行了以下类别预测:蓝色,蓝色,红色,蓝色和红色,我们将采用出现次数最多的预测结果,即蓝色。

使用袋装决策树时,我们不太忧虑个别决策树的过拟合现象。因此,可以加深决策树(例如,在树的每个叶节点处的使用很少的训练样本),且可以不修剪树。这一做法也将提高效率。这些树将具有高的方差、低的偏差。这是袋装法产生的子模型的重要特征。

袋装决策树的参数仅有样本数量及决策树的数量。后者可以这样确定:在每次运行之后,增加下一次使用的决策树数量,直到精度不再有明显改进(例如在交叉验证测试中)。扩大模型规模会增加训练耗时,但可以更有效地避免过拟合。

就像决策树本身一样,袋装法可以用于分类和回归问题。

随机森林

随机森林是对袋装决策树的改进。

像CART这样的决策树存在一个问题,那就是他们贪婪。他们使用贪婪算法来决定分割哪个变量可以最大程度地减少错误。因此,即使使用袋装法,各个决策树之间仍可能具有很高的结构相似性,并在预测中有很高的相关性。

如果来自子模型的预测是不相关的或者至多是弱相关的,那么集成结果才会更好。

随机森林改变了学习子树的方法,使得各个子树的预测结果具有较低的相关性。

这是一个简单的调整。在CART中,当选择分割点时,允许学习算法查看所有变量种类和所有变量值,以便选择最佳分割点。随机森林算法改变这一点。它让学习算法可查看的变量局限于一个随机子集内。

随机森林算法必需参数之一是在每个分割点可搜索的特征的数量。你可以尝试不同的值,并使用交叉验证来调整它。

  • 对于分类,一个好的默认值是:m = sqrt(p)
  • 对于回归,一个好的默认值是:m = p / 3

其中,m是在分割点可搜索的特征的数量,这些特征是随机选取的;p是输入变量的总数量。例如,如果一个分类问题的数据集有25个变量,那么:

  • m = sqrt(25)
  • m = 5

预计表现

自助法只选取样本的子集,因此会有一些样本未被选到。这些样本被称为袋外样本(Out-Of-Bag)或OOB。

各个模型在这些被排除的袋外样本上的准确率的平均值,可以用于估计袋装模型的精度。这种估计通常被称为OOB估计。

将这个性能指标作为测试误差估计是可靠的,而且,它可以与交叉验证估计联系在一起。

变量重要性

构造袋装决策树时,我们可以计算每个分割点处的变量可降低的误差函数值。

在回归问题中,该值可能是平方误差和;在分类问题中,该值可能是基尼系数。

把所有的决策树的错误下降值求平均,即可作为每个输入变量重要性的估计。当变量被选择时,产生的下降越大,则重要性越大。

重要性估计可以帮助识别出那些可能与问题最相关或最不相关的输入变量的子集;在特征选择实验中,它可以指导你去除哪些特征。

进一步阅读

袋装法是大多数机器学习教程都会涵盖的简单技术。下面列出了一些例子。

总结

在这篇文章中,您学习了袋装法这个机器学习集成算法和它的常用变体随机森林。您掌握了:

  • 如何从一个数据样本估计统计量。
  • 如何使用袋装法集成来自多个高方差模型的预测。
  • 如何在袋装时调整决策树的结构以降低各预测间的相关性,即随机森林。

本文的版权归 一百个替身 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

实战卷积神经网络

在近些年,深度学习领域的卷积神经网络(CNNs或ConvNets)在各行各业为我们解决了大量的实际问题。但是对于大多数人来说,CNN仿佛戴上了神秘的面纱。 CN...

24360
来自专栏人工智能

通过部分感知深度卷积网络进行人脸特征点定位

人脸特征点定位是一个非常具有挑战性的研究课题。由于纹理和形状的不同,不同人脸特征点的定位精度差异很大。但大多数现有的方法不能考虑特征点的部分位置。 为了解决这个...

226100
来自专栏红色石头的机器学习之路

Coursera吴恩达《神经网络与深度学习》课程笔记(5)-- 深层神经网络

上节课我们主要介绍了浅层神经网络。首先介绍神经网络的基本结构,包括输入层,隐藏层和输出层。然后以简单的2 layer NN为例,详细推导了其正向传播过程和反向传...

30900
来自专栏AI科技大本营的专栏

从YOLOv1到YOLOv3,目标检测的进化之路

这是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross Girshick 针对 DL 目标检测速度问题提出的另外一种框架。YOLO V1...

49830
来自专栏ACM算法日常

第十篇:《机器学习之神经网络(四)》

j 代表下一层中误差单元的下标,是受到权重矩阵中第行影响的下一层中的误差单元的下标。

12220
来自专栏绿巨人专栏

神经网络学习笔记-01-基本概念

26770
来自专栏企鹅号快讯

形象理解卷积神经网络(二)——卷积神经网络在图像识别中的应用

卷积神经网络之父YannLeCuu在1988年提出卷积神经网络时,将这种网络命名为LeNet。现在的卷积神经网络都是基于类似LeNet的网络构架。下图是一个简单...

309100
来自专栏新智元

【风格化+GAN】感知对抗网络 PAN,一个框架搞定多种图像转换

【新智元导读】pix2pix 又有更新:悉尼大学的 Chaoyue Wang 等人受生成对抗网络(GAN)启发,在已有的感知损失基础上,提出了感知对抗网络(Pe...

45470
来自专栏和蔼的张星的图像处理专栏

2. 神经网络之BN层背景BN使用BN在CNN上的使用。

BN,全称Batch Normalization,是2015年提出的一种方法,在进行深度网络训练时,大都会采取这种算法。 原文链接:Batch Normali...

5K40
来自专栏SIGAI学习与实践平台

机器学习与深度学习核心知识点总结--写在校园招聘即将开始时

一年一度的校园招聘就要开始了,为了帮助同学们更好的准备面试,SIGAI 在今天的公众号文章中对机器学习、深度学习的核心知识点进行了总结。希望我们的文章能够帮助你...

11510

扫码关注云+社区

领取腾讯云代金券