ID3—决策树算法

一 基本概念

ID3 算法以信息论为基础,其中以信息熵和信息增益度
度量标准,从而实现对数据的归纳分类。
熵的定义:假设有n个互不相容的事件a1,a2,a3,….,an, p(ai)表示事件ai发生的概率,则由该分布传递的信息量称为熵,记为式
这里写图片描述

举个列子
如英语有26个字母,假如每个字母在文章中出现次数平均的话,每个字母的信息量为:
I(e)=-log2(1/26)=4.7
汉字常用的有2500个,假如每个汉字在文章中出现次数平均的话,每个汉字的信息量为:
I(e)=-log2(1/2500)=11.3
如果两个系统具有同样大的信息量,如一篇用不同文字写的同一文章,由于是所有元素信息量的加和,使用的汉字就比使用英文字母要少。
ID3 –计算信息增益
在决策树分类中,假设S是训练样本集合,假定类别标号属性具有m个不同的值,定义m个不同类**C1,C2,….Cm(身高、体重、学历),设**Si是类Ci中样本的个数。对一个给定的样本分类所需的数学期望信息由下式给出
这里写图片描述
其中 pi 是任意样本属于Ci的概率,并用Si /S估计

属性A具有v个不同值{a1,a2,….,av},可以用属性A(身高)将S划分为v个子集{s1,s2,….,sv}(高中低);其中Si包含S中这样一些样本,他们在A上具有值aj。如果A选作测试属性,则这些子集对应于包含集合S的节点生长出来的分支。设Sij是子集Sj中类Ci的样本数,根据由A划分成子集的熵或平均期望信息由下式给出:
这里写图片描述
其中
这里写图片描述
定义信息增益为
这里写图片描述

Gain(A)越大,说明选择测试属性对分类提供的信息越多
依据贪婪算法,为了使下一步所需的信息量最小,要求每一次
都选择其信息增益最大的属性作为决策树的新节点。
信息增益(Gain)=信息期望H-平均信息期望E
决策树建立的关键:一个好的决策树取决于决策树跟和子树跟
的属性

二 决策树理论计算的例子

这里写图片描述
第1步计算决策属性的熵
决策属性“买计算机?”。该属性分
两类:买/不买
S1(买)=641 买的样本个数
S2(不买)= 383 不买的样本个数
S=S1+S2=1024

P1=641/1024=0.6260
P2=383/1024=0.3740
测试样本的信息期望:
H(S1,S2)=H(641,383)
=-P1Log2P1-P2Log2P2
=-(P1Log2P1+P2Log2P2)
=0.9537
第2步计算条件属性的熵
条件属性共有4个。分别是年龄、
收入、学生、信誉。
分别计算不同属性的信息增益。
第2-1步计算年龄的熵
年龄共分三个组:
青年、中年、老年
青年买与不买比例为128/256

S1(买)=128
S2(不买)= 256
S=S1+S2=384

P1=128/384
P2=256/384

H青年(S1,S2)=H(128,256)
=-P1Log2P1-P2Log2P2
=-(P1Log2P1+P2Log2P2)
=0.9183
第2-2步计算年龄的熵
年龄共分三个组:
青年、中年、老年
中年买与不买比例为256/0

S1(买)=256
S2(不买)= 0
S=S1+S2=256

P1=256/256
P2=0/256

H中年(S1,S2)=H(256,0)
=-P1Log2P1-P2Log2P2
=-(P1Log2P1+P2Log2P2)
=0
第2-3步计算年龄的熵
年龄共分三个组:
青年、中年、老年
老年买与不买比例为257/127

S1(买)=257
S2(不买)=127
S=S1+S2=384

P1=257/384
P2=127/384

H老年(S1,S2)=H(125,127)
=-P1Log2P1-P2Log2P2
=-(P1Log2P1+P2Log2P2)
=0.9157
第2-4步计算年龄的Gain
年龄共分三个组:
青年、中年、老年
所占比例
青年组 384/1024=0.375
中年组 256/1024=0.25
老年组 384/1024=0.375

计算年龄的平均信息期望
E(年龄)=0.375*0.9183+
0.25*0+
0.375*0.9157
=0.6877
G(年龄信息增益)
=0.9537-0.6877
=0.2660 (1)
第3步计算收入的熵
收入共分三个组:
高、中、低
E(收入)=0.9361
收入信息增益=0.9537-0.9361
=0.0176 (2)
第4步计算学生的熵
学生共分二个组:
学生、非学生
E(学生)=0.7811
学生信息增益=0.9537-0.7811
=0.1726 (3)
第5步计算信誉的熵
信誉分二个组:
良好,优秀
E(信誉)= 0.9048
信誉信息增益=0.9537-0.9048
=0.0453 (4)
第6步计算选择节点
年龄信息增益=0.9537-0.6877
=0.2660 (1)

收入信息增益=0.9537-0.9361
=0.0176 (2)

学生信息增益=0.9537-0.7811
=0.1726 (3)

信誉信息增益=0.9537-0.9048
=0.0453 (4)

ID3 决策树建立算法步骤
1 决定分类属性;
2 对目前的数据表,建立一个节点N
3 如果数据库中的数据都属于同一个类,N就是树叶,在树叶上
标出所属的类
4 如果数据表中没有其他属性可以考虑,则N也是树叶,按照少
数服从多数的原则在树叶上标出所属类别
5 否则,根据平均信息期望值E或GAIN值选出一个最佳属性作
为节点N的测试属性
6 节点属性选定后,对于该属性中的每个值:
从N生成一个分支ÿ

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值