0%

西瓜书笔记:决策树(第 4 章)

决策树,信息熵等。

基本流程

决策树的生成过程是一个 分治递归 算法

  • 递归:在当前结点找到 最优属性 进行划分/展开,划分得到的各部分生成子结点
  • 递归边界:
    • 当前结点均为同一类别:将当前结点标记为该类别
    • 当前结点样本所有属性的取值均相同:将当前结点标记为样本数最多的类别
    • 当前结点样本为空:将当前结点标记为其父结点中样本数最多的类别

划分选择

信息增益

假定当前样本集合 $D$ 中第 $k$ 类样本所占的比例为 $p_k$ ($k=1,2,…,\vert y \vert$),则 $D$ 的 信息熵

假设属性 $a$ 有 $V$ 个可能的取值 $\{a^1, a^2,…, a^V\}$,则给定属性 $a$ 后的 条件熵

则,使用属性 $a$ 对样本集 $D$ 进行划分得到的 信息增益

可以证明,信息增益 一定大于等于 0。

ID3 决策树学习算法

最优属性 的选择使得 信息增益 最大化,即

C4.5 决策树学习算法

最优属性 的选择使得 信息增益率 最大化,其中 信息增益率 为 $\frac{Gain(D,a)}{Ent(a)}$,其中 $Ent(a)$ 是把属性 $a$ 当作数据集 $D$ 上的目标变量后计算的信息熵。

CART 决策树学习算法

基尼系数

剪枝处理

采用 留出法 预先保留一部分作为验证集,评估模型 泛化性能

  • 预剪枝:展开每个结点时,评估泛化性能是否提升;若不提升则停止展开。因此,模型存在欠拟合风险。
  • 后剪枝:将树完全展开后,依次评估每个结点剪枝后泛化性能是否提升;若提升则进行剪枝。训练时间一般较长。

连续值处理:二分法

假设连续属性 $a$ 在数据集 $D$ 上出现的取值从小到大排序为 $\{a^1, a^2,…, a^n\}$,则存在 $n-1$ 个潜在划分点 $t_i = \frac{a^i+a^{i+1}}{2}, \, 1 \leq i \leq n-1$。
此时,可以将 $a$ 作为 $n-1$ 个离散属性 $(a, t_i)$ 考虑并计算信息增益 $Gain(D, a, t_i)$ ,则 $a$ 的信息增益为

即选出信息增益最大的那个划分点。

缺失值处理

如何选择最优属性?

假设在当前结点中样本 $x$ 的权重为 $w_x$。令 $\tilde{D}$ 代表 $D$ 中属性 $a$ 没有缺失的样本,则

如何进行样本划分?

若样本 $x$ 的属性 $a$ 缺失,则 分别同时 划入所有子结点,权重调整为

回归树

CART 算法

对属性 $a$ 的切分点 $t$,求解

其中,$R_1(a, t)$ 与 $R_2(a, t)$ 是 $(a, t)$ 划分得到的两个子集。显然,$c_1$ 和 $c_2$ 分别是这两个子集上 $y_i$ 的均值,即