决策树(一)ID3

代码部分以及资料来源: https://blog.csdn.net/chenxiqilin/article/details/50395809


定义

        分类树(决策树)是一种十分常用的分类方法。他是一种监管学习,所谓监管学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。

        决策树学习通常包括3个步骤:特征选择,决策树的生成和决策树的修剪。这些决策树学习的思想主要来源于由Quinlan在1986年提出的ID3算法和1993年提出的C4.5算法,以及由Breiman等人在1984年提出的CART算法。

今天主要记录ID3与c4.5算法。

假设有以下8组数据,希望通过决策树计算一个算法模型,判断新进入的一组数据(例如:身高:183,喉结:有)判断性别(男\女)


首先,我们需要熟悉信息论中熵的概念。熵度量了事物的不确定性,越不确定的事物,它的熵就越大。具体的,随机变量X的熵的表达式如下:

熵的算法:

             

id3算法


  熵(H(X)) :累加所有的  " -pi * (log*pi)" , log 以2为底。

先算出总的熵,既未分类时的熵(5女3男),  5/8  *  log(5/8) -3/8  *  log(3/8) = 0.42375 - (-0.530625) = 0.42375 + 0.530625 = 0.954375

前一个公式中的H(X) 对应后一个公式中的D  

举个例子:总数除去ID列,还剩两列:身高和喉结,性别是最后的类别,

1.先以身高列做分类,则有高和矮两种类别且一共有8组数据,按照身高区分后一共有3男5女两种类别

以身高区分一共会出现三种情况 高:男  高:女   矮:女

则以身高做区分时的熵为 5/8 * [-3/5 * log(3/5) - 2/5 * log(2/5)] +  3/8 * 3/3 * log(3/3) 
=0.625 * [-0.6 *(-0.736) - 0.4 * (-1.321)]  = 0.60625


说明:5/8代表8个总数里面有5个"高",第一个3/5前面的3代表以身高划分后男生的数量 5代表总以身高划分后 值为"高"的总数, 以此类推。

最后的3/3代表 以身高划分后女生的身高值(矮) / 以身高划分后女生的总数,由于log(3/3) = 0 所以后面省略了。

那么问题来了 一共有两个特征  "身高"和"喉结" ,那么以那种特征区分更好呢?

我们来计算一下以喉结划分之后的熵值。

4/8 * [-3/4 * log(3/4) - 1/4 * log(1/4)]  + 4/8 * [- 4/4 * log(4/4)] = -0.75 * (-0.31) - 0.25 * (-0.5) 

=0.5*(0.232 +  0.125 )= 0.1785

则以喉结划分之后的熵值为0.1785

现在有了两个熵值了,如何比较呢,这里引入一个概念:信息增益:既用"当前分类值"的总熵减去每个分类后熵,取结果最小值,这里的例子里面,总的熵值为0.954375 身高分类的熵值为0.60625 以喉结区分的熵值为0.1785

0.954375 - 0.60625 小于 0.954375 - 0.1785

所以这里以身高分类为最优的选择。 

如果有多个分支,则以父节点的熵值作为被减数(0.954375的位置)  不能最外层总的熵值作为被减数。

由于ID3算法一般会优先选择有较多属性值的特征,因为属性值多的特征会有相对较大的信息增益,所以分的越细数据集确定性越高, 为了避免这个不足,C4.5中是用信息增益比率(gain ratio)来作为选择分支的准则。

C4.5算法

       C4.5相比于ID3,用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足。

       C4.5算法流程与ID3相类似,只不过将信息增益改为信息增益比。

还是上面的例子为例 ,在计算0.954375 - 0.60625 与 0.954375 - 0.1785 之后不以数值的大小直接区分

而是加一步,双方都除以各自的信息熵值 

信息熵计算方法: 以本例来计算  身高划分的信息熵=  -5/8 * log(5/8) +  (-3/8 * log(3/8)) = 0.661

                                             以喉结划分的信息熵 = -4/8 * log(4/8) +  (-4/8 * log(4/8)) = 0.693

既 (0.954375 - 0.60625) / 0.661 = 0.526

与(0.954375 - 0.1785) / 0.693  = 1.119  结果是0.526 < 1.119 则以身高做区分为最优选择。

以上就是简单了解ID3以及C4.5初步了解


参考:https://blog.csdn.net/chenxiqilin/article/details/50395809 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值