决策树

141 阅读2分钟

这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战

决策树的原理

经验总结 - 得出结论

经历的两个阶段 - 构造和剪枝

  1. 构造
    生成一棵完整的决策树 -选择用什么属性作为节点的过程

    1. 什么属性作为根节点
    2. 什么属性作为子节点
    3. 什么时候停止并得到目标状态 - 叶节点
  2. 剪枝 - 防止过拟合

  3. 过拟合和欠拟合

  4. 剪枝的方法 - 预剪枝和后剪枝

    1. 预剪枝 - 决策树构造时 - 构造过程中 对节点进行评估 - 添加不能带来准确性提升 - 不添加
    2. 后剪枝 - 决策树构造后 - 叶节点开始 自下而上对每个节点评估 - 删去与不删没有太大差别/ 带来明显准确性提升 - 节点删去,叶节点替代,类别用该节点子树最频繁的那个类

小结

经验总结 - 得出结论

构造 - 剪枝【预剪枝【构造时评估不能带来准确性提升】、后剪枝【构造后评估如果去掉】

特征选取方法 - 基于信息熵 - 降低信息熵【-plogp】 - ID3、C4.5、Cart

ID3 - 信息增益 - (当前信息熵 - 生成新节点后的信息熵)= (父节点信息熵 - 所有子节点信息熵 【子节点归一化信息熵)-倾向选择取值多的属性 - 噪声敏感 - 信息增益越大越好 步骤:

  1. 计算父节点信息熵 -Σplogp
  2. 计算某分类各个子节点的信息熵
  3. 计算各分类子节点信息熵的归一化信息熵 【各子节点信息熵乘以对应在父节点出现的概率和】
  4. 父节点信息熵 - 归一化子节点信息熵

C4.5 - 信息增益率 - (信息增益 / 属性熵) - 保证整体信息增益率不变 - 解决了噪声敏感

  • 悲观剪枝【PEP】 提升决策树的泛化能力 【比较 剪枝前后 节点分类错误率
  • 离散化处理连续属性 【阈值 最高信息增益】
  • 缺失值处理 - 不考虑缺失值的情况下计算出信息增益率 - 原本的信息增益率权重 * 算出的信息增益率
  • 需对数据集进行多次扫描 - 算法效率相对较低

决策树的构造过程 - 纯度越高的划分