机器学习初探(第三波~)
四、决策树
决策树基于树结构来进行预测。
1、基本流程
-
决策过程中提出的每个判定问题都是对每个属性的“测试”
-
决策过程的最终结论对应了我们所希望的判定结果
-
每个测试的结果或是导出最终结论,或者导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内
-
从根节点到每个叶节点的路径对应了一个判定测试序列
决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树
2、划分选择
-
决策树包含一个根节点、若干个内部节点和若干叶节点;
-
叶节点对应于决策结果;
-
其他每个节点对应于一个属性测试;
- 每个节点包含的样本集合根据属性测试的结果被划分到子节点中,根节点包含样本全集
-
从根节点到每个叶节点的路径对应了一个判定测试序列;
-
决策树学习的关键在于如何选择最优化分属性。随着划分过程不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高。
-
信息增益
-
“信息熵”是度量样本集合纯度最常用的一种指标
-
信息熵表示某一事件的不确定性,而信息传输的作用就是用于降低这种不确定性;
-
输入的信息量就等于该事件不确定性减少的大小,也就是熵减少的大小;
-
信息熵本身不是对信息量的一个度量,而是对事件不确定性的一个度量,而信息量又是对熵减少的一个度量。
-
信息增益=信息熵 - 条件熵
表示在一个条件下,信息不确定性减少的程度。
信息增益大越大,这个特征对于分类来说越关键。
-
-
增益率
- 信息增益准则对可取数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,引入了“增益率”来选择最优划分属性。
- 增益率准则对可取值数目较少的属性有所偏好
-
基尼指数
- 数据D的纯度可用“基尼值”来度量
- 反应了从D中随机抽取两个样本,其类别标记不一致的概率
- 应选择那个使划分后基尼指数最小的属性作为最优划分属性
3、剪枝处理
-
为什么剪枝?
- "剪枝"是决策树学习算法对付“过拟合”的主要手段
- 可通过“剪枝”来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合
-
剪枝的基本策略:
预剪枝、后剪枝
-
预剪枝:在决策树的生成过程中,对每个节点在划分前进行估计,若当前节点标记为叶节点的划分不能带来决策树泛化能力提升,则停止划分并将当前节点标记为叶节点;
-
后剪枝:先从训练集生成一棵完整的决策树,然后自底向上对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化能力的提升,则将该子树替换为叶节点;
-
预剪枝的优缺点:
- 优点:降低过拟合风险、显著减少训练时间和测试时间开销
- 缺点:欠拟合风险
-
后剪枝的优缺点:
- 优点:后剪枝比预剪枝保留了更多的分支,欠拟合风险小,泛化能力往往优于预剪枝决策树
- 缺点:训练时间开销大。后剪枝过程是在生成完全决策树之后进行的,需要自底向上对所有非叶节点逐一考察。
4、连续与缺失值
-
学习任务中经常会遇到连续属性;连续属性的可取值数目不再有限,不能直接根据连续属性的可取值来对节点进行划分;
-
连续值处理
- 连续属性离散化(二分法)
-
现实任务中经常会遇到不完整样本,即样本的属性值缺失
-
使用有缺失的样本时,需要解决的问题:
- 1.如何在属性缺失的情况下进行划分属性选择?
- 2.给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
5、多变量决策树
加入把每个属性视为坐标空间中的一个坐标轴,则d个属性描述样本就对应了d维空间中的一个数据点;对样本分类则意味着在这个坐标空间中寻找不同类样本间的分类边界。
-
单变量决策树分类边界:轴平行
-
多变量决策树
非叶节点不再是仅对某个属性,而是对属性的线性组合。