决策树:ID3&C4.5&cart算法(从原理到实现-小白教程超详细)

本文介绍了决策树的基础知识,包括ID3、C4.5和Cart三种算法。ID3算法通过信息增益选择特征,C4.5通过信息增益率改进了ID3对特征不确定性的处理。Cart算法则使用基尼系数来评估特征的划分效果,构建二叉决策树。内容包括熵、信息增益、信息增益率、基尼系数等关键概念的解释和计算示例。
摘要由CSDN通过智能技术生成


本文属于我的机器学习/深度学习系列文章,点此查看系列文章目录

决策树

所谓决策树,就是一种树形结构的分类模型(也可以用作回归),它列举了每个特征下可能的情况以及对应情况下的下一步内容。下面是一个是否打篮球的决策树的例子:

小C:今天天气怎么样?
小P:晴
小C:温度呢?
小P:适中
小C:湿度呢?
小P:偏干燥,低
小C:风速如何?
小P:弱风
小C:好,那今天是个打篮球的好日子!

将上述过程绘制成决策树如下:
在这里插入图片描述

决策树的过程分两步,构建和决策(上述过程展示了如何决策)。构建的时候采用训练数据,带有所有特征和分类结果。决策的时候用测试数据,带有特征但无分类结果,通过决策得到分类结果。

ID3算法

ID3算法是决策树算法的一种,它采用信息增益的方式选择合适的属性作为划分属性。要理解ID3算法,需要先知道几个基本概念

信息熵

信息熵表示了信息的不确定度,是由信息学之父香农引入的。

什么是不确定度?其计算公式如下:

E n t r o p y ( T ) = − ∑ i = 1 n p ( i ∣ T ) l o g 2 p ( i ∣ T ) Entropy(T) = -\sum_{i=1}^n p(i|T)log_2p(i|T) Entropy(T)=i=1np(iT)log2p(iT)

其中, i i i是可分类别,例如打篮球中可分类别就是是、否两类, p ( i ∣ T ) p(i|T) p(iT)表示类别 T T T分为 i i i类的概率。

还是以打篮球为例。下面是根据属性特征已有分类结果的表格:

天气 温度 湿度 风速 是否打篮球
炎热
炎热
炎热
适中
寒冷
寒冷
寒冷
适中
寒冷
适中
适中
适中
炎热
适中

以上述表格为例(9个是,5个否),是否打篮球的信息熵就是
E n t r o p y ( T ) = − 9 14 ∗ l o g 2 9 14 − 5 14 ∗ l o g 2 5 14 = 0.940 Entropy(T) =-\frac{9}{14}*log_2\frac{9}{14} -\frac{5}{14}*log_2\frac{5}{14} = 0.940 Entropy(T)=149log2149145log2145=0.940
从直观的角度理解,当分类种类越多,分类的数量越均匀,信息熵越高。即纯度越低,很高的信息熵会让我们在决策的时候更加难以判断分类结果,需要借助更多的其他条件来确定。

(是、是、是、否、否、否)要比(是、是、是、是、是、否)信息熵更大,因为前者更加混乱

信息熵度量了这个类别的混乱程度,如果一个信息熵很小的类别,如(是、是、是、是、是、是),那么根本不需要决策,无论什么条件下结果都是一样

条件特征信息熵

又叫条件属性信息熵,其表示在某种特征条件下,所有类别出现的不确定性之和。其实他就在信息熵的基础上添加了特征这一选项。其计算公式为
E n t r o p y ( T ∣ F ) = ∑ i = 1 n D i D ∗ E n t r o p y ( F i ) Entropy(T| F) = \sum_{i=1}^n\frac{D_i}{D}*Entropy(F_i) Entropy(TF)=i=1nDDiEntropy(Fi)

其中, D i D_i Di表示这种特征第i种情况的取值数,D表示这种特征所有的取值数, E n t r o p y ( F i ) Entropy(F_i) Entropy(Fi)是信息熵,不过此时计算的信息熵是限定在情况(例如晴)下的。直观的理解就是如果按照天气特征分类得到的加权不纯度(信息熵越高,样本越不纯)。

以上述表格的天气特征为例:
E n t r o p y ( T ∣ 天 气 ) = 5 14 ∗ [ − 2 5 ∗ l o g 2 2 5 − 3 5 ∗ l o g 2 3 5 ] + 4 14 ∗ [ − 4 4 ∗ l o g 2 4 4 ] + 5 14 ∗ [ − 3 5 ∗ l o g 2 3 5 − 2 5 ∗ l o g 2 2 5 ] = 0.694 Entropy(T|天气) = \frac{5}{14}*[-\frac{2}{5}*log_2\frac{2}{5} - \frac{3}{5}*log_2\frac{3}{5}] + \frac{4}{14}*[-\frac{4}{4}*log_2\frac{4}{4} ] + \frac{5}{14}*[-\frac{3}{5}*log_2\frac{3}{5} - \frac{2}{5}*log_2\frac{2}{5}] \\= 0.694 Entropy(T)=145[52log25253log253]+144[44

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值