划分选择
信息增益
ID3决策树学习算法就是以信息增益为准则来选择划分属性
当在选择最佳属性值进行划分时,信息增益准则对可取值数据较多的属性有所偏好。
意思是,假设当某个属性值有三个枚举值,另一个属性值有两个枚举值,通常来说,三个枚举值的信息增益要优于两个枚举值,这样在选择的时候会有一定的不公平性。为了减少这种偏好可能带来的不利影响,提出了C4.5决策树算法。
增益率
C4.5决策树算法使用增益率来选择最优划分属性。
直接使用增益率准则对可取值数目较少的属性有所偏好,因此,C4.5采用的是信息增益与增益率结合的方法,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
基尼系数
CART决策树算法使用基尼系数来选择划分属性。
直观来说,基尼系数反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此基尼系数越小,则数据集D的纯度越高。
剪枝处理
剪枝是决策树学习算法对付“过拟合”的主要手段。决策树剪枝的基本策略有“预剪枝”和“后剪枝”。
- 预剪枝,在决策树生成的过程中,对每个结点划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升(通过验证集效果评价),则停止划分并将当前结点标记为叶结点
- 后剪枝,先从训练集生成一颗完成的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
如何判断决策树泛化性能提升?训练集与验证集各个指标上的比较。
预剪枝
- 优点:降低过拟合风险,显著减少训练时间开销和测试时间开销
- 缺点:有些当前划分虽然不能提升泛化性能,但基于此基础上后续的划分却有可能导致性能显著提高,但预剪枝禁止了这些划分,会导致欠拟合的风险
后剪枝
- 优点:欠拟合风险较小,泛化性能往往优于预剪枝决策树
- 缺点:训练时间开销比未剪枝、预剪枝决策树大很多
连续与缺失值
连续值处理
连续属性离散化——二分法
需要注意的是,与离散属性不同,若当前结点划分属性为连续属性,该属性还可以作为后代结点的划分属性。
缺失值处理
我们需要解决两个问题
- 如何在属性缺失的情况下进行划分属性选择?
- 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
多变量决策树
实现这样的斜划分,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试。