决策树就是先把一堆数据依次按照某一个条件(特征)划分子集,构建成树,然后来一条新的数据,让新数据按照构造树时的条件一一比较,直到找到叶子节点确定类别。
(一)构造决策树
我们知道每一条数据中都包含几个特征(值),决策树需要根据某一条件来判断划分子集。那么好几个特征中我们选择哪个特征作为决策对象才会有好的划分效果呢?首先我们要找到决定性的特征。还有一个问题,怎么样就算好的划分效果呢?
这里我们用到了一个理论概念“信息增益”。构造决策树的目的是:将同一类别数据放到一个子集中,将无序的数据变得更加有序。信息增益就是:在划分数据集之前之后信息发生的变化。获得信息增益最高的特征就是最好的特征。
下一个问题:怎么度量信息增益值,另一个概念出来了:香农熵。我们要计算所有类别所有可能包含的信息期望值,通过下面的香农熵公式:
好了,举个例子,有数据集
dataset = [[1, 1, ‘yes’],