决策树:一种常见的机器学习方法:每个测试的结果或者是导出进一步的判定问题,或者是最终结论。
一颗决策树通常包含一个根节点、若干个内部节点【属性测试】和若干个叶节点【决策结果】。
决策树学习基本算法:是一种有监督学习算法,主要用于解决分类与回归问题。
1,当前节点包含的样本都属于同一个类别,已经无须再划分。
2,当前属性集为空,或者所有样本在所有属性上取值都相同,无法划分。
3,当前节点包含的样本集合为空,不能再划分。
决策树的生成:对训练集中的样本进行划分,划分需要参照的属性是最优划分属性,此为决策树学习的关键。
一般根节点会包含所有的样本数据,而越往下划分,节点所包含的样本越少,该节点的纯度越高,最后就是叶节点。
信息熵:是度量样本集合纯度最常用的一种指标。
定义:
当前样本集合D,以及第k类样本所占比例。
信息增益:
信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。
注意:信息增益准则偏好取值数目较多的属性。
一个案例:西瓜数据集的决策树判决
该数据集共包含17个训练样本。
1,根节点:包含所有17个样例。
2,计算出根节点的信息熵0.998
3,计算当前属性集合中每个属性的信息增益:颜色等六个属性。分别带公式计算信息增益
4,选择信息增益最大的那个属性,将之定为关键属性。也就是划分用的属性——纹理。
5,如此就生成了决策树的第二层,从根节点到第二层就是按照“纹理”这个属性进行的划分。
6,然后对每一个分支节点做进一步的划分,划分方式与之前划分根节点相同。
7,如此循环往复,可以得到一颗完整的决策树。
信息增益准则偏好取值数目较多的属性,为了避免这个问题,我们可以使用【增益率】
增益率:
增益率准则偏好数目少的属性。
C4.5算法:将信息增益和增益率准则结合使用。先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的那个属性作为划分属性。
基尼指数:
CART决策树,使用基尼指数来选择划分属性。
基尼值:用来度量数据集D的纯度。
基尼值,直观来说就是反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。最后选择基尼指数最小的那个属性作为最有划分属性。
剪枝处理:决策树在划分节点的过程中不断地产生分支。但是如果分支过多,就会导致决策树过拟合。因此需要进行剪枝处理。
剪枝策略 包含预剪枝和后剪枝。
其中预剪枝是在决策树生成过程中进行的,在每个节点划分前对其进行评估,再决定要不要划分。
后剪枝是对一颗已经完全生成的决策树自底向上的进行判断。判断每个非叶节点是否对泛华性能能的提升有帮助,然后决定是否将其变为叶节点,也就是修剪它。
4.4 连续与缺失值
连续值的处理:采用二分法对连续属性进行离散化处理。比如C4.5决策树。
缺失值的处理:
需要解决的两个问题:【1】在有缺失值的情况下如何选择划分属性。
【2】对于在划分属性上有缺失值的样本,怎么对他进 行划分。
【1】在有缺失值的情况下去计算一个属性的信息增益,可以先计算去除缺失值以后的子集,算出信息增益后,在成一个系数,用这个系数来表示整体属性的信息增益。这个系数:
【2】在进行结点划分的时候,将存在划分属性缺失的样本划分到所有的节点中,不过要给这个样本乘上一个权重。
4.5 多变量决策树
可以实现斜划分甚至更复杂的划分方式的决策树。