本章主要讲了一类常见的机器学习算法——决策树模型。(主要针对分类任务)
目的:产生一棵泛化能力强,即处理未见示例能力强的决策树————“分而治之”
基本算法
第8步是关键,那么怎么进行第八步呢?
我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高:
- 构造指标——可视化“纯度”
信息熵:information entropy
再考虑到不同的分支节点所包含的样本数不同,给分支节点赋予权重,即样本数越多的分支节点的影响越大
- 构造指标——可视化“纯度提升”
信息增益:information gain
信息增益偏好可取值数目较多的属性,可能会带来划分误差(如利用“编号”划分,会造成过拟合)
- 构造指标——改进信息增益
增益率:gain ratio
信息增益率偏好可取值数目较少的属性,可能会带来划分误差
使C4.5算法不是直接选择增益率最大的候选划分属性,而是:先从候选划分属性找出信息增益高于平均水平的属性,再从中选择增益率最高的
- 构造指标——CART决策树
基尼系数:Gini index
如果模型训练出来过拟合怎么办?——剪枝处理
预剪枝(prepruning):在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化能力提升,则停止划分并将当前结点标记为叶节点
后剪枝(postpruning):先通过训练集生成一颗完整的决策树,然后自底而上地对非叶节点进行考察,若将该结点对应的子树替换成叶节点能带来决策树泛化能力提升,则将该子树替换为叶节点
- 预剪枝的优缺点
- 后剪枝的优缺点
之前都是基于离散属性,如果碰到连续属性该怎么建立决策树模型?
———— 利用“二分法”对连续属性离散化
缺失值处理
多变量决策树
多变量决策树:实现“斜划分”甚至更复杂划分的决策树;在模型学习过程中,不是为每一个非叶节点寻找一个最优划分属性,而是试图建立一个合适的线性分类器
注:截图来自周志华老师的西瓜书