统计学习第五章:决策树
- 决策树模型
分类决策树模型是一种描述对实例进行分类的树形结构,表示基于特征对实例进行分类的过程。决策树由结点和有向边组成。结点有两种类型:内部节点和叶节点,内部节点表示一个特征或属性,叶节点表示一个具体的类。
分类的时候,先从根节点开始,当前节点设为根节点,当前节点必定是一种特征,根据实例的在该特征上的取值,向下一层的节点移动,直到到达叶节点,将实例分到叶节点对应的类中。 - 决策树学习
决策树学习的本质是从数据集中归纳出一组分类规则,决策树学习算法包含特征选择、决策树的生成与剪枝过程。决策树的学习算法一般是递归地选择最优特征,并用最优特征对数据集进行分割。开始时,构建根节点,选择最优特征,该特征有几种值就分割为几个子集,每个子集分别递归调用此方法,返回节点,返回的节点就是上一层的子节点。直到数据集为空,或者数据集只有一维特征为止。
①特征选择:既然是递归地选择最优特征,就要有一个准则来确定什么样的特征是最优特征。特征选择的目的是选取对训练数据具有分类能力的特征,这样可以提高决策学习的效率,减少决策树的层次。如果利用一个特征进行分类之后的效果和随机选择一个特征分类的结果没有多少差别,则称这个特征是没有分类能力的。通常通过信息增益或信息增益比来确定最优特征。
信息增益
这个问题得先介绍熵的概念,应该算是NLP和ML的老相好了:
对于一个可能有n种取值的随机变量:
其熵定义为:
由定义知道,随机变量X的熵与X的值无关,只与分布有关,所以也可以将X的熵记作H(p),即:
由定义知熵值是一个非负数,且0<=H(p)<=logn,熵值越大反应随机变量X的不确定性越大,可以假设极端情况下,即熵为0这是要么p=0要么p=1,这时候随机变量的确定性最强也即不确定性最小。
下面引出条件熵的概念,假设随机变量(X,Y),其联合概率分布为
条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性,定义为在X给定的条件下Y的条件概率分布的熵对X的数学期望,期望大家都知道怎么求的嘛,值乘以对应的条件概率的熵,所以条件熵表示为:
,pi表示P(X=xi),意思是数据集中X这个特征取值xi的样本出现的概率。
当上述定义式中的概率由数据估计(比如上一章提到的极大似然估计,由频数/总量)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。(总感觉这和先验概率是一样的。。。)。
定义了这两个概念之后,就可以引出信息增益,假设一个特征A对数据集D的信息增益表示成g(D,A),它定义为数据集D的经验熵H(D)与数据集D在已知特征A条件下的条件经验熵H(D|A)之差,即g(D,A)=H(D)-H(D|A),这个差又称为互信息(关于互信息的一个应用:《基于互信息和左右信息熵的短语提取识别》),决策树学习中的信息增益等价于训练数据集中类与特征的互信息。由上面的叙述我们知道,H(D)表示数据集本身的不确定性,H(D|A)表示在给定特征A的条件下数据集D的不确定性,给定特征A即是选择A做当前最优特征,我们当然希望选择A后会使得数据集D的不确定性越小越好,这样两者之差就会越大越好,所以我们选择两者之差即信息增益最大的一个特征作为当前最优特征,信息增益也表示由于特征A使得数据集D的分类不确定性减少的程度。信息增益大的特征具有更强的分类能力,会使得接下来的分类确定性更强。
计算信息增益的方法就如上述一样,用极大似然的方法即频数/总量。数据集D中的pi是每一个类别的概率,条件熵的求法就是条件概率分布的熵对期望,都比较好求。总结信息增益的步骤如下:
信息增益比
说完了信息增益,来说一下信息增益这种算法的缺点,以信息增益为准则在选择特征时,倾向于选择取值较多的特征作为最优特征。因为信息增益的目的是使得选择这个特征作为根节点之后,接下来的决策树会越小越好也就是越容易分类。如果这个特征的取值比较多,会使下一层比较宽占据较多样本,那自然再次递归时会更快的分类。取一个极端的例子来讲,省份证ID是一个人的特征,如果把身份证作为跟节点,那一下就把人这个庞大的数据集给分开了,因为根节点下一层的都是叶节点了,但显然这是没有意义的。解决这个问题的办法就是采用信息增益比,信息增益比的表示如下:分母训练数据集D关于特征A的熵其实就是按特征A分裂之后每个子集的熵之和。
- 决策树的生成