决策树的损失函数公式详细说明和例子说明

公式的详细说明

L α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ L_{\alpha}(T) = \sum_{t=1}^{|T|} N_t H_t(T) + \alpha |T| Lα(T)=t=1∑∣T∣NtHt(T)+α∣T∣

这是决策树的损失函数,它由两部分组成:

  1. ∑ t = 1 ∣ T ∣ N t H t ( T ) \sum_{t=1}^{|T|} N_t H_t(T) ∑t=1∣T∣NtHt(T) - 这一部分衡量了整个决策树的分类效果,通过每个叶节点的经验熵来评估。公式的含义如下:

    • H t ( T ) H_t(T) Ht(T) 是决策树 T T T 中第 t t t 个叶节点的经验熵(也称作分类不纯度)。经验熵是衡量某个叶节点上数据混乱程度的一个指标。举例来说,如果一个叶节点上的所有数据样本都属于同一类,则该节点的经验熵为 0,表示该节点非常纯。反之,如果该节点上的数据样本均匀分布在多个类别上,则经验熵较高,表示该节点不纯。
    • N t N_t Nt 是第 t t t 个叶节点的样本数量。为了评估树的整体分类效果,我们对每个叶节点的经验熵进行加权,权重就是该叶节点上的样本数量 N t N_t Nt。因此,包含大量数据的叶节点对总损失的影响更大。
  2. α ∣ T ∣ \alpha |T| α∣T∣ - 这一部分是正则化项,用于控制树的复杂度:

    • ∣ T ∣ |T| ∣T∣ 是树的叶节点数。叶节点越多,意味着树的分割越多,模型的复杂度越高。
    • α \alpha α 是正则化参数,它用来控制叶节点数带来的复杂度惩罚。如果 α \alpha α 值较小,则模型会允许更多的叶节点(树更复杂),如果 α \alpha α 值较大,模型则会倾向于保持较少的叶节点(树更简单)。

通过调整这个损失函数,算法的目标是找到一棵在经验熵和树的复杂度之间取得平衡的树。

例子说明

假设我们有一组数据用来分类,决策树的某个结构如下图所示(假设已经生成了一棵树):

       根节点
      /      \
   节点1     节点2
  /   \      /   \
叶1   叶2   叶3   叶4
  • 假设决策树共有 4 个叶节点: 叶1 , 叶2 , 叶3 , 叶4 \text{叶1}, \text{叶2}, \text{叶3}, \text{叶4} 叶1,叶2,叶3,叶4,所以 ∣ T ∣ = 4 |T| = 4 ∣T∣=4。
  • 每个叶节点包含的样本数量分别为 N 1 = 30 N_1 = 30 N1=30, N 2 = 20 N_2 = 20 N2=20, N 3 = 25 N_3 = 25 N3=25, N 4 = 25 N_4 = 25 N4=25。
  • 每个叶节点的经验熵分别为 H 1 ( T ) = 0.3 H_1(T) = 0.3 H1(T)=0.3, H 2 ( T ) = 0.1 H_2(T) = 0.1 H2(T)=0.1, H 3 ( T ) = 0.2 H_3(T) = 0.2 H3(T)=0.2, H 4 ( T ) = 0.4 H_4(T) = 0.4 H4(T)=0.4。
  • 设正则化参数 α = 0.01 \alpha = 0.01 α=0.01。
计算第一项:经验熵之和

首先,计算加权经验熵之和:
∑ t = 1 ∣ T ∣ N t H t ( T ) = N 1 H 1 ( T ) + N 2 H 2 ( T ) + N 3 H 3 ( T ) + N 4 H 4 ( T ) \sum_{t=1}^{|T|} N_t H_t(T) = N_1 H_1(T) + N_2 H_2(T) + N_3 H_3(T) + N_4 H_4(T) t=1∑∣T∣NtHt(T)=N1H1(T)+N2H2(T)+N3H3(T)+N4H4(T)

代入已知数据:
∑ t = 1 4 N t H t ( T ) = 30 × 0.3 + 20 × 0.1 + 25 × 0.2 + 25 × 0.4 = 9 + 2 + 5 + 10 = 26 \sum_{t=1}^{4} N_t H_t(T) = 30 \times 0.3 + 20 \times 0.1 + 25 \times 0.2 + 25 \times 0.4 = 9 + 2 + 5 + 10 = 26 t=1∑4NtHt(T)=30×0.3+20×0.1+25×0.2+25×0.4=9+2+5+10=26

计算第二项:复杂度惩罚

接着,计算复杂度惩罚项:
α ∣ T ∣ = 0.01 × 4 = 0.04 \alpha |T| = 0.01 \times 4 = 0.04 α∣T∣=0.01×4=0.04

计算损失函数

将这两部分加在一起得到总的损失:
L α ( T ) = 26 + 0.04 = 26.04 L_{\alpha}(T) = 26 + 0.04 = 26.04 Lα(T)=26+0.04=26.04

解释:

  • 经验熵之和(26) 反映了决策树的分类效果。这个值越低,说明叶节点的分类越纯,树的分类效果越好。
  • 复杂度惩罚项(0.04) 反映了树的复杂度。值越高,说明树的叶节点越多,树越复杂。
  • 总损失(26.04) 是两者的综合。我们希望总损失尽可能小,以找到既能很好分类数据又不过于复杂的树。

通过调节 α \alpha α 的值,可以控制树的复杂度。较小的 α \alpha α 会让树倾向于复杂的结构,而较大的 α \alpha α 则会使得树倾向于保持简单的结构,以避免过拟合。

结论

这个公式帮助我们在训练决策树时,不仅关注分类的准确性,还通过正则化项控制树的复杂度,确保生成的模型具有良好的泛化能力,而不会过度复杂导致过拟合。

相关推荐
无限码力9 分钟前
路灯照明问题
数据结构·算法·华为od·职场和发展·华为ode卷
嘻嘻哈哈樱桃10 分钟前
前k个高频元素力扣--347
数据结构·算法·leetcode
dorabighead11 分钟前
小哆啦解题记:加油站的奇幻冒险
数据结构·算法
Ritsu栗子27 分钟前
代码随想录算法训练营day35
c++·算法
好一点,更好一点37 分钟前
systemC示例
开发语言·c++·算法
AIGC大时代1 小时前
方法建议ChatGPT提示词分享
人工智能·深度学习·chatgpt·aigc·ai写作
糯米导航1 小时前
ChatGPT Prompt 编写指南
人工智能·chatgpt·prompt
金融OG1 小时前
99.8 金融难点通俗解释:净资产收益率(ROE)
大数据·python·线性代数·机器学习·数学建模·金融·矩阵
Damon小智1 小时前
全面评测 DOCA 开发环境下的 DPU:性能表现、机器学习与金融高频交易下的计算能力分析
人工智能·机器学习·金融·边缘计算·nvidia·dpu·doca
卷卷的小趴菜学编程1 小时前
c++之List容器的模拟实现
服务器·c语言·开发语言·数据结构·c++·算法·list