决策树 ID3 推导
决策树 ID3 简介
ID3作为一种经典的决策树算法,是基于信息熵来选择最佳的测试属性,其选择了当前样本集中具有最大信息增益值的属性作为测试属性
样本集的划分则依据了测试属性的取值进行,测试属性有多少种取值就能划分出多少的子样本集;同时决策树上与该样本集相应的节点长出新的叶子节点
ID3算法根据信息论理论,采用划分后样本集的不确定性作为衡量划分样本子集的好坏程度,用“信息增益值”度量不确定性——信息增益值越大,不确定性就更小,这就促使我们找到一个好的非叶子节点来进行划分
ID3 算法的基本原理以及实例分析
我们假设一个这样的数据样本集 S,其中数据样本集 S 包含了 s 个数据样本,假设类别属性具有 m 个不同的值(判断指标):Ci(i=1,2,3,…,m)Ci(i=1,2,3,…,m)
SiSi 是 CiCi 中的样本数,对于一个样本集
总信息熵为:(这里信息熵的定义与其他课程中的信息熵定义一样)
I(S1,S2,……,Sm)=−∑i=1mPilog2Pi
I(S1,S2,……,Sm)=−∑i=1mPilog2Pi
其中,PiPi 表示任意样本属于 CiCi 的概率,也可以用 sissis 进行估计
我们假设一个属性 A 具有 k 个不同的值 a1,a2,…,aka1,a2,…,ak, 利用属性 A 将数据样本 S 划分为 k 个子集 S1,S2,…,SkS1,S2,…,Sk,其中 SjSj 包含了集合 S 中属性 A 取 ajaj 值的样本。若是选择了属性 A 为测试属性,则这些子集就是从集合 S 的节点生长出来的新的叶子节点
设 SijSij 是子集 SjSj 中类别为 CiCi 的样本数,则根据属性 A 划分样本的信息熵值为:
E(A)=∑j=1k[S1j,S2j,……,SmjS×I(S1j,S2j,……,Smj)]
E(A)=∑j=1k[S1j,S2j,……,SmjS×I(S1j,S2j,……,Smj)]
最后,我们利用属性 A 划分样本集 S 后得到的信息熵增益为:
Gain(A)=I(S1,S2,……,Sm)−E(A)
Gain(A)=I(S1,S2,……,Sm)−E(A)
决策树 ID3 的构建的准备工作
使用决策树做预测的每一步骤都很重要,数据收集不到位,将会导致没有足够的特征让我们构建错误率低的决策树。数据特征充足,但是不知道用哪些特征好,将会导致无法构建出分类效果好的决策树模型。从算法方面看,决策树的构建是我们的核心内容
决策树要如何构建呢?通常,这一过程可以概括为3个步骤:特征选择、决策树的生成和决策树的修剪
推导过程
头发 声音 性别
长 粗 男
短 粗 男
短 粗 男
长 细 女
短 细 女
短 粗 女
长 粗 女
长 粗 女
根据以上信息可以发现有两个特征来判断男女。
1.先根据头发判断,若判断不出再通过声音判断。
2.先根据声音判断,若判断不出再通过头发判断
Claude Shannon 定义了熵(entropy)和信息增益(information gain)。
用熵来表示信息的复杂度,熵越大,则信息越复杂。公式如下:
信息增益(information gain),表示两个信息熵的差值。
先计算没有分类前的熵总共有8人,男生3人,女生5人。
熵(总)=-3/8log2(3/8)-5/8log2(5/8)=0.9544
再分别计算分类后熵。
1.长发H1=-1/4log2(1/4)-3/4log(3/4)=0.8113
短发H2=-1/2log2(1/2)-1/2log(1/2)=1
人H=4/80.8113+4/81=0.9057
信息增益=0.9544-0.9057=0.0487
2.粗H1=-3/6log2(3/6)-3/6log2(3/6)=1
细H2=-2/2log2(2/2)=0
人H=6/81+2/8*0=0.75
信息增益=0.9544-0.75=0.2087
方法二的信息增益大,区分能力更强更具代表性