决策树是一个类似于流程图的树结构,分支节点表示对一个特征进行测试,根据测试结果进行分类,树叶节点代表一个类别。即,决策树:从根节点开始一步步走到叶子节点(决策)。
一条信息的信息量和它的不确定性有直接关系。一个问题不确定性越大,要搞清楚这个问题,需要了解的信息就越多,其信息嫡就越大。
信息嫡的计算公式为:
H
(
X
)
=
−
∑
x
∈
X
P
(
x
)
log
2
P
(
x
)
H(X)=-\sum_{x \in X} P(x) \log _{2} P(x)
H(X)=−x∈X∑P(x)log2P(x)其中,P(x)表示事件x出现的概率。例如,一个盒子里分别有5个白球和5个红球,随机取出一个球。问:这个球是红色的还是白色的?这个问题的信息量多大呢?由于红球和白球出现的概率都是1/2,代入信息熵公式,可以得到其信息熵为:
H
(
X
)
=
−
(
1
2
log
2
1
2
+
1
2
log
2
1
2
)
=
1
H(X)=-\left(\frac{1}{2} \log _{2} \frac{1}{2}+\frac{1}{2} \log _{2} \frac{1}{2}\right)=1
H(X)=−(21log221+21log221)=1当我们要构建一个决策树时,应该优先选择哪个特征来划分数据集呢?答案是:遍历所有的特征,分别计算,使用这个特征划分数据集前后信息熵的变化值,然后选择信息熵变化幅度最大的那个特征,来优先作为数据集划分依据。即选择信息增益最大的特征作为分裂节点。
把信息熵和概率的函数关系:
从这个函数关系可以看出来,当概率P(x)越接近0或越接近1时,信息熵的值越小,其不确定性越小,即数据越“纯”。熵是衡量一组数据是否纯的指标。典型地,当概率值为1时,此时数据是最“纯净”的, 因为只有一种类别的数据,已经消除了不确定性,其信息熵为0。我们在特征选择时,选择信息增益最大的特征,在物理上,即让数据尽量往更纯净的方向上变换。因此,我们得出,信息增益是用来衡量数据变得更有序、更纯净的程度的指标。
决策树的创建基本上分以下步骤:
1)计算数据集划分前的信息熵。
2)遍历所有未作为划分条件的特征,分别计算根据每个特征划分数据集后的信息熵。
3)选择信息增益最大的特征,并使用这个特征作为数据划分节点来划分数据。
4)递归地处理被划分后的所有子数据集,从未被选择的特征里继续选择最优数据划分特征来划分子数据集。
递归过程什么时候结束呢?一般来讲,有两个终止条件:
1)所有的特征都用完了,即没有新的特征可以用来进一步划分数据集。
2)划分后的信息增益足够小了,这个时候就可以停止递归划分了。针对这个停止条件,需要事先选择信息增益的门限值来作为结束递归的条件。

使用决策树模型拟合数据时,容易造成过拟合。解决过拟合的方法是对决策树进行剪枝处理。
决策树的剪枝有两种思路:前剪枝(Pre-Pruning)和后剪枝(Post-Pruning)。