决策树与随机森林

文章部分图片来源于龙心尘老师课件。

首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。而树形模型更加接近人的思维方式。树模型拟合出来的函数其实是分区间的阶梯函数。

其次,需要了解几个重要的基本概念:根节点(最重要的特征);父节点与子节点是一对,先有父节点,才会有子节点;叶节点(最终标签)。

一、决策树

决策树生成的数学表达式:

决策树的生成必须要解决两个问题:

(1)  如何分裂训练数据

如何分裂数据也即分裂准则是什么?树模型都是通过不纯度来分裂数据的,通过比较划分前后的不纯度值,来确定如何分裂。不纯度通俗点理解就是目标变量要分得足够开。另一种理解是分类误差率的一种衡量。下面是不纯度的公式,说实话我也没看懂。。。。

纯度的选取有多种方法,每种方法也就形成了不同的决策树方法,比如ID3算法使用信息增益作为不纯度;C4.5算法使用信息增益率作为不纯度;CART算法使用基尼系数作为不纯度。下面做具体的介绍:

——CART算法:既可以做分类,也可以做回归。只能形成二叉树。

分支条件:二分类问题

分支方法:对于连续特征的情况:比较阈值,高于某个阈值就属于某一类,低于某个阈值属于另一类。对于离散特征:抽取子特征,比如颜值这个特征,有帅、丑、中等三个水平,可以先分为帅和不帅的,不帅的里面再分成丑和中等的。

得分函数(y):就是上面提到的gt(x),对于分类树取得是分类最多的那个结果(也即众数),对于回归树取得是均值。

损失函数:其实这里的损失函数,就是分类的准则,也就是求最优化的准则

对于分类树(目标变量为离散变量):同一层所有分支假设函数的基尼系数的平均。

对于回归树(目标变量为连续变量):同一层所有分支假设函数的平方差损失

对于分类树(目标变量为离散变量):使用基尼系数作为分裂规则。比较分裂前的gini和分裂后的gini减少多少,减少的越多,则选取该分裂规则,这里的求解方法只能是离散穷举。关于基尼系数,可以参考周志华的西瓜书决策树那章,讲得比较简洁,也比较易懂。“直观来说,(数据集D的基尼系数)Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,则数据集D的纯度越高。”

具体这个的计算,我觉得有例子才好理解,下面这个红绿球的例子很好的说明了,如何根据损失函数最小(也就是基尼系数最小)来选取分裂规则。最后GIINs2更小,因此选择它作为分类规则。估计大家有个疑问,就是特征的选择,包括最开始根节点的选取,其实也是同样的方法,决策树方法是会把每个特征都试一遍,然后选取那个,能够使分类分的最好的特征,也就是说将A属性作为父节点,产生的纯度增益要大于B属性作为父节点,则A作为优先选取的属性。

对于回归树(目标变量为连续变量):使用最小方差作为分裂规则。只能生成二叉树。

CART与逻辑回归的比较:

ID3算法:使用信息增益作为分裂的规则,信息增益越大,则选取该分裂规则。多分叉树。信息增益可以理解为,有了x以后对于标签p的不确定性的减少,减少的越多越好,即信息增益越大越好。

C4.5算法:使用信息增益率作为分裂规则,此方法避免了ID3算法中的归纳偏置问题,因为ID3算法会偏向于选择类别较多的属性(形成分支较多会导致信息增益大)。多分叉树。

三种方法对比:

(2) 如何停止分裂

下面这六种情况都会停止分裂。其中第一种其实属于树的完全长成,但这会出现过拟合问题,所有之前很流行一种抑制这种情况的方法,叫树的剪枝,即给分裂准则—基尼系数加上惩罚项,此时树的层数越深,基尼系数的惩罚项会越大。

二、随机森林

尽管有剪枝等等方法,一棵树的生成肯定还是不如多棵树,因此就有了随机森林,解决决策树泛化能力弱的缺点。(可以理解成三个臭皮匠顶过诸葛亮)

而同一批数据,用同样的算法只能产生一棵树,这时Bagging策略可以帮助我们产生不同的数据集。Bagging策略来源于bootstrap aggregation从样本集(假设样本集N个数据点)中重采样选出Nb个样本(有放回的采样,样本数据点个数仍然不变为N),在所有样本上,对这n个样本建立分类器(ID3\C4.5\CART\SVM\LOGISTIC),重复以上两步m次,获得m个分类器,最后根据这m个分类器的投票结果,决定数据属于哪一类。

随机森林在bagging的基础上更进一步:

1.  样本的随机:从样本集中用Bootstrap随机选取n个样本

2.  特征的随机:从所有属性中随机选取K个属性,选择最佳分割属性作为节点建立CART决策树(泛化的理解,这里面也可以是其他类型的分类器,比如SVM、Logistics

3.  重复以上两步m次,即建立了m棵CART决策树

4.  这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数)

 

关于调参:1.如何选取K,可以考虑有N个属性,取K=根号N

               2.最大深度(不超过8层)

               3.棵数

               4.最小分裂样本树

               5.类别比例

 

时间: 2024-12-22 22:11:03

决策树与随机森林的相关文章

R语言︱决策树族——随机森林算法

笔者寄语:有一篇<有监督学习选择深度学习还是随机森林或支持向量机?>(作者Bio:SebastianRaschka)中提到,在日常机器学习工作或学习中,当我们遇到有监督学习相关问题时,不妨考虑下先用简单的假设空间(简单模型集合),例如线性模型逻辑回归.若效果不好,也即并没达到你的预期或评判效果基准时,再进行下换其他更复杂模型来实验. ---------------------------------------------- 一.随机森林理论介绍 1.1 优缺点 优点. (1)不必担心过度拟合

机器学习与人工智障(5):决策树与随机森林

一.从LR到决策树 1.总体流程与核心问题 (1)决策树是基于树的结构进行决策: 每个"内部节点"对应于某个属性上的"测试" 每个分支对应于该测试的一种可能结果(即该属性上的每个取值) 每个叶节点对应于一个预测结果 (2)学习过程:通过对训练样本的分析来确定"划分属性"(即内部节点所对应的属性) (3)预测过程:将测试实例从根节点开始,沿着划分属性所构成的"判定测试序列"下行,直到叶节点 2.决策树的总体流程: (1):&qu

web安全之机器学习入门——3.2 决策树与随机森林算法

目录 简介 决策树简单用法 决策树检测P0P3爆破 决策树检测FTP爆破 随机森林检测FTP爆破 简介 决策树和随机森林算法是最常见的分类算法: 决策树,判断的逻辑很多时候和人的思维非常接近. 随机森林算法,利用多棵决策树对样本进行训练并预测的一种分类器,并且其输出的类别是由个别决策树输出的类别的众数决定. 决策树简单用法 使用sklearn自带的iris数据集 # -*- coding: utf-8 -*- from sklearn.datasets import load_iris from

决策树与随机森林算法

决策树 决策树模型是一种树形结构,基于特征对实例进行分类或回归的过程.即根据某个特征把数据分划分到若干个子区域(子树),再对子区域递归划分,直到满足某个条件则停止划分并作为叶子节点,不满足条件则继续递归划分. 一个简单的决策树分类模型:红色框出的是特征. 决策树模型学习过程通常包3个步骤:特征选择.决策树的生成.决策树的修剪. 1.特征选择 选择特征顺序的不同将会产生不同决策树,选择好的特征能使得各个子集下标签更纯净.度量特征对产生子集的好坏有若干方法,如误差率,信息增益.信息增益比和基尼指数等

从决策树到随机森林

这里仅介绍分类决策树. 决策树:特征作为决策的判定标准,整个模型形如树形结构,因此,称之为决策树 对于分类决策树,他们可以认为是一组if-then规则的集合.决策树的每一个内部节点有特征组成,叶子节点代表了分类的结果.父节点和子节点之间是由有向边连接,表示了决策的结果. 在这里,有必要解释一下,为什么决策树的学习过程变成了三个步骤:特征选择.决策树生成和剪枝.而不是像LR或者SVM那样,具有显式的目标函数.首先,我们来看决策树:一个树形结构.如果要根据全局最优的策略,那么需要遍历数据集在所有的特

四、决策树、随机森林、GBDT、XGBoost

(本节课各种数学式子比较多.....^_^) 决策树 Decision Tree? 介绍? 熵 Entropy? 信息增益 Information Gain? 常见算法? 过度拟合 Overfitting? 剪枝 Prune? 增益率 GainRatio? 更多的DT应?场景类别:? 连续函数,多分类,回归? 决策树的究极进化 Ensemble? Bagging? Random Forest? Boosting? GBDT? XGBoost 决策树 分治思想 根据不同的条件作出相应的决定 熵 区

人工智能_5_决策树_随机森林

# 决策树,随机森林 # 决策树结构:if-then # 信息熵: # 例:第一届世界杯32支球队 每个队伍冠军概率1/32 # 可得 log32(程序员认为的log一般都默认是以2为底) = -(1/32*log(1/32)+1/32*log(1/32).....) # 2018 第21届世界杯根据历史数据获胜概率不同 log32 > -(1/4*log(1/4)+1/4*log(1/4).....) # 几个log的和即为信息熵, 当概率变化时 log的和是小于log(n)的 # 信息熵与不

决策树和随机森林

决策树是一种非参数监督学习预测模型. 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别. 1.举例: 举个校园相亲的例子,今天校园的小猫(女)和小狗(男)准备配对,小猫如何才能在众多的优质??的心仪的狗呢?于是呢?有一只特乖巧的小猫找到了你,你正在学习机器学习,刚好学习了决策树,准备给这只猫猫挑选优质狗,当然,你不仅仅是直接告诉猫哪些狗是合适你的?你更应该详细的给猫讲解决策树是如何根据它提出的标准选出的符合要求的狗呢?猫给出如下信息:年

R语言基于树的方法:决策树,随机森林,套袋Bagging,增强树

原文链接:http://tecdat.cn/?p=9859 概观 本文是有关  基于树的  回归和分类方法的.用于分割预测变量空间的分割规则可以汇总在树中,因此通常称为  决策树  方法. 树方法简单易懂,但对于解释却非常有用,但就预测准确性而言,它们通常无法与最佳监督学习方法竞争.因此,我们还介绍了装袋,随机森林和增强.这些示例中的每一个都涉及产生多个树,然后将其合并以产生单个共识预测.我们看到,合并大量的树可以大大提高预测准确性,但代价是损失解释能力. 决策树可以应用于回归和分类问题.我们将