当前位置: 首页 > ai >正文

【深度之眼机器学习笔记】04-01-决策树简介、熵,04-02-条件熵及计算举例,04-03-信息增益、ID3算法

1. 决策树与熵

1.1 决策树简介

  • 下面有一个贷申请样本表,有许多特征
    在这里插入图片描述
  • 我们根据特征数据生成一棵树,比如年龄有青年,中年,老年三个类别,那么就有三个分支,分别对应着三种类别。如果是青年那么就看工作,如果有工作就给他贷款,如果没工作就不给他贷款。以上面这个例子来理解这棵树
    在这里插入图片描述
  • 再举一个例子:我们有一个样本:老年,有工作,没房子,信贷情况好,那么我们就可以走这样的一条路
    在这里插入图片描述
  • 为什么先给年龄而不是先给工作呢?换句话说是怎么选择特征构建树的呢?
    • 这不是我们人为决定的,而是要进行计算

1.2 熵

  • 熵表示不确定性,定义如下:其中 nnn 为特征数,pip_ipi 表示一个概率
    在这里插入图片描述
  • 假设 n=2n=2n=2,则有:图中越靠近 p=0.5p=0.5p=0.5(即越不确定),熵就越大。这表明熵越大,随机变量的不确定性就越大
    在这里插入图片描述

1.3 熵的计算举例

  • 例:我们需要计算我们数据集的熵,计算数据集的熵要算的是目标变量(或叫做类别标签),在这里我们是计算是否给这个人贷款,即最后一列
    在这里插入图片描述
  • 我们把 DDD 称作我们的一个数据集,∣D∣|D|D 表示数据集的条数,在这个例子为 ∣D∣=15|D|=15D=15
  • kkk 表示目标变量的种类数,在这个例子为 k=2k=2k=2
  • CkC_kCk 表示当前的这个类别条数有多个条,比如否有 6 条,那么 C1=6C_1=6C1=6
  • 最后用下面的这个公式算出来即可
    在这里插入图片描述

2. 条件熵

2.1 条件熵介绍

  • 还是上节课的这个贷款数据集
    在这里插入图片描述
  • 条件熵的公式为含义为:在给定 X 为多少的条件下,计算 Y 的熵是多少
  • 由于 X 有很多个取值,我们对它展开。比如之类年龄有青年,中年,老年
  • 这里 pip_ipi 是变量 X 取值为 xix_ixi 的概率
    在这里插入图片描述
  • 那么回到数据集的条件熵的计算公式来说,下面公式的含义如下:
    • 这里的 AAA 为条件变量,比如年龄
    • DDD 为数据集,∣D∣|D|D 为数据集条数,∣Di∣|D_i|Di 为条件变量当前取值的条数
    • nnn 为条件的种类数
    • KKK 依旧为目标变量的种类数
    • ∣Dik∣|D_{ik}|Dik 为两个变量同时满足的条数
      在这里插入图片描述

2.2 条件熵的计算例子

  • 我们以年龄为条件变量来尝试计算以它为条件的条件熵
  • 以年龄为青年时为例子,我们 i=1i=1i=1 为青年,这里的 ∣D∣∣D1∣=515{|D| \over |D_1|}={5 \over {15}}D1D=155,总共有 555 个青年,然后右部的连加就是在以青年为条件下的目标变量的信息熵,所以有式子的右半部分的展开
  • 对年龄的三个类别都做一次这样的操作后求连加即为以青年为条件的条件熵
    在这里插入图片描述

3. 信息增益与 ID3 算法

3.1 信息增益

  • 信息增益(也叫互信息)的定义如下:我们用符号 g(D,A)g(D,A)g(D,A) 来表示,即用数据集的信息熵减去以某个特征为条件的条件熵
    在这里插入图片描述
  • 根据信息增益准则的特征选择方法:
    1. 对训练数据集(或子集)D,计算其每个特征的信息增益
    2. 比较它们的大小,选择信息增益最大的特征
  • 信息增益算法:
    1. 计算数据集 D 的信息熵 H(D):
      在这里插入图片描述

    2. 计算特征 A 对数据集 D 的经验条件熵 H(D|A)
      在这里插入图片描述

    3. 计算信息增益
      在这里插入图片描述

  • 例子:
    在这里插入图片描述
    在这里插入图片描述

3.2 ID3 算法构建决策树

  • ID3 算法:在决策树递归构建过程中,使用信息增益的方法进行特征选择

  • 决策树生成过程:

    1. 从根节点开始计算所有特征的信息增益,选择信息增益最大的特征作为结点特征
    2. 再对子节点递归调用以上方法,构建决策树
    3. 所有特征信息增益很小或没有特征可以选择时递归结束得到一颗决策树
  • 比如说我们开始选择了 A3A_3A3 作为我们的根节点(根据上面的计算得到),此时我们会往下分叉出是或者否,然后我们又根据是或者否的子集来递归计算信息增益,比如是对应一个子集,否又对应一个子集
    在这里插入图片描述

http://www.xdnf.cn/news/16227.html

相关文章:

  • 力扣671. 二叉树中第二小的节点
  • Spring框架
  • 【LeetCode刷题指南】--有效的括号
  • Springboot项目实现将文件上传到阿里云
  • 【PyTorch】图像多分类项目
  • Yolo底层原理学习(V1~V3)(第一篇)
  • 2507C++,窗口勾挂事件
  • 我从农村来到了大城市
  • 绘图库 Matplotlib Search
  • C语言案例《猜拳游戏》
  • 【C++进阶】第7课—红黑树
  • ZYNQ芯片,SPI驱动开发自学全解析个人笔记【FPGA】【赛灵思】
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(10):ような复习
  • JAVA_FourTEEN_常见算法
  • 2025年7月区块链与稳定币最新发展动态深度解析
  • 基于讯飞星火AI的文学作品赏析系统开发实战:从通用聊天到专业文学分析的完整技术方案
  • Netty中future和promise用法和区别
  • 07 51单片机之定时器
  • 魔百和M401H_国科GK6323V100C_安卓9_不分地区免拆卡刷固件包
  • [RPA] Excel中的字典处理
  • 【C#学习Day12笔记】抽象类、密封类与子类构造(继承)
  • C语言————原码 补码 反码 (超绝详细解释)
  • 服务器安装虚拟机全步骤
  • KNN算法:从原理到实战全解析
  • selenium 元素定位
  • OpenCV(04)梯度处理,边缘检测,绘制轮廓,凸包特征检测,轮廓特征查找
  • 医疗器械:DFEMA和PFEMA
  • 零基础也能创作专属歌曲:文心一言+蘑兔AI协同教程
  • 前端学习日记(十三)
  • 在 Ansys CFX Pre 中配置 RGP 表的分步指南