机器学习算法9_决策树+剪枝(适用ID3与C4.5)

机器学习算法第九篇
主要内容:决策树+损失函数+剪枝算法(此剪枝算法只适用于ID3于C4.5)



剪枝目的:
  • 解决决策树过拟合问题


决策树过拟合:
  • 根据ID3与C4.5的算法我们可以知道,决策树依据信息增益或信息增益比在不断的迭代生产新的子节点,直到不能继续下去为止
    这个过程中,算法只考虑当前节点的特征选择与数据的划分,并无对树形结构复杂度的考虑,然后生成一颗非常复杂的树,
    这种树可能会得出对训练数据分类非常准确,却对测试数据不太准确的决策树,这种情况称为过拟合


剪枝算法实现:
  • 通过对上述复杂的树进行整体剪枝处理,可以减少复杂度,平衡模型对训练集的预测误差与模型的复杂度,达到两者同时最小


损失函数:
  • 设 树 T 的 叶 子 节 点 的 个 数 为 ∣ T ∣ 设树T的叶子节点的个数为\vert T\vert TT
  • t 是 树 T 的 叶 子 节 点 t是树T的叶子节点 tT
  • 该 节 点 有 N t 个 样 本 该节点有N_t个样本 Nt
  • 其 中 k 类 的 样 本 点 有 N t k 个 , k = 1 , 2 , 3... , K 其中k类的样本点有N_{tk}个,k=1,2,3...,K kNtk,k=1,2,3...,K
  • H t ( T ) 为 叶 子 节 点 t 上 的 熵 H_t(T)为叶子节点t上的熵 Ht(T)t
  • α 为 超 参 数 \alpha为超参数 α

则损失函数可以定义为
(1) C α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ C_\alpha (T)=\sum_{t=1}^{\vert T\vert}N_tH_t(T)+\alpha\vert T\vert \tag1 Cα(T)=t=1TNtHt(T)+αT(1)
其中经验熵为
H t ( T ) = − ∑ k = 1 K N t k N t l o g 2 N t k N t H_t(T) = -\sum_{k=1}^K\frac{N_{tk}}{N_t}log_2\frac{N_{tk}}{N_t} Ht(T)=k=1KNtNtklog2NtNtk

  • ( 1 ) 式 右 边 第 一 项 为 每 一 个 叶 子 节 点 内 的 样 本 总 数 关 于 其 类 别 分 布 的 熵 乘 以 该 节 点 的 样 本 数 , 然 后 再 对 全 部 叶 子 的 该 值 求 和 该 式 可 以 表 示 模 型 对 训 练 数 据 的 误 差 , 即 拟 合 度 (1)式右边第一项为每一个叶子节点内的样本总数关于其类别分布的熵乘以该节点的样本数,然后再对全部叶子的该值求和\\ 该式可以表示模型对训练数据的误差,即拟合度 (1),,
  • ( 1 ) 式 右 边 第 二 项 为 超 参 数 α 与 树 的 叶 子 总 数 量 之 积 , 可 以 表 示 对 数 结 构 复 杂 度 的 惩 罚 项 , 其 中 α 可 以 控 制 两 者 之 间 的 影 响 . 较 大 的 α 促 使 生 产 更 简 单 的 树 , 较 小 的 α 促 使 生 产 较 为 复 杂 的 树 , α = 0 则 意 味 着 不 考 虑 模 型 复 杂 度 , 只 考 虑 模 型 对 训 练 数 据 的 拟 合 程 度 (1)式右边第二项为超参数\alpha 与树的叶子总数量之积,可以表示对数结构复杂度的惩罚项,其中\alpha 可以控制两者之间的影响.\\ 较大的\alpha 促使生产更简单的树,较小的\alpha 促使生产较为复杂的树, \\\alpha =0则意味着不考虑模型复杂度,只考虑模型对训练数据的拟合程度 (1)α,,α.α使,α使,α=0,

剪枝,就是当 α \alpha α确定时,选择损失函数最小的模型,即损失函数最小的子树



树的剪枝算法

输入:已经用生成算法生成好的树T,以及参数 α \alpha α
输出:已近修剪后的树

  1. 对于一个叶子节点而言,计算其现在状态的整棵树损失函数a
  2. 计算假如代替其父节点后(剪枝)的整棵树损失函数b
  3. 如果b比a小,则进行剪枝:剪掉父节点,将自己代替其位置,生成新的叶子节点,在新位置上循环1-3步,直到无法继续为止
  4. 遍历下一个叶子节点,并重复1-3步,直到所有叶子都计算过
  5. 就得到一颗损失函数最小的新树T

你可能感兴趣的:(算法)