一、决策树的描述
决策树(decision tree)
-
一种监督学习方法
-
优点
- 速度快
- 易于理解、可解释性强
- 需要样本量小
-
任务类型
- 分类
- 回归

-
决策树一般分三步,
(1)特征选择
(2)决策树生成
(3)决策树剪枝
1、度量混乱程度——信息熵
“信息熵”是度量样本级和纯度最常用的一种指标。
热力学里有一个熵的概念,熵就是来形容系统混乱程度的,系统越混乱,熵就越大。信息熵也具有同样的意义,不过它描述的是随机变量的不确定性(也就是混乱程度)。
-
假定当前样本集合D中第K类样本所占的比例记作:
-
则它的信息熵计算公式为:
因而可计算出例子中的信息熵:




从上面的计算结果中可以看出,信息熵越大,纯度越低。当集合中所有样本均匀混合时,信息熵越大,纯度越低。
信息熵计算练习:

2、信息增益

-
设离散属性a有V个可能的取值{
, ,…, } -
若用a来进行划分,则会产生V个分支节点
-
其中第v个分支节点包含了D中所有在属性a上取值为
的样本,记为 -
那么可计算出属性a对样本集D进行划分所获得的“信息增益”为:
其中,
也被称为条件熵

二、构建决策树
ID3决策树算法使用信息增益来构建决策树,对于所有的属性我们先选择信息增益最大的作为根节点,然后计算其他属性的信息增益再选择最大的作为子节点,一直递归调用该操作,直到信息增益很小或者没有特征为止。
ID3算法的优缺点:
-
优点:
- 假设空间包含所有的决策树,搜索空间完整
-
健壮性好,不受噪声影响
- 算法直观、可解释性强。
-
缺点:
-
只能处理离散值的属性。
-
容易产生过拟合的问题
-
采用了信息增益作为评价标准
-
信息增益比
信息增益比定义:
其中
称为属性a的“固有值”,属性a的可能取值数目越多(即V越大),则

三、离散化、缺失值、剪枝
1、连续性属性值的离散化

2、缺失值处理中的问题
-
不完整样本,即样本的属性值缺失
-
仅使用无缺失的样本进行学习?
对数据信息极大的浪费
- 使用有缺失值的样本,需要解决哪些问题?
Q1:在训练时,如何在属性值缺失的情况下进行划分属性选择?
Q2:在训练时,给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
Q3:在预测时,若属性值缺失,如何计算?
2.1 缺失值处理
Q1:


Q2:
-
若样本
在划分属性a上的取值已知,则将 划入与其取值对应的子结点,且样本权值在子结点中保持为 -
若样本
在划分属性a上的取值未知,则将 同时划入所有子结点,且样本权值在与属性值 对应的子结点中调整为 (直观来看,相当于让同一个样本以不同概率划入不同的子结点中去)
Q3:
- 若样本
在属性a上的取值已知,则正常按照属性值在决策树上移动 - 若样本
在属性a上的取值未知:
- 直接给出分类结果
- 人为赋予最常见的值,然后继续分类过程
3、剪枝策略
- 剪枝的原因:提高泛化能力
- 预剪枝
- 节点内数据样本低于某一阈值
- 所有节点特征都已分裂
- 节点划分前准确率比划分后准确率高
- 后剪枝
- 悲观剪枝方法
- 训练数据集上的错误分类数量来估算未知样本上的错误率
C4.5算法流程图

四、决策树的优缺点分析
- 优点
- 可解释性强
- 图形化和直观化
- 需要训练的数据更少
- 可同时用于分类和回归
- 模型复杂度低
- 对缺失值的容忍度较高
- 缺点
- 很容易出现过拟合,对异常值敏感
- 学习能力不强