基础算法梳理:3-决策树梳理

1、信息论基础;
2、决策树原理及应用场景;
3、决策树防止过拟合手段;
4、sklearn参数详解;

1、信息论基础

信息熵
熵度量事物的不确定性,越不确定的事物,它的熵就越大。随机变量Y的熵的表达式如下:
在这里插入图片描述
在这里插入图片描述
联合熵

由单个变量信息熵可推广至多个变量的联合熵,即:
在这里插入图片描述
条件熵
条件熵定义为:给定随机变量X的条件下,随机变量Y的条件概率分布的熵对随机变量X的数学期望。
则根据定义可推导条件熵公式:
在这里插入图片描述
信息增益
基于哈夫曼树,每个特征的权重相当于是对应的信息熵;基于信息熵的形式来决定树的结构,
信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好,在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差。
信息增益 = 信息熵 - 条件熵,即
I(X)=H(Y)-H(Y|X)
表示在已知随机变量X的情况下,随机变量Y的不确定性减少的程度。ID3算法使用信息增益选择最优特征
原理解释:对于待划分的数据集 D,其 entroy(前)是一定的,但是划分之后的熵 entroy(划分后)是不定的,entroy(划分后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(划分前) - entroy(划分后)差异越大,说明使用当前特征划分数据集 D 的话,其纯度上升的更快。在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,希望集合往最快到达纯度更高的子集合方向发展,因此总是选择使得信息增益最大的特征来划分当前数据集 D。
缺点:信息增益偏向取值较多的特征
原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大。

信息增益率
信息增益比 = 惩罚参数 * 信息增益
在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。
特征 A 对于数据集 D 的信息增益比定义为:
在这里插入图片描述
惩罚参数:数据集 D 以特征 A 作为随机变量的熵的倒数,即:将特征 A 取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)
缺点:信息增益比偏向取值较少的特征
原因:当特征取值较少时 HA(D)HA(D) 值较小,因此其倒数较大,因而信息增益比较大。
使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是现在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。

基尼不纯度
基尼不纯度:从一个数据集中随机选取子集,度量其被错分到其他组里的概率。
假设有k个类别,选中子集为第k个类别的概率为pk,则基尼系数表达式为:
在这里插入图片描述
基尼系数度量模型不纯度,值越小表示不纯度越低,特征越好。

2、决策树的不同分类算法的原理及应用场景

ID3算法
基于信息增益来决定当前以那个特征划分来生成树,取划分前后信息增益最大的那个特征。存在缺陷:偏向于选取特征分类多的那个特征。
ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。ID3算法,即 Iterative Dichotomiser 3,迭代二叉树3代,是Ross Quinlan发明的一种决策树算法,这个算法的基础就是上面提到的奥卡姆剃刀原理,越是小型的决策树越优于大的决策树,尽管如此,也不总是生成最小的树型结构,而是一个启发式算法。
在信息论中,期望信息越小,那么信息增益就越大,从而纯度就越高。ID3算法的核心思想就是以信息增益来度量属性的选择,选择分裂后信息增益最大的属性进行分裂。该算法采用自顶向下的贪婪搜索遍历可能的决策空间。
决策树停止的条件:如果发生以下的情况,决策树将停止分割

  • 该群数据的每一笔数据已经归类到每一类数据中,即数据已经不能继续在分;
  • 该群数据已经找不到新的属性进行节点分割;
  • 该群数据没有任何未处理的数据;
    ID3算法只能处理离散型变量。

C4.5
采用信息增益率来选取划分的特征,相比于信息增益,可以部分解决选取特征分类多的种类,但是会偏向于选取分类少的特征。
C4.5算法是用于生成决策树的一种经典算法,是ID3算法的一种延伸和优化。C4.5算法对ID3算法主要做了一下几点改进,也是它的优点:

  • 通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足;
  • 能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理:
    在这里插入图片描述
  • 构造决策树之后进行剪枝操作;
  • 能够处理具有缺失属性值的训练数据:
    在这里插入图片描述
    C4.5算法即是将ID3算法中选择特征的标准用信息增益比代替。
    缺点:
  • 算法的计算效率较低,特别是针对含有连续属性值的训练样本时表现的尤为突出;
  • 算法在选择分裂属性时没有考虑到条件属性间的相关性,只计算数据集中每一个条件属性与决策属性之间的期望信息,有可能影响到属性选择的正确性。

CART分类树
采用基尼系数来选择划分的特征;
CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。这样的决策树等价于递归地二分每个特征,将输入空间即特征空间划分为有限个单元,并在这些单元上确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。
CART算法由以下两步组成:

  • 决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;
  • 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时损失函数最小作为剪枝的标准。
    CART决策树的生成就是递归地构建二叉决策树的过程。CART决策树既可以用于分类也可以用于回归。对分类树而言,CART用Gini系数最小化准则来进行特征选择,生成二叉树。
    CART既可以处理离散性也可以处理连续型数据,既可以分类也可以回归。

3、回归树原理

回归树总体流程类似于分类树,区别在于,回归树的每一个节点都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个 feature 的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化平方误差。也就是被预测出错的人数越多,错的越离谱,平方误差就越大,通过最小化平方误差能够找到最可靠的分枝依据。分枝直到每个叶子节点上人的年龄都唯一或者达到预设的终止条件(如叶子个数上限),若最终叶子节点上人的年龄不唯一,则以该节点上所有人的平均年龄做为该叶子节点的预测年龄。
回归树使用最大均方差划分节点;每个节点样本的均值作为测试样本的回归预测值。

4、 决策树防止过拟合手段

有几种途径用来避免决策树学习中的过度拟合。它们可被分为两类:

  • 及早停止增长树法,在ID3算法完美分类训练数据之前停止增长树;
  • 修剪法,即对这个树后修剪。
    尽管第一种方法可能看起来更直接,但是对过度拟合的树进行后修剪的第二种方法被证明在实践中更成功。这是因为在第一种方法中精确地估计何时停止增长树很困难。无论是通过及早停止还是后修剪来得到正确大小的树,一个关键的问题是使用什么样的准则来确定最终正确树的大小。
    剪枝是一个简化过拟合决策树的过程。有两种常用的剪枝方法:
    预剪枝(pre-pruning):
    通过提前停止树的构建而对树“剪枝”,一旦停止,节点就成为树叶。该树叶可以持有子集元组中最频繁的类;
    预剪枝的方法有多种不同的方式可以让决策树停止生长,下面介绍几种停止决策树生长的方法:
    限制决策树的高度和叶子结点处样本的数目:
  • 定义一个高度,当决策树达到该高度时就可以停止决策树的生长,这是一种最为简单的方法;
  • 定义一个阈值,当达到某个结点的实例个数小于该阈值时就可以停止决策树的生长;
  • 定义一个阈值,通过计算每次扩张对系统性能的增益,并比较增益值与该阈值的大小来决定是否停止决策树的生长。

后剪枝(post-pruning)
它首先构造完整的决策树,允许树过度拟合训练数据,然后对那些置信度不够的结点子树用叶子结点来代替,该叶子的类标号用该结点子树中最频繁的类标记。相比于先剪枝,这种方法更常用,正是因为在先剪枝方法中精确地估计何时停止树增长很困难。
后剪枝的方法

集成方法
如随机森林;

6、sklearn参数

from sklearn.tree import DecisionTreeClassifier
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值