决策树
决策树,顾名思义,是基于树结构来进行决策的
一般,一棵决策树包含一个根节点、若干个内部节点和若干个叶节点;叶节点对应于决策结果,其他每个节点则对应于一个属性测试;
根节点包含样本全集,根节点到叶节点的路径对应了一个判定测试序列,并且具有一个重要的性质:互斥并且完备,也就是说,每一个实例都被一条路径或者一条规则所覆盖,而且只被一条路径或一条规则所覆盖
决策树学习的目的是产生一棵泛化能力强的决策树,基本流程遵循分治策略

三种情形导致递归返回:
- 当前节点包含的样本全部属于统一类别,无需划分
- 当前属性集为空,或者所有样本在所有属性上的取值都相同,无法划分
- 当前节点包含的样本集合为空,不能划分
划分选择
如何选择最优划分属性,也就是随着划分过程的进行,分支节点包含的样本尽可能属于同一类别,即节点纯度较高
由此,需要有纯度的衡量标准
信息增益
信息熵定义为 \(\Ent(D)=-\sum \limits_{k=1}^{|y|}p_klog_2^{p_k}\)
Ent(D)的值越小,D的纯度越高
令\(D^v\)表示D中所有在属性a上取值为\(a^v\)的样本,则用属性a对样本集进行划分得到的信息增益是:\(Gain(D,a)=Ent(D)-\sum \limits_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v)\)
要纯度提升大,也就是让信息增益大(使用属性集a造成的信息熵减小值大),ID3决策树就是以信息增益为准则来选择划分属性
但信息增益会对可取值数目较多的属性有所偏好,例如编号属性,虽然能使得节点纯度最高,但是泛化能力显然较差
为此,例如C4.5使用增益率来选择最后划分属性,不过需要注意,增益率准则对可取值数目较少的属性有所偏好
可以使用两种策略结合的启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的
基尼指数 \(Gini(D)=\sum \limits_{k=1}^{|y|}\sum \limits_{k' \neq k}p_k p_{k'}=1-\sum \limits_{k=1}{|y|}p_k^2\)
反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小,数据集D的纯度越高
剪枝处理
正如上面提到的,每个节点只包含一个样本时,虽然纯度较高,但泛化性较弱,也就是处于过拟合状态,而剪枝可以解决这个问题
预剪枝
当前节点的划分不能带来决策树泛化性能的提升,则停止划分并将当前节点标记为叶节点
这是一种贪心的策略,因而并不保证正确性,例如当前有些分支的划分虽然不能提升泛化性能,但是后续的划分可能使得性能有显著提高,或者说,预剪枝有欠拟合的风险
后剪枝
对于一个完整的决策树,自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点
后剪枝的前拟合风险小,但是其训练时间开销更大
多变量决策树
将每个属性视为坐标平面中的一个坐标轴,那么决策树形成的分类边界是由若干个与坐标轴平行的分段组成

如果使用属性的线性组合进行划分,那么可以使用斜的划分边界,也就是可以得到类似于下图的形式

此时,学习过程中,不是为每个非叶节点寻找一个最优划分属性,而是试图建立一个合适的线性分类器,即看作一个线性回归模型,然后确定参数
决策树类型
ID3算法
选择信息增益最大的特征作为节点的特征
ID3算法相当于用极大似然法进行概率模型的选择
C4.5算法
使用信息增益比来选择特征
CART算法
分类与回归树模型,由特征选择、树的生成以及剪枝组成,既可以用于分类也可以用于回归
CART假设决策树是二叉树,内部节点特征的取值为“是”和“否”
同时在决策树的生成过程中使用基尼指数最小化准则进行特征选择来生成二叉树

浙公网安备 33010602011771号