适合小白入门的随机森林介绍

本文介绍了随机森林和决策树的概念、工作原理以及在机器学习中的应用。随机森林是由多个决策树组成的集成学习方法,通过随机特征选择和样本抽样减少过拟合风险。而决策树是一种基于树结构进行分类或回归的算法,通过分裂节点来优化模型。文章还展示了如何使用Python的scikit-learn库实现决策树和随机森林,并讨论了参数调优和数据预处理的重要性。最后,文章比较了随机森林与单棵决策树的差异,强调了随机森林在处理高维数据和防止过拟合方面的优势。

作者:Abner,王宇

一、随机森林简介

随机森林是机器学习中的一种常用方法,而随机森林背后的思想,更是与群体智慧,甚至“看不见的手”相互映照。

上世纪八十年代Breiman等人发明分类树的算法(Breimanet al. 1984),通过反复二分数据进行分类或回归,计算量大大降低。2001年Breiman把分类树组合成随机森林(Breiman2001a),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。随机森林在运算量没有显著提高的前提下提高了预测精度。随机森林对多元公线性不敏感,结果对缺失数据和非平衡的数据比较稳健,可以很好地预测多达几千个解释变量的作用(Breiman2001b),被誉为当前最好的算法之一(Iversonet al. 2008)。

随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。随机森林可以既可以处理属性为离散值的量,也可以处理属性为连续值的量。另外,随机森林还可以用来进行无监督学习聚类和异常点检测。所以在学习随机森林之前,要了解一些决策树的知识。

二、决策树

1.决策树简介

决策树是一种监督学习算法。它适用于类别和连续输入(特征)和输出(预测)变量。基于树的方法把特征空间划分成一系列矩形,然后给每一个矩形安置一个简单的模型(像一个常数)。从概念上来讲,它们是简单且有效的。首先我们通过一个例子来理解决策树。

决策树分类的思想类似于找对象。现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话:

女儿:多大年纪了?
母亲:26。
女儿:长的帅不帅?
母亲:挺帅的。
女儿:收入高不?
母亲:不算很高,中等情况。
女儿:是公务员不?
母亲:是,在税务局上班呢。
女儿:那好,我去见见。

通过上面的例子,我们可以总结分类问题一般包括两个步骤:

1、模型构建(归纳)

通过对训练集合的归纳,建立分类模型。

2、预测应用(推论)

根据建立的分类模型,对测试集合进行测试。

决策树是一种典型的分类方法

1.首先对数据进行处理,利用归纳算法生成可读的规则和决策树,

2.然后使用决策对新数据进行分析。

注意:本质上决策树是通过一系列规则对数据进行分类的过程。

决策树的优点

1、推理过程容易理解,决策推理过程可以表示成IfThen形式;

2、推理过程完全依赖于属性变量的取值特点;

3、可自动忽略目标变量没有贡献的属性变量,也为判断属性变量的重要性,减少变量的数目提供参考。

决策树的分类包括回归树和分类树

1、回归树

我们现在关注一下回归树的算法的细节。简要来说,创建一个决策树包含两步:

1. 把预测器空间,即一系列可能值,分成J个不同的且非重叠的区域

2. 对进入区域 的每一个样本观测值都进行相同的预测,该预测就是 中训练样本预测值的均值。

为了创建 J 个区域 ,预测器区域被分为高维度的矩形或盒形。其目的在于通过下列式子找到能够使 RSS 最小化的盒形区域

公式:

其中, 即是第 j 个盒形中训练观测的平均预测值。

鉴于这种空间分割在计算上是不可行的,因此我们常使用贪婪方法(greedy approach)来划分区域,叫做递归二元分割(recursive binary splitting)。

它是贪婪的(greedy),这是因为在创建树过程中的每一步骤,最佳分割都会在每个特定步骤选定,而不是对未来进行预测,并选取一个将会在未来步骤中出现且有助于创建更好的树的分隔。注意所有的划分区域 都是矩形。为了进行递归二元分割,首先选取预测器 和切割点 s

其中 为区域 中观察样本的平均预测值,为区域 的观察样本预测均值。这一过程不断重复以搜寻最好的预测器和切分点,并进一步分隔数据以使每一个子区域内的 RSS 最小化。然而,我们不会分割整个预测器空间,我们只会分割一个或两个前面已经认定的区域。这一过程会一直持续,直到达到停止准则,例如我们可以设定停止准则为每一个区域最多包含 m 个观察样本。一旦我们创建了区域 ,给定一个测试样本,我们就可以用该区域所有训练样本的平均预测值来预测该测试样本的值。

2.分类树

分类树和回归树十分相似,只不过它是定性地预测响应值而非定量预测。从上文可知,回归树对一个观察值所预测的连续型数值就是属于同一叶结点训练样本观察值的均值。但是对于分类树来说,我们所预测的类别是训练样本观察值在某区域下最常见的类别,即训练观察值的模式响应(mode response)。为了达到分类目的,很多时候系统并不会只预测一个类别,它常常预测一组类别及其出现的概率。

分类树的生成和回归树的生成十分相似。正如在回归树中那样,我们一般使用递归性的二元分割来生成分类树。然而在分类树中,RSS 不能作为二元分割的标准。我们需要定义叶结点的不纯度量 Q_m 来替代 RSS,即一种可以在子集区域 R_1,R_2,...,R_j 度量目标变量同质性的方法。在结点 m 中,我们可以通过 N_m 个样本观察值表示一个区域 R_m 所出现类别的频率,第 k 个类别在第 m 个区域下训练所出现的频率可表示为:

其中,I(=k) 为指示函数,即如果 = k,则取 1,否则取零。

不纯性度量 一个比较自然的方法是分类误差率。分类误差率描述的是训练观察值在某个区域内不属于最常见类别的概率:

考虑到该函数不可微,因此它不能实现数值优化。此外,该函数在结点概率改变上并不敏感,因此这种分类误差率对于生成树十分低效。我们一般使用 Gini 指数和交叉熵函数来衡量结点的误差度量。

Gini 指数可以衡量 k 个类别的总方差,它一般定义为:

较小的 Gini 指数值表示结点包含了某个类别大多数样本观察值。

在信息论里面,交叉熵函数用来衡量系统的混乱度。对于二元系统来说,如果系统包含了一个类别的所有内容,那么它的值为零,而如果两个类别的数量一样多,那么交叉熵达到最大为 1。因此,和 Gini 指数一样,交叉熵函数同样能用于度量结点的不纯度:

和 G 一样,较小的 S 值表示区域内结点包含了单个类别中的大多数观察值。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值