用简单的数学公式理解决策树算法(python)

本文介绍决策树算法,从定义到构建过程,通过数学公式和Python代码详细解析。首先定义决策树并引入信息熵和信息增益概念,接着展示如何计算这些值并构建决策树。最后,探讨了使用Sklearn库实现决策树算法,并分享了构建和可视化决策树的步骤。
摘要由CSDN通过智能技术生成

大家好,这是本居居第一次写博客。

希望以巩固自己的算法知识,以及用一种较为容易理解的方法阐述算法,让广大读者学习借鉴为目的,坚持写下去。

一、决策树算法定义:

百度的官方解释是这样的,决策树是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。

看不懂?难以理解?很迷惑?我也一样,我觉得可以先用一张图来初步认识决策树

我个人理解的决策树大概是这样的:

以根节点为起点,进行一次判断,由此一分为二,接着由二分四,以此类推,直到各节点无法继续分列

并且判断语句全是特征变量(即x),而每一个分支的终点则全是标签(即y)

二、构建决策树的准备工作

在说明之前,先抛出几个问题,并自问自答:

1、为什么根节点是判断 “相亲对象有房子” 这个特诊,而不是判断其他的特征?

答:决策树中特征变量的先后顺序的根据变量的"信息增益"来确定,哪个x的“信息增益大”,就用那一个X。

2、为什么在判断 相亲对象有房子 为 “是” 之后,就终结了,无法分列?而在判断 相亲对象有房子 为 “否” 之后却继续分列?

答:这个需要在X判断之后,考虑是否有继续分列的必要。

3、为什么用信息增益这个指标来构建决策树?

答:其实还可以用gini,信息增益比等,有兴趣的朋友可以多了解一下

上面提到了一个重要的知识点--“信息增益”,究竟什么是信息增益?并且如何计算信息增益?

在回答这两个问题前,需要补充另外两个知识点--“总体的经验熵(香农熵)”,“条件经验熵(香农熵)”

1)总体的经验熵公式如图

2)条件经验熵公式如图

是不是又看不懂?没关系,这时候直接看代码讲解计算(代码先截图)

先创建数据集

 

计算总体经验熵

上图中红框的和 就是总体经验熵的计算公式,相比于来说实例化更多,所用的就是一个简单的公式再求和。

计算条件经验熵

条件经验熵是针对每个X而计算,上图是以年龄作为代表计算一次。

分别计算出年龄分组为0、1、2的条件经验熵,求和就是年龄的条件经验熵,即上图的红框部分求和。

条件经验熵与总体经验熵的公式类似,不同的在于条件经验熵需要乘以权重(权重即指每个分组占全部行数的占比)。

计算信息增益

到了这一步就很轻松了

X的信息增益=总体经验熵-X的条件经验熵,不要怀疑,就是这么简单,而代码只要短短几行遍可以搞定

所以,

总体经验熵表示的是 y标签的不确定性,越大代表 y有更多的可能性。(不信你可以试试(0为1,1为14)以及(0为7,1为8)两类的总体经验熵哪边更大 )

条件经验熵表示的是 在某个x的条件下,y标签的不确定性,也是y对这个x的期望(这个从公式可以看出来)

而信息增益=总体经验熵-条件经验熵,表示的是这个X的信息量,值越大,说明这个X越重要(似乎难以理解,请看下图)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值