1 决策树模型与学习
1.1 决策树模型
分类决策树模型是一种对实例分类的树形结构, 由结点, 有向边构成. 结点分为内部结点和叶结点, 分别代表特征/属性, 与类.

决策树的内部结点对应着分类规则, 要求互斥且完备.
2 特征选择
2.1 信息增益
熵表示随机变量不确定性的度量. 设 的概率分布为 , 则 的熵定义为 也可记为 . 从定义可验证
根据对数和不等式
结合均值不等式得
此时 , 可以通过求导找到最大值点.
如果随机变量 有联合分布 , 则条件熵
定义 为互信息.
特征 对训练集 的信息增益为
设训练集为 , 有 个类 , 自然地 . 设特征 有 个不同的取值 . 根据 的取值将 划分为 个子集 , 自然地 . 记 . 下面给出信息增益算法
输入: .
输出: 对 的信息增益 .
- 计算经验熵
- 计算经验条件熵
- 计算信息增益
我们可以从若干特征中选择信息增益最大的那个特征.
2.2 信息增益比
信息增益倾向于选择取值较多的特征. 信息增益比将会校正这个问题.
3 决策树的生成
3.1 ID3 算法
算法的核心是在决策树各个结点上应用信息增益准则来选择特征.
输入: 训练集 , 特征集 , 阈值 .
输出: 决策树 .
- 若 的所有实例属于同一类 , 则 为单结点树.
- 若 , 则 为单结点树.
- 否则按照信息增益算法计算并选择信息增益最大的特征 .
- 如果 的增益小于 , 则 为单结点树.
- 否则对 的每一个值 , 按照 把 分割为 构建子节点.
- 对第 个子节点, 以 为训练集, 为特征集, 递归地调用 1~5 得到子树 .
该算法容易产生过拟合.
3.2 C4.5 的生成算法
信息增益换成了信息增益比, 其他没变.
输入: 训练集 , 特征集 , 阈值 .
输出: 决策树 .
- 若 的所有实例属于同一类 , 则 为单结点树.
- 若 , 则 为单结点树.
- 否则按照信息增益比 计算并选择信息增益最大的特征 .
- 如果 的增益小于 , 则 为单结点树.
- 否则对 的每一个值 , 按照 把 分割为 构建子节点.
- 对第 个子节点, 以 为训练集, 为特征集, 递归地调用 1~5 得到子树 .
4 决策树的剪枝
假设树 的叶节点个数为 , 是 的叶结点, 上面有 个样本点, 其中 类样本点有 个, 为 的经验熵, 则损失函数定义为 其中
把 (4.1) 的第一项记为 则
输入: 生成算法产生的树 , .
输出: 修建后的子树 .
- 计算每个节点的经验熵.
- 递归的从树的叶结点向上回缩. 设一组叶结点回缩到父结点后整体树分别为 , 对应的损失函数分别为 . 如果 则进行剪枝, 把父结点变成新的叶结点.
- 返回 2, 直到不能继续, 得到 .
5 CART 算法
即分类与回归树模型(classification and regression tree, CART ) 既可以用于分类也可以用于回归. 在给定 的条件下输出 的条件概率分布. 假设了决策树是二叉树, 内部结点的取值是是/否.
大体上包含了两个部分:
- 生成: 用训练集生成尽可能大的决策树;
- 剪枝: 用测试集剪枝, 尽可能最小化损失函数.
5.1 CART 生成
5.1.1 回归树的生成
设 分别为输入和输出变量, 并且 是连续变量. 给定 .
一棵回归树对应特征空间的一个划分. 假设划分为 , 在每个单元 上有固定的输出值 , 于是回归树模型可以表示为
此时可以用平方误差 来衡量误差, 并希望它最小. 容易知道
接下来讨论划分. 选择第 个变量 和它的值 作为切分变量和切分点, 定义 然后求解
然后对固定的 找到最优切分点 . 这样 对每个区域重复上述划分过程.
输入:
输出: 回归树 .
- 求解 (5.1), 找到 .
- 用选定的 划分区域,
- 继续对两个子区域调用 1, 2, 直到满足条件.
- 依据划分的 个区域 , 生成决策树
5.1.2 分类树的生成
分类问题中, 假设有 个类, 样本点属于第 类的概率为 , 则
特别地, 二分类问题的 Gini 指数为 .
对于给定的样本集合 ,
从概率意义上, 它等于从样本中采样两个点, 它们不在同一类的概率.