决策树构建

    上篇文章也粗略提到过,构建决策树的算法有很多。篇幅原因,本篇文章只使用ID3算法构建决策树。

ID3算法

    ID3算法的核心是在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子节点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。

    在使用ID3构造决策树之前,我们再分析下数据。

ID 年龄 有工作 有自己的房子 信贷情况 类别(是否个给贷款)
1 青年 一般
2 青年
3 青年
4 青年 一般
5 青年 一般
6 中年 一般
7 中年
8 中年
9 中年 非常好
10 中年 非常好
11 老年 非常好
12 老年
13 老年
14 老年 非常好
15 老年 一般

    利用上篇文章求得的结果,由于特征A3(有自己的房子)的信息增益值最大,所以选择特征A3作为根结点的特征。它将训练集D划分为两个子集D1(A3取值为”是”)和D2(A3取值为”否”)。由于D1只有同一类的样本点,所以它成为一个叶结点,结点的类标记为“是”。

    对D2则需要从特征A1(年龄),A2(有工作)和A4(信贷情况)中选择新的特征,计算各个特征的信息增益:

  • g(D2,A1) = H(D2) - H(D2 | A1) = 0.251
  • g(D2,A2) = H(D2) - H(D2 | A2) = 0.918
  • g(D2,A3) = H(D2) - H(D2 | A3) = 0.474

    根据计算,选择信息增益最大的特征A2(有工作)作为结点的特征。由于A2有两个可能取值,从这一结点引出两个子结点:一个对应”是”(有工作)的子结点,包含3个样本,它们属于同一类,所以这是一个叶结点,类标记为”是”;另一个是对应”否”(无工作)的子结点,包含6个样本,它们也属于同一类,所以这也是一个叶结点,类标记为”否”。

    这样就生成了一个决策树,该决策树只用了两个特征(有两个内部结点),生成的决策树如下图所示。

决策树基础篇原理介绍(二)

    我们使用ID3算法,通过计算构建出决策树,接下来,让我们看看如何进行代实现。

相关文章: