1.Abstract

2.Background

3.Task

【任务3 - 决策树算法梳理】时长:2天

信息论基础(熵 联合熵 条件熵 信息增益 基尼不纯度) 2.决策树的不同分类算法(ID3算法、C4.5、CART分类树)的原理及应用场景
回归树原理
决策树防止过拟合手段
模型评估
sklearn参数详解,Python绘制决策树

4.Work

决策树算法 

决策树在构造过程中不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用。
1、ID3,C4.5,CART算法
2、C4.5Rule的泛化能力通常优于C4.5决策树

决策树的解释
1、决策树是基于树结构进行决策的
2、一般地,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点。叶结点对应于决策结果,其他每个结点则对应于一个属性测试。
3、每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集。
4、从根结点到每个叶结点的路径对应了一个判定测试序列。

决策树的构建
1、决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树。
2、决策树的生成是一个递归的过程。
在决策树基本算法中,有3种情形会导致递归返回:
(1)当前结点包含的样本全属于同一类别,无需划分;
(2)当前结点包含的样本集合为空,不能划分;
(3)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分。
但是,这样往往会使得树的节点过多,导致过拟合问题。
可行的方法是增加停止条件:1)当前结点中的记录数低于一个最小的阈值,那么久停止分割。2)设置树的最大深度。

划分属性
贪心算法,使决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。
划分属性分为三种不同的情况:
1)属性是离散值且不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
2)属性是离散值且要求生成二叉决策树。此时用属性划分的一个子集进行测试,按照“属于此子集“和”不属于此子集“分成两个分支。
3)属性是连续值。此时确定一个值作为分裂点split_point,按照>split_point和<=split_point生成两个分支。
1、信息增益、信息熵
ID3决策树学习算法就是以“信息增益”(information gain)为准则来选择划分属性。
信息增益准则对可取值数目较多的属性有所偏好(因为相对来说,每个分支结点下样本越少,纯度越高)。
2、增益率
C4.5决策树算法使用“增益率”(gain ratio)来选择最优划分属性。
增益率准则对可取值数目较少的属性有所偏好,因此,C4.5算法不直接选择增益率最大的候选属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
3、基尼指数
CART决策树使用“基尼指数”(Gini index)来选择划分属性。
Gini(D)反映了从数据集中随机抽取两个样本,其类别标记不一致的概率。因此Gini(D)越小,则数据集的纯度越高。

剪枝处理
在决策树学习中,为了尽可能正确分类训练样本,节点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学得“太好了”,以至于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。
决策树剪枝的基本策略:“预剪枝”(prepruning)和“后剪枝”(postpruning)

连续值处理
1、C4.5决策树算法中采用二分法离散化连续属性。
需要注意的是,与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。

缺失值处理
C4.5算法有该处理。
基本思想是考虑非缺失样例的信息增益,然后乘上非缺失值的比例。但是这个比例的定义为非缺失值的权重之和除以全部数据的权重之和。

单变量决策树,在每个非叶结点仅考虑一个划分属性,产生“轴平行”分类面。即分类边界的每一段都是与坐标轴平行的。
多变量决策树(multivariate decision tree)能够实现“斜划分”甚至更复杂的决策树。