决策树重要知识点整理

什么是决策树?

​决策树​​是一种基于树形结构的监督学习算法,广泛应用于​​分类​​和​​回归​​任务。它的核心思想是通过对数据特征的逐步判断(类似“if-else”规则),将数据集划分成更小的子集,最终生成一棵树形模型,用于预测目标变量的结果。


​1. 决策树的结构​
  • ​根节点(Root Node)​​:树的起点,包含全部数据,选择最优特征进行第一次分割。
  • ​内部节点(Internal Node)​​:表示一个特征判断分支(例如“年龄 > 30?”)。
  • ​叶节点(Leaf Node)​​:最终的分类或回归结果(例如“是否购买商品”)。

​2. 工作原理:如何构建决策树?​
  1. ​选择最优分割特征​
    通过衡量特征的“区分能力”,选择能最大程度降低数据不确定性的特征。常用指标:

    • ​信息增益(Information Gain)​​:基于信息熵(Entropy)的减少量,熵越低数据越纯。
    • ​基尼不纯度(Gini Impurity)​​:衡量随机抽样时数据被错误分类的概率。
    • ​均方误差(MSE)​​:用于回归任务,衡量预测值与真实值的偏差。

    ​公式示例(信息熵)​​:

    Entropy(S)=−i=1∑c​pi​log2​pi​

    其中 pi​ 是数据集中第 i 类样本的占比。

  2. ​递归分割数据​
    对每个子节点重复上述步骤,直到满足停止条件(如树的最大深度、节点样本数过少等)。

  3. ​生成决策规则​
    从根节点到叶节点的路径即为一组判断规则(例如“若年龄 ≤ 30 且收入高,则购买商品”)。


​3. 决策树的类型​
​算法​​特点​​适用场景​
​ID3​使用信息增益,仅支持分类任务,无法处理连续特征。简单分类问题
​C4.5​改进ID3,支持连续特征和缺失值,通过信息增益率避免过拟合。复杂分类任务
​CART​使用基尼不纯度(分类)或均方误差(回归),生成二叉树。分类与回归任务

 决策树三种类型型详细分析:

1. ID3(Iterative Dichotomiser 3)​

​核心思想​
  • ​目标​​:通过最大化​​信息增益(Information Gain)​​选择特征,递归构建多叉树。
  • ​适用任务​​:仅支持​​分类任务​​,无法处理连续特征和缺失值。
​算法步骤​
  1. ​计算信息增益​
    对每个特征计算划分后的信息增益,选择增益最大的特征作为当前节点。

    • ​信息增益公式​​:IG(S,A)=Entropy(S)−v∈Values(A)∑​∣S∣∣Sv​∣​Entropy(Sv​)其中 S 是数据集,A 是特征,Sv​ 是特征 A 取值为 v 的子集。
  2. ​递归分割​
    对每个子节点重复上述过程,直到:

    • 所有样本属于同一类别。
    • 无剩余特征可用。
​特点​
  • ​树结构​​:生成多叉树(每个特征的分支数等于其取值数)。
  • ​局限性​​:
    • 无法处理连续特征(连续特征就是一些不能明确分割的特征,比如数值特征,像年龄这种,需离散化预处理)。
    • 对多取值特征有偏好(信息增益倾向于选择取值多的特征)。
    • 无剪枝机制,容易过拟合。
​示例​
  • ​场景​​:根据天气(晴/雨)、温度(高/低)预测是否适合打网球。
  • ​步骤​​:计算天气和温度的信息增益,优先选择增益大的特征(如天气)分割数据。

​2. C4.5(ID3的改进版)​

​核心改进​
  • ​特征选择​​:使用​​信息增益率(Gain Ratio)​​替代信息增益,缓解对多值特征的偏好。
  • ​支持连续特征​​:通过二分法(如“温度 ≤ 25℃”)将连续特征离散化。
  • ​处理缺失值​​:通过权重分配处理缺失值(如按不同分支的样本比例拆分缺失样本)。
  • ​剪枝优化​​:通过​​后剪枝(Post-pruning)​​降低过拟合风险。
​关键公式​
  • ​信息增益率​​:GainRatio(A)=IV(A)IG(A)​,IV(A)=−v∑​∣S∣∣Sv​∣​log2​∣S∣∣Sv​∣​其中 IV(A) 是特征 A 的固有值(Intrinsic Value),用于惩罚多值特征。
​特点​
  • ​树结构​​:多叉树(与ID3类似)。
  • ​优势​​:
    • 支持连续特征和缺失值。
    • 通过增益率和剪枝提升泛化能力。
  • ​局限性​​:
    • 计算复杂度较高(需排序连续特征)。
    • 生成规则较复杂(可能影响可解释性)。
​示例​
  • ​场景​​:根据年龄(连续)、性别(类别)预测用户是否购买产品。
  • ​步骤​​:将年龄二分(如年龄 ≤ 30),计算信息增益率,选择分割点。

​3. CART(Classification and Regression Tree)​

​核心思想​
  • ​统一框架​​:支持​​分类任务(基尼不纯度)​​和​​回归任务(均方误差)​​。
  • ​二叉树结构​​:每个节点仅生成两个分支(例如“是/否”)。
​关键指标​
  1. ​分类任务​​:​​基尼不纯度(Gini Impurity)​

    Gini(S)=1−i=1∑c​pi2​

    其中 pi​ 是类别 i 的样本占比。基尼值越小,数据越纯。

  2. ​回归任务​​:​​均方误差(MSE)​

    MSE=N1​i=1∑N​(yi​−y^​)2

    其中 y^​ 是节点中样本的预测值(通常取均值)。

​特点​
  • ​树结构​​:二叉树(每次分割将数据分为两类)。
  • ​优势​​:
    • 支持回归任务(如房价预测)。
    • 计算效率高(二叉树结构简单)。
    • 默认支持剪枝(通过代价复杂度剪枝)。
  • ​局限性​​:
    • 对类别不平衡数据敏感(分类任务中可能偏向多数类)。
​示例​
  • ​分类场景​​:根据花瓣长度、宽度分类鸢尾花。
  • ​回归场景​​:根据房屋面积、位置预测房价。

​对比总结​

​特性​​ID3​​C4.5​​CART​
​特征选择标准​信息增益信息增益率基尼不纯度(分类) / MSE(回归)
​任务类型​分类分类分类 + 回归
​树结构​多叉树多叉树二叉树
​连续特征处理​不支持(需离散化)支持(二分法)支持(二分法)
​缺失值处理​不支持支持(按比例分配)支持(替代节点)
​剪枝机制​后剪枝后剪枝(代价复杂度剪枝)
​过拟合风险​低(默认剪枝)
​应用场景​简单分类(特征取值少)复杂分类(含连续/缺失特征)分类、回归(如集成学习基模型)

​实际应用建议​

  1. ​ID3​​:适用于小规模、离散特征的简单分类任务(如教学示例)。
  2. ​C4.5​​:适合处理复杂分类问题(含连续特征和缺失值),需较高可解释性的场景。
  3. ​CART​​:
    • 分类任务:对效率要求高或需要二叉树结构的场景。
    • 回归任务:如预测房价、销售额等连续值。
    • 作为随机森林、GBDT等集成模型的基学习器

 三个模型对连续值的处理详解:

​1. 什么是连续特征?​

​连续特征(Continuous Feature)​​是指取值在某一区间内可以无限细分、非固定离散值的特征。例如:

  • ​年龄​​:18.5岁、30.2岁等(任意实数)。
  • ​温度​​:25.3℃、-10.5℃等。
  • ​收入​​:5000元、100000元等。

与​​离散特征(Categorical Feature)​​(如“性别:男/女”、“颜色:红/蓝/绿”)不同,连续特征的取值是数值化的,且具有大小关系,但无法直接通过等值判断进行分割。


​2. 决策树如何处理连续特征?​

决策树需要通过某种方式将连续特征转化为“分段规则”(例如“年龄 ≤ 30” vs “年龄 > 30”),才能用于节点分割。以下是三种算法对连续特征的处理方式:

​(1) ID3:不支持连续特征​
  • ​核心问题​​:
    ID3通过信息增益选择特征,但信息增益的计算依赖于特征的​​离散取值​​(如“天气”的“晴/雨”)。连续特征的取值无限多,直接使用会导致以下问题:

    • ​计算复杂度爆炸​​:每个取值都可能作为分割点,计算量极大。
    • ​过拟合风险​​:可能生成大量无意义的细碎规则(例如“年龄=18.3岁”)。
  • ​解决方法​​:
    需通过​​离散化(Discretization)​​预处理,将连续特征转为离散区间。例如:

    • 将年龄划分为“青年(<30岁)”、“中年(30-50岁)”、“老年(>50岁)”。
    • 离散化方法:等宽分箱、等频分箱、聚类等。
​(2) C4.5 和 CART:支持二分法(Binary Split)​
  • ​核心思想​​:
    对连续特征进行​​动态二分​​,即寻找一个最佳分割阈值,将数据划分为两部分(例如“温度 ≤ 25℃” vs “温度 > 25℃”),并递归应用这一逻辑。

  • ​具体步骤​​:

    1. ​排序​​:将数据集按连续特征的取值从小到大排序。
    2. ​生成候选分割点​​:
      通常取相邻两个样本取值的中间值作为候选分割点。例如:
      • 样本温度取值为 [20, 25, 28],候选分割点为 22.5(20和25的中间值)、26.5(25和28的中间值)。
    3. ​计算分割指标​​:
      • C4.5:对每个候选分割点,计算​​信息增益率​​,选择增益率最大的分割点。
      • CART:计算​​基尼不纯度(分类)​​或​​均方误差(回归)​​,选择最优分割点。
    4. ​递归分割​​:对每个子集重复上述过程。
  • ​示例​​:
    用“年龄”预测“是否购买产品”:

    • 候选分割点:25岁、30岁、35岁等。
    • 计算每个分割点的信息增益率或基尼不纯度,假设“年龄 ≤ 30岁”增益最大,则生成规则:
       

      plaintext

      复制

      if 年龄 ≤ 30岁:
          → 进入左子树(例如购买概率高)
      else:
          → 进入右子树(例如购买概率低)

 三个模型对缺失值的处理详解:

​1. ID3:不支持缺失值​

​原因与局限性​
  • ​设计缺陷​​:ID3算法在设计时未考虑缺失值处理,要求数据必须完整。
  • ​数据预处理需求​​:
    若数据存在缺失值,必须通过以下方式预处理:
    1. ​删除样本​​:直接移除含缺失值的样本(可能损失数据量)。
    2. ​填充缺失值​​:用均值、众数或插值法填充(可能引入偏差)。
​示例​
  • ​数据​​:某医疗数据集包含“年龄”和“血压”特征,部分样本的“血压”缺失。
  • ​解决方法​​:
    删除缺失样本,或用其他患者的平均血压填充。

​2. C4.5:按比例分配样本​

​核心思想​
  • ​权重分配​​:将含缺失值的样本按现有分支的样本比例分配到所有子节点,并赋予权重。
  • ​保留信息​​:不丢弃缺失样本,而是让它们参与后续分割,但权重逐渐降低。
​具体步骤​
  1. ​计算分支权重​​:

    • 假设某特征有3个可能取值(A、B、C),对应分支的样本占比为50%、30%、20%。
    • 含缺失值的样本会以50%概率进入A分支,30%概率进入B分支,20%概率进入C分支。
    • 权重记录在每个子节点中(例如:某样本权重为0.5在A分支,0.3在B分支)。
  2. ​递归分割​​:
    在后续节点分割时,权重会影响信息增益率的计算。例如,某子节点总权重为0.5+0.3=0.8时,按权重比例计算熵值。

  3. ​预测阶段​​:
    预测时,缺失样本的路径根据权重概率选择分支,最终结果按权重加权投票。

​优点与缺点​
  • ​优点​​:
    • 充分利用含缺失值样本的信息。
    • 避免因删除或填充导致的数据偏差。
  • ​缺点​​:
    • 计算复杂度高(需维护权重)。
    • 可解释性降低(规则中隐含概率分配)。
​示例​
  • ​数据​​:根据“天气(晴/雨/阴)”和“温度(高/低)”预测是否出门,某样本的“天气”缺失。
  • ​处理​​:
    若晴、雨、阴分支的样本占比为60%、30%、10%,则该样本以60%概率进入“晴”分支,30%进入“雨”分支,10%进入“阴”分支,并在后续分割中按权重参与计算。

​3. CART:替代节点(Surrogate Splits)​

​核心思想​
  • ​替代规则​​:为每个分割节点预先计算“备用分割特征”,当主特征缺失时,使用替代特征进行判断。
  • ​设计目标​​:在保持效率的同时处理缺失值,适用于大规模数据。
​具体步骤​
  1. ​训练阶段​​:

    • 在生成每个节点的主分割规则(如“年龄 ≤ 30”)时,额外寻找与主规则相关性最高的替代特征(如“收入 > 50k”)。
    • 替代特征的选择标准:其分割结果与主特征的分支划分尽可能一致。
  2. ​预测阶段​​:

    • 若某样本的主特征缺失,使用替代特征进行分支选择。
    • 若替代特征也缺失,继续使用次优替代特征,直到找到可用规则或到达叶节点。
​优点与缺点​
  • ​优点​​:
    • 计算高效(替代规则预先计算,预测时无需复杂权重分配)。
    • 可解释性较强(明确使用替代特征做决策)。
  • ​缺点​​:
    • 依赖替代特征与主特征的高相关性,否则可能导致错误分类。
    • 对缺失率高的特征可能效果不佳。
​示例​
  • ​数据​​:根据“年龄”和“收入”预测是否购买产品,某样本的“年龄”缺失。
  • ​处理​​:
    若主分割规则是“年龄 ≤ 30”,替代规则是“收入 > 50k”,则使用收入判断该样本进入左分支(收入 ≤ 50k)或右分支(收入 > 50k)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值