机器学习算法--分类决策树(ID3算法)--超详细

本文深入探讨了分类决策树中的ID3算法,通过实例解释了如何利用信息熵、条件熵和信息增益构建决策树。在案例中,展示了如何使用ID3算法判断贷款申请的批准。文章还提供了实际的Python代码实现,展示了决策树的构建过程,以及遇到问题时如何调试和解决。
摘要由CSDN通过智能技术生成

分类决策树

在学习分类决策树之前,我们先换个角度来观察我们的世界,我们原本的世界一切都是有自己的固定含义的,对吧,树就是树,花就是花。现在我们将所有的这些概念都扔掉!没错,就是扔掉。将一切的东西开始分解,分解成一个个特征。就像氧气,它的组成是O2,于是它的特征就是O(O原子)和2(2个)。在不知道这两个特征之前,关于氧气的一切都是混乱的,不确定的,也就是熵是最大的,当我们知道了氧气是由氧原子组成,这是关于氧气的概念的熵开始减小,当我们知道是由两个氧原子组成的时候,氧气的概念的熵为0,也就是稳定。于是氧气的概念得以确定,就是O2。用这个方法来看待我们存在的世界,一切的开始都是由熵组成,都是具有不确定性的,当一定的特征聚集在一起的时候,熵也就开始减小,于是也就得出了准确的具有确定性的信息(个人的理解,希望可以帮助到大家)

相关概念知识:

  1. 信息熵:

    假设在一个随机变量X之中,X的每个特征值Vi对应一个概率Pi,于是随机变量X 的信息熵计算公式如下
    在这里插入图片描述

  2. 条件熵:

    随机变量X给定条件下随机变量Y的条件熵表示为H(Y|X),表示在已知随机变量X的情况下随机变量Y的不确定性,公式如下(X发生的情况下Y发生的概率的熵–个人理解):

在这里插入图片描述

  1. 信息增益:

在这里插入图片描述


案例:

我们以案例驱动的方式来解释决策树是如何构建出来的,其过程分为两步,特征选择以及决策树的生成。

首先我们给定一张数据表,数据表中记录的是一些贷款信息,如下图所示:

在这里插入图片描述

我们的任务就是构建一颗决策树来进行判断是否同意某个人的贷款申请。

我们用随机变量来表示类别(0表示否,1表示是), 表示年龄(0表示青年,1表示中年,2表示老年),是否有工作(0表示否,1表示是),表示是否有房子(0表示否,1表示是),表示信贷情况(0表示一般,1表示好,2表示非常好)后面代码表示与这里一致

根节点包含的样本:所有样本

根节点信息熵:

在这里插入图片描述

根节点各个特征的条件熵:
在这里插入图片描述

计算信息增益:

在这里插入图片描述

因此可以确定,当分支特征为R(即是否有房子)时带来的信息增益最大,因此根节点的分支特征选择为是否有房子,分为左右两支,左子节点中的数据集为没有房子的样本,右子节点的数据集为有房子,之后以此类推便构建出了决策树模型。

(案例来源链接:https://blog.csdn.net/yy2050645/article/details/81212681)


代码实战!!!

加载数据

from math import log

def creatDataSet():
    # 数据集
    dataSet=[[0, 0, 0, 0, 'no'],
            [0, 0, 0, 1, 'no'],
            [0, 1, 0, 1, 'yes'],
            [0, 1, 1, 0, 'yes'],
            [0, 0, 0, 0, 'no'],
            [1, 0<
  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值