学习笔记:机器学习之决策树

0 引入

        决策树是一种归纳式的机器学习算法,可用于分类和回归任务。

        比如生活中的选男朋友的例子,是否决定将自己托付终生给那个他,就是个二分类问题。考量一个人有很多考量属性,年龄、长相、收入等等。决策树可以帮做做出决策,经过一个个if-then规则后可得到答案。

        大部分人会首先考虑年龄,认为这是一个首要考虑的指标,年纪太大可能直接Pass了,年龄合适,再继续考量后边的指标。决策树算法就是建立一个模型去帮你做决策,就是解决这个问题的。

决策树学习本质上是从训练数据集中归纳出一组分类规则。

怎么实现呢?

1.很明显,我们需要知道每个判断节点(上图绿色节点)选择的标准,为什么选择它?

2.与其他机器学习算法类似,不免会出现过拟合现象,如何解决?


1 理解两个概念

1.1  信息增益

        1.1.1 熵(entropy)

        熵是信息量大小的度量,即表示随机变量不确定性的度量。

        随机变量X的概率分布为:      P(X=x_i)=p_i

        随机变量X的熵:

H(X)=-\sum^n_{i=1}p_ilogp_i

        熵越大,随机变量的不确定性越大

         1.1.2 条件熵(conditional entropy)

        条件熵H(Y|X)表示在X的条件下随机变量Y的不确定性。定义为在X的条件下,Y的条件概率分布的熵对X的数学期望。

H(Y|X)=\sum^n_{i=1}p_iH(Y|X=x_i)

(期望怎么算来着?所有样本点的值乘以该事件发生概率再求和,这里的H(Y|X=xi)相当于样本值)

        另外,当熵和条件熵由数据估计得到时,对应的熵为经验熵和经验条件熵。

        铺垫完两个概念,接下来到了信息增益。

         1.1.2 信息增益(Information gain)

        信息增益是特征A对训练数据集D的信息增益g(D,A)。定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差。

即:

g(D,A)=H(D)-H(D|A)

H(D)表示数据集D的经验熵;

H(D|A)表示数据集D中的特征A对D的经验熵,反映的是A参与下对数据集D分类的不确定性;

则H(D|A)越小,g(D,A)越大,说明A对分类数据集D有明显的导向作用。

(到这里是不是有点头绪怎么寻找决策树中的中间判断节点了?)

         1.1.3 信息增益的算法

        熵的计算复杂程度要比基尼指数的计算要更复杂,但是两者在分类效果上相差不大,下边再介绍一种 最优特征选择方式——基尼指数

1.2 基尼指数

基尼指数反映的是集合D的不确定性

\operatorname{Gini}(D)=1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2}

与经验条件熵类似,这里有在特征A下,集合D的基尼指数定义:

\operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right)

(这个式子我的理解是一种对于子集D1,D2基尼指数的加权求和)

与熵类似,基尼指数越大,样本集合的不确定性越大。


2 ID3和C4.5算法

2.1 ID3算法

        ID3算法的核心是用信息增益去选择最优特征,采用递归地方式构建决策树。

决策树生成例子:【合集·第五篇章】十分钟 机器学习系列 第五篇章:决策树_哔哩哔哩_bilibili

2.2  C4.5算法

        由于以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题,使用信息增益比可以对这一问题进行校正。

信息增益比: 特征A对训练数据集D的信息增益比定义为信息增益与训练数据集D关于特征A的值的熵之比

        g_{R}(D, A)=\frac{g(D, A)}{H(D)}

        C4.5在决策树生成过程中用信息增益比来选择特征,算法过程和ID3一致。


3 剪枝

        由于生成的决策树存在过拟合问题,需要对它进行剪枝。

        设树T的叶结点个数为|T|,t是树的叶结点,叶结点由Nt个样本点,其中k类的样本点由N_{ik} 个,H_t(T)为叶结点t上的经验熵。则决策函数的算是函数可定义为


4 CART 算法

CART:classification and regression tree

        CART算法的核心是采用基尼指数作为特征选择标准,递归构建二叉树。

4.1  CART分类树生成过程

  1. 从根节点出发,构建二叉树;
  2. 计算所有特征对D的基尼指数,选择基尼指数最小的特征最为最优特征A,A的取值a是基尼指数最小的话将其作为最优切分点;
  3. 根据最优特征和最优切分点,生成两个子节点,并将数据集分配到对应的子节点中;

  4. 分别对两个子节点继续递归调用上面的步骤,直到满足条件,即生成CART分类决策树。

4.2 剪枝

剪枝前的损失函数:

剪枝后|T|=1,损失函数为:

 则

References

  1. https://quantdare.com/decision-trees-gini-vs-entropy/#:~:text=Conclusions,entropy%20criterion%20are%20slightly%20better.
  2. 【十分钟 机器学习 系列课程】 讲义(二十九):CART算法剪枝
  3. 《统计学习方法》——李航
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值