决策树之三:ID3.0算法实例1

假想的银行贷款客户历史(略去了客户姓名),包含14个样本。

可复制数据集在如下评论第一条!

现要求以这14个样本为训练数据集,以“提供贷款”为类标号属性,用ID3算法构造决策树。

第一步,初始数据集信息量

设数据集为D.类标号属性“提供贷款”有两个不同值:“是”和“否”,因此有两个不同的类。
令C1对应“是”,C2对应“否”,那么C1有9个样本,C2有5个样本,所有数据集D的熵为如下:

决策树之三:ID3.0算法实例1_第1张图片

第二步,分别计算按各属性分裂后所得诸子集的熵的加权和。

若以“年龄”作为分裂属性,则产生3个子集(因为该属性有3个不同的取值),所以D按照属性“年龄”作为分裂属性,划分出的说3个子集的熵的加权和为如下:

决策树之三:ID3.0算法实例1_第2张图片

决策树之三:ID3.0算法实例1_第3张图片

因此,以“年龄”作为分裂属性来划分的信息增益为如下:
Gain(D,年龄)=I(s1,s2)-E(D,年龄)=0.9406-0.6936=0.247

同理,若以“收入水平”为分裂属性

决策树之三:ID3.0算法实例1_第4张图片

因此,以“收入水平”作为分裂属性划分的信息增益为如下:
Gain(D,收入水平)=I(s1,s2)-E(D,收入水平)=0.9406-0.9111=0.0295

决策树之三:ID3.0算法实例1_第5张图片

同理,若以“有固定收入”为分裂属性

决策树之三:ID3.0算法实例1_第6张图片

因此,以“有固定收入”作为分裂属性划分的信息增益为如下:
Gain(D,有固定收入)=I(s1,s2)-E(D,有固定收入)=0.9406-0.7886=0.152

决策树之三:ID3.0算法实例1_第7张图片

同理,若以“VIP”为分裂属性

因此,以“VIP”作为分裂属性划分的信息增益为如下:
Gain(D,VIP)=I(s1,s2)-E(D,VIP)=0.94060.892159=0.0484

决策树之三:ID3.0算法实例1_第8张图片

由此可见,若以“年龄”作为分裂属性,所得信息增益最大。于是根据该属性的值,将数据集D分裂为3个子集:D1,D2,和D3,如下图所示

决策树之三:ID3.0算法实例1_第9张图片

在下图中,节点3中的全部样本都属于同一个类别,因此它成为叶子节点,不再分裂。采用同样的方法,分别对数据集D1和D3进行分裂,直到所得子集的全部样本属于同一个类别,得到全部叶子节点。最终得到的决策层树如下图所示:
决策树之三:ID3.0算法实例1_第10张图片


你可能感兴趣的:(决策树算法原理详解)