熵与信息增益
决策树模型本质上就是一个 IF-Then 规则的集合
决策树学习的第一步就是“特征选择”
特征选择分两个步骤进行:
- 选择对训练数据具有最大分类能力的特征进行树的叶子节点的分类;
- 选择该特征最合适的分裂点进行分裂。
熵(Entropy),是表示随机变量不确定性的度量。
假设
是一个具有有限个值的离散型随机变量,服从如下的概率分布:
我们以随机变量只取 两个值为例,假设 服从如下分布:
由图可知,当 或 时熵为 ,也即随机变量完全没有不确定性(即完全确定);
当 时熵取值最大,不确定性最高。
信息增益:
设随机变量
的联合概率分布为:
在此基础上,我们引出信息增益(Information Gain)的概念,它表示在特征 给定的条件下使得类 的信息不确定性减少的程度。
数学表述如下:特征 对训练集数据 的信息增益 定义为集合 的熵 与在特征 给定的条件下 的条件熵 之差,即:
特征选择策略
决策树的学习应用信息增益准则选择特征。
给定训练集 和特征 。由熵、条件熵和信息增益的定义我们可以知道:
- 熵 表示对数据集 进行分类的不确定性;
- 条件熵 表示在特征 给定的条件下对数据集 进行分类的不确定性;
- 信息增益 表示在特征 给定的情况下使得数据集 进行分类的不确定性减少的程度。
显然,对于数据集 而言,信息增益依赖于特征,一般情况下,不同的特征会有不同的信息增益。信息增益大的特征具有更强的分类能力。
所以我们在构建决策树的过程中,应该选择信息增益最大的特征进行分裂构建。
决策树的生成
设训练集为
,
表示样本容量大小;总共有
给类,用
表示。
设特征
有
个不同的取值
,根据特征
的取值将数据集
划分为
个互不相交的子集
,
表示第
个子集中的样本的个数
则显然有:
ID3算法
ID3算法的核心是递归的构建决策树,递归的过程中在每个节点上应用信息增益准则选择特征,直至满足递归停止条件:所有特征的信息增益都很小或者没有特征可以选择。
假设有训练数据集
,特征集
,最小信息增益阀值
和最终训练出来的决策树
则ID3算法的执行过程:
- 如果 中所有实例属于同一类 ,那么 就是单节点树,并且将 作为该节点所表示的类别,返回 ;
- 如果 ,则 为单节点树,并且将 中实例数量最多的类作为该节点的类标记,返回 ;
- 否则,计算 中各特征对数据集 的信息增益,选择信息增益最大的特征 ;
- 如果 的信息增益小于 ,此时 设置为单节点树,同时也选择将 中实例最多的类作为该节点的类标记,返回 ;
- 否则,对特征 的每一个可能的取值 ,根据 将数据集 分割为互不相交的子集 ,此时依然将 中实例数最多的类作为标记,构建子节点。叶子节点和子节点构成树 ,返回 ;
- 对第5步中,第 个子节点,以 为训练集,以 为新的特征集递归的调用1-5步得到子树 ,并返回。
C4.5算法
C4.5算法与ID3算法基本一致,只是特征选择的选择方法从ID3依据的信息增益改为了信息增益比。
信息增益比:
以信息增益作为划分训练数据集
的特征,会倾向于选择特征值较多的特征,在不同特征的数量不一致的情况下,这会带来一种不公平性,而使用信息增益比(Information Gain Ratio)就可以解决这个问题。
信息增益比的定义:
特征
对训练数据集
的信息增益比
表示特征
的信息增益
与训练数据集
关于特征
的熵
的比值:
C4.5算法的过程与ID3算法的过程几乎完全一致,只需把ID3算法过程中的“按照信息增益选择特征”换为“按照信息增益比选择特征”即可。
决策树的剪纸策略
决策树的生成算依靠法递归构建决策树,直到不能继续构建为止。然而,这样产生的决策树很容易过分的学习训练样本,使得它对未知的测试数据的分类效果比较差,即这样产生的决策树很容易过拟合。
过拟合的原因在于我们构建的决策树过分复杂,导致其过多地学习训练样本的分布,而对未知样本的学习泛化能力较弱。
解决这个问题的方法就是简化已生成的决策树,使其变得更简单。
在决策树学习的过程中将已经生成的决策树进行简化的过程称作“剪枝”。也就是说,我们可以将决策树中划分的过细的叶子节点剪去,退回到其父节点成为新的叶子节点,使得新的决策树变得简单,并且能够在未知的测试数据的预测上取得更好的分类结果。
决策树的剪枝策略主要分为两大类:预剪枝策略和后剪枝策略
预剪枝策略的常用方法:
- 指定每一个结点所包含的最小样本数目。例如10,则该结点总样本数小于10时,则不再分;
- 指定树的高度或者深度。例如树的最大深度为4;
- 指定结点的熵。若该节点的熵小于某个值,不再划分。
预剪枝策略优缺点:
- 优点:预剪枝策略能够减少不必要的分裂操作,节省时间;
- 缺点:在预剪枝后构建决策树的某个时刻可能会出现更高的增益,也就是说预剪枝有可能得不到最优的树。
后剪枝策略的常用方法:
- 将决策树增长到它的最大深度,递归的进行剪枝,剪去那些使得增益值为负值的叶子节点。
后剪枝策略优缺点:
- 优点:能够获得最优的剪枝策略决策树;
- 缺点:那些被后剪枝的树节点的分裂过程浪费时间。
以sklearn中的iris数据集为例,得到的鸢尾花决策树如下: