目录
决策树
决策树算法过程及重点
1 基本流程
输入:训练集
属性集
过程:函数TreeGrenerate(D,A)
- 生成节点node;
- if D中样本全属于同一个类别C then.
- 将node标记为C类叶节点; 「递归返回情形(1)」
- return.
- end if
- if A= or D中样本在A上取值相同 then
- 将node标记为叶节点,其类别标记为D中样本数最多的类; 「递归返回情形(2)」
- return
- end if
- 从A中选择最优划分属性 ;
- for 的每一个值 do.
- 为node生成一个分支;令 表示 中在 上取值为 的样本集;
- if 为空 then
- 将分支节点标记为叶节点,其类别标记为D中样本最多的类;「递归返回情形(3)」
- return
- else
- 以TreeGeneration( , \ { })为分支节点
- end if
注意:递归返回(2)和(3)都是面临节点无法被划分的情形,但(2)是利用当前节点的后验分布进行类别判断,(3)是利用父节点的样本分布作为当前节点的先验分布进行类别判断。
2 流程核心(划分选择)
选择最优划分属性(信息增益,信息增益率,基尼指数)
2.1 信息增益
2.1.1 概念
p_k:样本集合D中第k类样本所占比例。
信息熵
:
.
越小,D的纯度越高。
信息增益
:
.
信息增益越大,则意味着使用属性
来划分所获得的“纯度提升”越大,
决策树学习算法以其为准则划分属性。
2.1.2 劣势
对可取值数目较多的属性有所偏好,极端情况以编号为属性时,该属性划分并无意义。
2.2 增益率
2.2.1 概念
增益率
:
其中
决策树算法以其为标准划分属性。
2.2.2 劣势
对取值数目较少的属性有所偏好,不直接用来选划分属性,而是从候选划分属性中找出信息增益高于平均水平的属性,再从中选出增益率最高的。
2.3 基尼指数
2.3.1 概念
基尼值
:
属性
的基尼指数定义为:
2.3.2 使用
选择那个使得划分后基尼指数最小的属性为最优划分属性。
3 优化(过拟合+属性过多)
剪枝是决策树学习算法对付“过拟合”的主要手段,采用留出法。
3.1 预剪枝
随机划分出训练集与验证集,比较划分前后验证集精读,决定是否对该节点划分。存在欠拟合的风险。
3.2 后剪枝
先从训练集形成一棵完整决策树,从叶节点开始剪枝,比较剪枝前后验证集精度,决定是否剪枝。训练时间开销比较大。
3.3 多变量决策树
当属性过多时,一个个训练时间消耗过大,可以采用属性的线性组合进行划分。
4 特殊值(连续与缺失值)
4.1 连续值
将连续属性 在样本集 上出现的 个不同取值排序组成集合 ,选取中位点为划分点。
4.2 缺失值
为每一个样本
赋予一个权重
,并定义
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ \rho &= \frac{…
信息增益的计算式可推广为:
KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ Gain(D,a) &= \…
属性值未知样本划分入所有子节点,对应权重改变为
;直观地看,就是让同一个样本以不同概率划入到不同子节点中。
5 参考
[1]周志华.机器学习[M].清华大学出版社,2016:425.