数据分析 – 决策树模型

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

从以下几个方面来探讨决策树

决策树是什么 – 决策树的概念

非参数模型 – 无须对目标函数和变量做过多的假设 – 使用更灵活 – 能够处理更加复杂场景下的问题
决策树通俗意义上来讲,就是根据以往的经验进行总结,对目前事件做出相应的判断
例如根据以往下雨的经验决定要不要带伞。根据天气情况决定今天要不要出去打球

决策树的构造方法

决策树主要有两步:

  1. 构造决策树 – 选取相应的属性作为节点
    三个问题:哪个属性 – 根节点? 哪些属性 – 后继结点? 什么时候停止并得到目标值?

    • 如何确定每一个节点选择什么特征,其常用方法及各自特点是什么?
      ID3和C4.5 – 每一步特征的选择
      基于信息熵【表示随机变量的不确定性】 – 节点上生成的新分支降低信息熵 – 分类问题+ID3不能处理连续值+C4.5能处理连续值但比CART复杂很多
    • 信息熵:H(X)=-Σpilogpi
      ** pi:样本落在各叶子节点的概率 – Σpi = 1 **
      n = 2 – p1,p2均为1/2 – 信息熵达到最大值
      p1 = 1/ p1 = 0 – 信息熵为最小值 – 决策树模型中,选择合适的特征作为节点 – 降低信息熵
      CART方法 – Gini系数【Gini不纯良】代替信息熵 – Gini(D) = 1 – Σpi² – 选择使Gini不纯良变小的特征为节点
      CART方法 – 支持预测连续值(回归) – 分类+预测问题+处理连续值 – Python中sklearn默认的决策树模型也是用CART方法选择分支
  2. 剪枝 – 预剪枝和后剪枝 – 防止过拟合的现象发生

预剪枝 – 构造时剪枝 – 构造的过程中对节点进行评估 – 不能带来准确性提升 – 不划分
后剪枝 – 生成决策树之后再剪枝 – 叶节点向上 – 剪掉后准确性差别不大/提升 – 剪掉

常见问题

  1. 简述ID3和C4.5方法的异同点
    ID3选择特征时 – 选择能够使信息增益g(D,A)最大化的特征作为节点 – g(D,A)=H(D)-D(D|A)
    H(D) – 决策树模型的当前信息熵; H(D|A) – 新的节点产生后的信息熵 – 会选择有较多分支的特征作为节点 – 过拟合
    C4.5 – 信息增量比最大化 – g'(D,A) = g(D,A)/H'(D) = (H(D) – H(D|A))/H'(D)
    H'(D) = -Σ|Di|/|D|log2|Di|/|D| – |Di|/|D| – 样本在节点各个分类数量上的占比 – 分类数量增加-H'(D)变大 – 信息增量比变小 – 避免选择有过多分支的特征作为节点

  2. 简述决策树模型的优缺点
    非参数模型
    相比于线性回归模型和逻辑回归模型 – 无需预先对样本进行假设 – 能够处理更复杂样本 – 计算速度较快 – 结果容易解释 – 可同时处理分类问题和预测问题 – 对缺失值不敏感
    非常强的可解释性 – 绘制分支 – 清晰地看出整体的模型选择流程 – 快速发现影响结果的因素 – 指导业务相应修改、调整
    弱学习器 – 调优方法进行优化 – 仍容易过拟合 – 最终结果误差较大 – 处理特征关联性较强的数据 表现得不好

  3. 决策树模型常用的调优方法有哪些?

    1. 控制树的深度及节点的个数等参数 – 避免过拟合
    2. 运用交叉验证法,选择合适的参数
    3. 通过模型集成的方法,基于决策树形成更加复杂的模型
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享