假想的银行贷款客户历史(略去了客户姓名),包含14个样本。可复制数据集在如下评论第一条! | |||||
| 现要求以这14个样本为训练数据集,以“提供贷款”为类标号属性,用ID3算法构造决策树。 | |||||
第一步,初始数据集信息量 | |||||
| 设数据集为D.类标号属性“提供贷款”有两个不同值:“是”和“否”,因此有两个不同的类。 | |||||
| 令C1对应“是”,C2对应“否”,那么C1有9个样本,C2有5个样本,所有数据集D的熵为如下: |
第二步,分别计算按各属性分裂后所得诸子集的熵的加权和。 | |||||
若以“年龄”作为分裂属性,则产生3个子集(因为该属性有3个不同的取值),所以D按照属性“年龄”作为分裂属性,划分出的说3个子集的熵的加权和为如下: |
| 因此,以“年龄”作为分裂属性来划分的信息增益为如下: | |||||
| Gain(D,年龄)=I(s1,s2)-E(D,年龄)=0.9406-0.6936=0.247 |
同理,若以“收入水平”为分裂属性 |
| 因此,以“收入水平”作为分裂属性划分的信息增益为如下: | |||||
| Gain(D,收入水平)=I(s1,s2)-E(D,收入水平)=0.9406-0.9111=0.0295 |
同理,若以“有固定收入”为分裂属性 |
| 因此,以“有固定收入”作为分裂属性划分的信息增益为如下: | |||||
| Gain(D,有固定收入)=I(s1,s2)-E(D,有固定收入)=0.9406-0.7886=0.152 |
同理,若以“VIP”为分裂属性 |
| 因此,以“VIP”作为分裂属性划分的信息增益为如下: | |||||
| Gain(D,VIP)=I(s1,s2)-E(D,VIP)=0.94060.892159=0.0484 |
由此可见,若以“年龄”作为分裂属性,所得信息增益最大。于是根据该属性的值,将数据集D分裂为3个子集:D1,D2,和D3,如下图所示 |
| 在下图中,节点3中的全部样本都属于同一个类别,因此它成为叶子节点,不再分裂。采用同样的方法,分别对数据集D1和D3进行分裂,直到所得子集的全部样本属于同一个类别,得到全部叶子节点。最终得到的决策层树如下图所示: |