枝干拓展

在上一篇文章中,我们计算了信息熵和信息增益,并且根据这2个概念的公式计算出了KDA的信息增益,走了一遍信息增益计算的流程。

但是根结点往下和叶子结点往下的计算方法还是有一些差别的,接下来我们举一个例子,假设我们选择KDA作为我们第一层决策树延展的样本属性,那么我们选定了KDA属性之后发现还有MVP/SVP次数,单排胜率,灵排胜率,参团率,伤害占比,承伤占比这些属性需要继续往下分类,因此我们再选择MVP/SVP次数作为下一个讲解分析。

再发一下我们的数据集:

首先我们可以数出来有11个样本的KDA高于平均值,其中有5个是高手,6个非高手,因此MVP/SVP次数的是在这个基础上进行计算的,那么KDA高于平均值的样本集合的信息熵计算如下:

接下来计算在此基础上的MVP/SVP次数的高于均值的样本集合5个,得到了数据集(4,8,11,14,15),低于平均值的样本集合6个,得到了数据集(3,5,6,7,10,12),分别计算信息熵如下:

最后计算MVP/SVP次数的信息增益

其实这里可以发现计算叶子节点的信息增益的时候,需要在其父节点的样本集合中找到相应的样本属性以及样本属性值进行计算。

改进

到了这里细心的读者可能已经发现了一些问题,那就是样本数量之于信息增益的关系,在根结点的时候,样本数量包含了整个样本集合,因此此时计算出来的信息熵相较于叶结点的信息熵明显偏大。这表明了样本数量会影响决策树的展开结果,这显然是我们不想看到的结果,因此就需要新的计算工具了,那就是“增益率”,计算公式如下图所示:

当然,没有一个计算公式是万能的,这个增益率是会偏好于样本数量比较少的样本属性,因此我们需要结合增益率和信息增益来选择下一个叶结点,在这里,我们再次采用了启发式的方法,启发式的方法可以认为是一些推理起来有用,但是并无严格数学证明的方法,那么在这个场景当中的启发式方法就是先从候选划分属性中好处信息增益高于平均水平的属性,再从中选择增益率最高的

但是我们也介绍了启发式方法的定义,简单来说就是推理起来好用,而且不需要证明的办法,那么其实读者自己也可以想一些办法来处理这个问题。比如可以将“信息增益/增益率”作为评判的标准等等,但是如何检验这些方法是否起作用,或者说是否比已有的方法更优呢?这时我们就需要使用验证集对决策树的整体性能做一个评估了,这就涉及到了模型评估的问题。