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

news/2024/10/4 16:32:29 标签: 机器学习, 决策树, 算法, 人工智能

公式的详细说明

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=1TNtHt(T)+αT

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

  1. ∑ t = 1 ∣ T ∣ N t H t ( T ) \sum_{t=1}^{|T|} N_t H_t(T) t=1TNtHt(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=1TNtHt(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=14NtHt(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 α 则会使得树倾向于保持简单的结构,以避免过拟合。

结论

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


http://www.niftyadmin.cn/n/5690126.html

相关文章

ultralytics-yolo-webui :Detect 目标检测 工具-先行版本 >> DataBall

通过webui 方式对ultralytics 的 detect 检测任务 进行: 1)数据预处理,2)模型训练,3)模型推理。 本项目提供了 示例数据集,用 labelImage标注,标注文件为 xml 文件。 项目地址&…

GraphRAG-Local-UI - 基于 GraphRAG 支持本地的聊天UI

文章目录 一、关于 GraphRAG-Local-UI 🕸️特点🌟🗺️路线图最近更新即将推出的功能 二、📦安装和设置三、使用入门🚀1、创建索引目录2、添加示例数据(可选)3、初始化索引文件夹4、配置设置5、定…

vscode中配置python虚拟环境

python虚拟环境作用 Python虚拟环境允许你为每个独立的项目创建一个隔离的环境,这样每个项目都可以拥有自己的一套Python安装包和依赖,不会互相影响。实际使用中,可以在vscode或pycharm中使用虚拟环境。 1.创建虚拟环境的方法: …

文心优质智能体制作技巧:画家女友韵墨(详细教程)

目录 1. 引言 2. 韵墨的人设构思 性格特点 专业背景 语言风格 2. 技术实现 1.人设和回复逻辑 作用 2.开场白和预设 3.插件功能(技能) 1.图像生成与处理 2.社交媒体集成 4.其他的功能设定 1.工作流 2.数据库 3.长期记忆 4.角色声音 5.商业转化 5. 对话设计 1.…

基于RFID的指纹定位原理、MATLAB的一个小例程

文章目录 一、什么是RFID?二、指纹定位的概念三、RFID与指纹定位的结合1. 高精度定位2. 实时性强3. 抗干扰能力强四、应用场景1. 室内导航2. 资产管理3. 人员定位五、挑战与未来发展程序代码运行结果结论基于RFID的指纹定位技术介绍 一、什么是RFID? 射频识别(RFID, Radio …

Linux忘记root用户密码怎么重设密码

直接说步骤: 1.重启客户机 2.在选择内核页面快速按e键,进入编辑模式 进入后应该是这个样子 在这里只能按上下键切换行 找到Linux16这里 3.按右方向键切换到行尾,也就是UTF-8处,在后面添加一个空格,然后加上这段话 …

不懂外语也能无障碍交流?探索4款超好用中英翻译工具

嘿,各位外贸流程的小伙伴们,今儿咱们来聊聊那些翻译神器,看看它们在中英文互译这条路上,是怎么给我们这些天天跟洋文打交道的哥们儿姐们儿减轻负担的。我亲身体验了福昕翻译在线、福昕翻译大师、海鲸AI翻译还有腾讯翻译君&#xf…

Linux学习笔记(六):服务管理,监控,RPM包管理,yum包管理工具,Linux启动管理,网络管理

Linux学习笔记(六):服务管理,监控,RPM包管理,yum包管理工具,Linux启动管理,网络管理 1. 服务管理 1.1 service 启动/停止服务 service 命令是最常用的服务管理工具之一&#xff0c…