决策树算法梳理

  • 信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度)

联合熵

两个变量 X 和 Y 的联合信息熵定义为:

其中 x 和 y 是 X 和 Y的特定值, 相应地, P(x,y) 是这些值一起出现的联合概率。

条件熵

在信息论中,条件熵描述了在已知第二个随机变量 X 的值的前提下,随机变量 Y 的信息熵还有多少。基于 X 条件的 Y 的信息熵,用 H (Y|X) 表示。

参考 https://blog.csdn.net/hsk6543210/article/details/88134856

信息增益

基尼不纯度

  • 决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景

ID3算法

在ID3算法中,选择信息增益最大的属性作为当前的特征对数据集分类,通过不断的选择特征对数据集不断划分。但只能处理离散型属性。

C4.5

C4.5算法流程与ID3相类似,只不过将信息增益改为信息增益比,以解决偏向取值较多的属性的问题,另外它可以处理连续型属性

CART分类树

CART是一棵二叉树,采用二元切分法,每次把数据切成两份,分别进入左子树、右子树。而且每个非叶子节点都有两个孩子,所以CART的叶子节点比非叶子多1。相比ID3和C4.5,CART应用要多一些,既可以用于分类也可以用于回归。CART分类时,使用基尼指数(Gini)来选择最好的数据分割特征,gini描述的是纯度,与信息熵的含义相似。CART中每一次迭代都会降低GINI系数。相对于ID3使用的信息增益,CART中用于选择变量的不纯性度量是Gini指数,总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)。
参考 https://blog.csdn.net/github_39261590/article/details/76546281

  • 回归树原理

回归树的生成:

回归树使用最大均方差划分节点;每个节点样本的均值作为测试样本的回归预测值。

参考 https://blog.csdn.net/aaa_aaa1sdf/article/details/81588382

  • 决策树防止过拟合手段

       剪枝是决策树学习算法对付“过拟合”的主要手段,在决策树学习中,为了尽可能正确分类训练样本,结点划分过程不断重复,有时会造成决策树分支过多,这时就可能因训练样本学得“太好”了,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合,因此,可通过主动去掉一些分支来降低过拟合的风险。

        决策树剪枝的基本策略有“预剪枝”和“后剪枝”。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能力提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。

引用西瓜书上的例子理解“预剪枝”和“后剪枝”

预剪枝

从上表的训练集将会生成一棵如图4.5所示的决策树,为便于讨论,我们对图中的部分结点做了编号。我们选取属性“脐部”来对训练集进行划分,并产生3个分支,如图4.6所示,然而,是否应该进行这个划分呢?预剪枝要对划分前后的泛化性能进行估计。

后剪枝

  • 模型评估

常用的评估分类器性能的方法:

1、保持方法
在保持(Holdout)方法中,将被标记的原始数据划分成两个不想交的集合,分别称为训练集合检验集。在训练数据集上归纳分类模型,在检验集上评估模型的性能。训练集和检验集的划分比例通常根据分析家的判断(例如,50-50,或者2/3作为训练集、1/3作为检验集)。分类器的准确率根据模型在检验集上的准确率估计。

2、随机二次抽样
可以多次重复保持方法来改进对分类器性能的估计,这种方法称作随机二次抽样(random subsampling)。设acci是第i次迭代的模型准确率,总准确率是accsub=∑ki=1acci/k{acc_{sub}=\sum_{i=1}^kacc_i/k}accsub​=∑i=1k​acci​/k。随机二次抽样也会遇到一些与保持方法同样的问题,因为在训练阶段也没有利用尽可能多的数据。并且,由于它没有控制每个记录用于训练和检验的次数,因此,有些用于训练的记录使用的频率可能比其他记录高很多。

3、交叉验证
替代随机二次抽样的一种方法是交叉验证(cross-validation)。在该方法中,每个记录用于训练的次数相同,并且恰好检验一次。为了解释该方法,假设把数据分为相同大小的两个子集,首先,我们选择一个子集作训练集,而另一个作检验集,然后交换两个集合的角色,原先作训练集的现在做检验集,反之亦然,这种方法叫做二折交叉验证。总误差通过对两次运行的误差求和得到。在这个例子中,每个样本各作一次训练样本和检验样本。k折交叉验证是对该方法的推广,把数据分为大小相同的k份,在每次运行,选择其中一份作检验集,而其余的全作为训练集,该过程重复k次,使得每份数据都用于检验恰好一次。同样,总误差是所有k次运行的误差之和。

4、自助法
以上方法都是假定训练记录采用不放回抽样,因此,训练集合检验集都不包含重复记录。在自助(bootstrap)方法中,训练记录采用有放回抽样,即已经选作训练的记录将放回原来的记录集中,使得它等机率地被重新抽取。如果原始数据有N个记录,可以证明,平均来说,大小为N的自助样本大约包含原始数据中63.2%的记录。这是因为一个记录被自助抽样抽取的概率是1−(1−1/N)^N,当N充分大时,该概率逐渐逼近1−e^−1=0.632。没有抽中的记录就成为检验集的一部分,将训练集建立的模型应用到检验集上,得到自助样本准确率的一个估计εi。抽样过程重复b次,产生b个自助样本。

按照如何计算分类器的总准确率,有几种不同的自助抽样法。常用的方法之一是.632自助(.632 bootstrap),它通过组合每个自助样本的准确率(εi)和由包含所有标记样本的训练集计算的准确率()计算总准确率():

参考 https://www.cnblogs.com/fushengweixie/p/8039991.html

  • sklearn参数详解,Python绘制决策树

参数详解参考 https://blog.csdn.net/fuqiuai/article/details/79495865

Python绘制决策树参考 https://blog.csdn.net/lulei1217/article/details/49583357

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值