本章主要内容为决策树的概念、构造、信息增益的定义、熵的计算、如何根据信息熵划分数据集并搭建决策树、使用Matplotlib注解绘制树形图、存储和打开决策树,以及一个决策树的应用实例。(代码均为ID3算法)
决策树:决策树的数据结构是一棵树,所有非叶结点上包含了一个判定标准,数据根据这个判定的结果,走向不同的分支,并最终归类为叶节点上的类。
信息增益:划分数据集前后,信息发生的变化称之为信息增益。通过计算信息增益,我们就能知道按照什么特征分类,能够获得最好的结果。
熵的定义:熵即信息的期望值。
信息的计算公式:-log(p(xi),2),其中p(xi)为选择该分类的概率。
熵的计算公式:根据上述定义及公式,我们可以很容易的得到熵的计算公式:H=-Σp(xi)*log(p(xi),2)。
根据信息熵划分数据集:首先得到数据集的数据数x0,然后计算各个类型的出现次数xi,xi/x0得到类型i的出现概率p(xi),然后根据公式计算出该数据集的熵。
如果我们对每一种分类结果,都进行一次这样的计算,最终通过比较就能知道哪种分类结果是最好的。
构建决策树:由于决策树是树,所以我们可以递归的构建它。如果剩下的所有数据均为一类,则分类到达叶节点,构建结束。否则选出此时数据集中的最好划分特征,并用该特征对其分类。
使用matplotlib注解绘制树形图:使用annotations和pyplot库,可以很方便地绘制图表。我们首先使用递归的方法得到树的宽度及深度,由此得到各个结点的坐标。然后可以使用绘图函数进行树的绘制。
存储与打开决策树:使用了pickle库的dump与load函数。这也体现了决