《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析

本文是将文章《XGBoost算法的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。


我们定义一颗树的复杂度 Ω Ω Ω,它由两部分组成:

  • 叶子结点的数量;
  • 叶子结点权重向量的 L 2 L2 L2范数;
    在这里插入图片描述

公式(12-14)是:

Ω ( f t ) = γ T + 1 2 λ ∑ j = 1 T w j 2 \Omega(f_t) = \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2 Ω(ft)=γT+21λj=1Twj2

是在 XGBoost 中用于正则化的公式,它描述了第 t t t 轮生成的树 f t f_t ft 的复杂度惩罚项。XGBoost 的正则化项通过控制树的复杂度来防止过拟合,从而提高模型的泛化能力。

公式中的符号解释

  1. Ω ( f t ) \Omega(f_t) Ω(ft):表示第 t t t 轮生成的树 f t f_t ft 的正则化项,作为模型复杂度的惩罚。XGBoost 的目标函数包含损失项和正则化项,正则化项的目的是控制树的复杂度。

  2. T T T:树的叶子节点总数。树的复杂度通常与叶子节点数量直接相关,更多的叶子节点通常意味着更复杂的树结构。

  3. γ \gamma γ:控制叶子节点数的正则化参数。它决定了树的叶子节点数对模型复杂度的影响。较大的 γ \gamma γ 值会增加每增加一个叶子节点的成本,从而限制树的生长。

  4. w j w_j wj:第 j j j 个叶子节点的权重值。每个叶子节点都有一个预测值(权重),用于预测所有落入该节点的样本的值。

  5. λ \lambda λ:控制叶子节点权重大小的正则化参数。它用于限制叶子节点权重的大小,防止权重过大导致模型对训练数据的过拟合。

公式的分解与理解

公式可以分为两个部分:

第一部分:叶子节点数量惩罚项

γ T \gamma T γT

  • 这一部分表示树中叶子节点数量的惩罚, γ \gamma γ 是正则化参数,控制每增加一个叶子节点的复杂度成本。
  • 树的叶子节点越多,模型的表达能力越强,但也更容易出现过拟合。因此,通过增加叶子节点的成本,XGBoost 可以有效地限制树的复杂度。
  • 较大的 γ \gamma γ 值会让树的叶子节点数量减少,从而使模型更加简单,增强泛化能力。
第二部分:叶子节点权重惩罚项

1 2 λ ∑ j = 1 T w j 2 \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2 21λj=1Twj2

  • 这一部分是对叶子节点权重的正则化,通过惩罚权重的平方和来限制权重的大小。
  • λ \lambda λ 是控制权重大小的正则化参数。较大的 λ \lambda λ 值会对权重 w j w_j wj 施加更大的惩罚,从而抑制每个叶子节点的输出值。
  • 权重 w j w_j wj 的平方和表示所有叶子节点的权重复杂度。通过限制权重的大小,XGBoost 可以防止某些叶子节点权重过大,以避免模型对训练样本的过拟合。

正则化项的作用

  1. 防止过拟合:正则化项通过限制叶子节点数量 T T T 和叶子节点权重 w j w_j wj 的大小,来控制树的复杂度,从而减少模型的过拟合风险。
  2. 增强泛化能力:通过控制模型的复杂度,XGBoost 可以更好地在新数据上表现。正则化项让模型不再过于依赖训练数据中的特定模式,而是更关注数据的整体结构。
  3. 控制模型复杂度 γ \gamma γ λ \lambda λ 参数为用户提供了控制模型复杂度的手段,用户可以通过调整这两个超参数,来选择合适的树结构和节点权重,找到泛化能力和训练精度之间的最佳平衡。

总结

公式(12-14)

Ω ( f t ) = γ T + 1 2 λ ∑ j = 1 T w j 2 \Omega(f_t) = \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2 Ω(ft)=γT+21λj=1Twj2

是 XGBoost 的正则化项,用于控制树的复杂度。第一部分 γ T \gamma T γT 惩罚树的叶子节点数量,防止模型过于复杂;第二部分 1 2 λ ∑ j = 1 T w j 2 \frac{1}{2} \lambda \sum_{j=1}^{T} w_j^2 21λj=1Twj2 惩罚叶子节点权重的大小,防止某些节点权重过大而导致的过拟合。通过正则化项,XGBoost 可以有效地控制模型的复杂度,从而在训练精度和泛化能力之间取得平衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/60299.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 正则表达式详解

正则表达式(Regular Expression,简称 RegEx)是一种强大的文本匹配工具,广泛应用于字符串搜索、替换和验证等场景。 1. 基本概念 1.1 创建正则表达式 在 JavaScript 中,可以通过两种方式创建正则表达式: 字面量表示法: const regex = /pattern/flags; 构造函数表示法…

Linux【基础篇】

-- 原生罪 linux的入门安装学习 什么是操作系统? 用户通过操作系统和计算机硬件联系使用。桥梁~ 什么是Linux? 他是一套开放源代码(在互联网上找到Linux系统的源代码,C语言写出的软件),可以自由 传播&…

大数据技术在智慧医疗中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 大数据技术在智慧医疗中的应用 大数据技术在智慧医疗中的应用 大数据技术在智慧医疗中的应用 引言 大数据技术概述 定义与原理 发…

Linux(CentOS)安装 MySQL

CentOS版本:CentOS 7 三种安装方式: 一、通过 yum 安装,最简单,一键安装,全程无忧。 二、通过 rpm 包安装,需具备基础概念及常规操作。 三、通过 gz 包安装,需具备配置相关操作。 --------…

无线局域网四种类型

无线局域网(WLAN)常用的四种类型包括: 基础设施模式(Infrastructure Mode) 在这种模式下,所有设备都通过无线接入点(AP)进行通信。接入点通常连接到有线网络,以便无线设备…

CSS如何改变滚动条的颜色样式粗细?

默认滚动条很丑怎么办?如何改版滚动条的粗细,颜色,让它更美观?CSS如何改变滚动条的粗细? 干货来了 /* Webkit内核浏览器的滚动条样式 */ ::-webkit-scrollbar {width: 4px; /* 设置滚动条的宽度 */ }::-webkit-scroll…

java并发编程JUC:四、volatile(保证可见性、防止指令重排、双重校验锁实现对象单例)

volatile关键字 在Java中,volatile关键字用于声明变量,以确保对变量的读写操作直接在主内存中进行,而不是在线程的本地缓存中。volatile的主要作用是提供可见性和有序性保证,但它不保证原子性。 可见性(Visibility&a…

YOLOv11(Ultralytics)可视化界面ui设计,基于pyqt5,单文件即插即用,支持文件夹检测及云摄像头检测并保存

本文的可视化界面对于YOLOv11/Ultralytics/YOLOv8的检测、分割、分类、姿势估算(detection, segmentation, obb, classification, and pose estimation)等均可正常显示。本次新增了图片及视频的保存,可以选择传入文件夹进行检测并显示&#x…

用python开发坦克大战重制版

Python 开发坦克大战重制版:全面教程 引言 坦克大战是一款经典的街机游戏,自1985年首次推出以来,便吸引了无数玩家。随着时间的推移,许多游戏开发者开始尝试重制这款经典游戏。本文将指导你如何使用 Python 和 Pygame 库开发一个…

链式结构二叉树

数据结构 结点申请 树🌲行结构 前中后序遍历 二叉树结点个数 二叉树叶子节点个数 第k层结点个数 二叉树深度 二叉树查找值为x的结点 二叉树销毁

【2024软考架构案例题】你知道什么是 RESTful 风格吗?

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

Java 封装(Encapsulation)详解

封装是面向对象编程(OOP)中的一个核心概念,它涉及将数据(变量)和操作这些数据的方法(函数)捆绑成一个单一的单元或类。封装的主要目的是限制对对象某些组件的直接访问,从而保护数据的…

wordpress站外调用指定ID分类下的推荐内容

在WordPress中,如果你想从站外调用指定ID分类下的推荐内容,你可以使用WordPress REST API来实现。以下是一个基本的步骤指南: 1. 启用REST API 确保你的WordPress站点已经启用了REST API。大多数现代WordPress版本默认启用此功能。 2. 获取…

#渗透测试#SRC漏洞挖掘#深入挖掘CSRF漏洞02

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

自动驾驶革命:从特斯拉到百度,谁将主宰未来交通?

内容概要 自动驾驶技术正在经历一个前所未有的革命性变化,各大企业纷纷抢占这一充满潜力的新市场。以特斯拉和百度为代表的行业巨头,正利用各自的优势在这一技术的赛道上展开激烈竞争。特斯拉凭借其在电动汽车和自动驾驶领域的前瞻性设计与不断革新的技…

反向代理开发

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…

语义SOP(Semantic SOP)

语义SOP(Semantic SOP)指的是将标准操作流程(Standard Operating Procedures,SOP)融入语义信息,以便更智能地管理、执行和优化流程。通过引入语义技术,可以增强 SOP 的可理解性、自动化水平和灵…

【Python】爬虫通过验证码

1、将验证码下载至本地 # 获取验证码界面html url http://www.example.com/a.html resp requests.get(url) soup BeautifulSoup(resp.content.decode(UTF-8), html.parser)#找到验证码图片标签,获取其地址 src soup.select_one(div.captcha-row img)[src]# 验证…

【C#】深拷贝和浅拷贝、区别

深拷贝和浅拷贝的概念 在 C# 中,深拷贝和浅拷贝是两种不同的对象复制方式,用来复制对象中的数据到新的对象。它们的主要区别在于是否会复制对象引用的子对象。 浅拷贝(Shallow Copy): 浅拷贝只复制对象的引用&#xf…

Spring中的 bean 标签中的 factory-bean , factory-method

1.首先说说 factory-method 是指定创造实例的工厂方法,用法: factory-method 和 class 配合使用,这时 factory-method 必须是class所指定的类中的一个静态方法,也就是Spring会直接调用 class 所指定的类的静态工厂方法创建一个实例…