决策树算法解析---ID3,C4.5

前言:虽然网上已经有了很多的关于决策树的文章,自己也反复的看了不少,但是过了一段时间又觉得比较模糊,因此自己打算来写一篇,自己着重强调物理意义,增加自己的理解。

二:基础知识

决策树首先是基于信息论中的信息熵的增益来作为决策。因此首先我来描述一些信息论中的知识。

1)自信息量:在收到ai之前,接受者对信源发出ai的不确定性定义为信息符号ai的自信息量


2)信息熵,自信息量只能反映符号的不确定性,而信息熵可以用来度量整个信源X整体的不确定性。

3)条件熵:如果信源X和随即变量Y不是相互独立的,接受者收到信息Y,那么用条件熵H(X|Y)来度量收信者在收到随即变量Y之后,对随即变量X任然存在的不确定性,X对应信源符号,ai(i=1.2...n),Y对应信源符号bj(j=1,2...s)


4)平均互信息量:用来表示信号Y所能提供的关于X的信息量的大小,用公式表示


三:ID3算法

      先来描述ID3算法。

       设样本数据集为X,目的是要把样本数据分为n类。设属于第i类的样本数据个数是Ci,X中的样本总数是|X|,则一个样本属于第i类的概率是P(Ci)≈Ci/ |X|。此时决策树对C的不确定程度(即为信息熵)为


若选择属性a(设属性a有m个不同的取值),进行测试,其不确定程度(即条件熵)为


则属性a对于分类器提供的信息量为


我的个人理解是:H(X|a)是条件熵,是选择了属性a之后,信源还剩下的信息量,H(X)- H(X|a)就是我们选择a所获得的信息量(也就是选择a,传递了多少信息),显然我们应该选择最大的一个。这样得到的决策树的不确定性最小,确定性最大。这就是ID3算法的理论基础。

举个例子,假定S是一套有关天气的训练样例,描述它的属性包括可能是具有Weak和Strong两个值的Wind。像前面一样,假定S包含14个样例,[9+5-]。在这14个样例中,假定正例中的6个和反例中的2个有Wind =Weak其他的有Wind=Strong。由于按照属性Wind分类14个样例得到的信息增益可以计算如下。



链接http://blog.csdn.net/princewong/article/details/2121579也给出了一个具体的实例

四:C4.5算法

与ID3算法不同,C4.5算法挑选具有最高信息增益的属性作为分支属性。

对样本集T,假设变量a有K个属性,属性取值为a1,a2,...ak,对应ai出现的样本数分别为ni,若n是样本总数,则应有n1+n2+...+nk=n;Quinlan利用属性a的熵值H(X,a)来定义样本关于属性a的信息熵,即



信息增益率定义为:


按照我个人的理解,就是获得了多少的信息/关于属性a本身总共的信息,得到一个比值就是获得信息的效率,当然也选最大的。这就是c4.5算法。

五:关于决策树的一些优缺点

1)C4.5算法不仅可以处理离散属性,也可以处理连续属性。

2)增加了修剪枝的策略,最基本的就是即预剪枝(pre-pruning)和后剪枝(post-pruning)。

哎,好懒,没写的时候想好好写,写的时候各种细节都想抛。比如CART树,实现的源代码,如何剪枝等,还有很多要写。等什么时候又时间了在来写吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值