ML XGBoost详细原理及公式推导讲解+面试必考知识点

news2024/11/16 0:02:54

😄 搞竞赛天天无脑XGBoost、LightGBM、CatBoost,但不知道原理也少许有点尴尬了~,所以打算深入学习下这三大竞赛杀器的原理,整理下面试中一些高频问题。之前有决策树,GBDT的基础了,再学学这三个和随机森林,集成学习之树模型应该差不多了。

🚀 看了一圈网上关于讲解XGB原理的基本都是到处粘贴公式凑一起,说这公式就是通过这样来的,那样来的,没有详细的推导过程及详细的解释。XGB稍微复杂点的公式推导过程应该属于目标函数最优值的推导过程那块,所以以下,我从头到尾手推了一遍,并解释了各部分的原因,如有疑问出,评论区or私信我,48小时内回复。

🦄剩余部分+面试高频考点,持续更新ing ~

🚀导航:

ID算法
NO.1XGBoost直观理解
NO.2XGBoost原理讲解+目标函数最优值推导 (公式推导)
NO.3XGBoost训练+优化策略 (原理讲解)
NO.4XGBoost高频面试问题+答案

以下穿插一些图片来源于XGB作者陈天奇的论文、PPT。


1、XGBoost直观理解

XGB和GBDT的思想其实相同,但XGB优化了几部分。所以可以说XGB (eXtreme Gradient Boosting) 是极致的GBDT。XGB也是由一堆的Cart组成。XGBoost之所以这么好,主要优化了以下几个方面:

1、目标函数引入树的复杂度起到正则化作用,可以有降低防过拟合的风险。
2、提出了一种加权分桶,减少计算量。
3、对稀疏数据进行默认划分,减少计算量。
4、对内存的优化、做了并行化处理
5、对CPU缓存的优化
6、对存储的优化

在这里插入图片描述
在这里插入图片描述



2、XGBoost原理讲解+目标函数最优值推导 (公式推导)

在这里插入图片描述
在这里插入图片描述



3、XGBoost训练+优化策略 (原理讲解)



4、XGBoost高频面试问题+答案

1、XGBoost和GBDT的相同点与不同点:
答:XGBoost(eXtreme Gradient Boosting)是极致的GBDT,是一种基于GBDT的算法或者说工程实现。

相同点:

  • 都是基于Boosting思想的集成学习方法。

不同点:

  • 1、XGB目标函数采用二阶导优化(泰勒二阶展开),GBDT则采用一阶导优化。
  • 2、XGB目标函数加入了正则项缓解过拟合,GBDT没有。
  • 3、XGB能够自动处理缺失值,GBDT不允许缺失值。
  • 4、Block存储可以并行计算。
  • 4、XGB更高效、灵活。轻便。

2、 xgboost的目标函数为什么要进行泰勒二阶展开?
答:相对于GBDT的一阶泰勒展开,XGBoost采用二阶泰勒展开,可以更为精准的逼近真实的目标函数。

3、xgboost支持自定义损失函数吗?有什么要求?
答:损失函数支持自定义,只需要新的损失函数二阶可导。

4、XGBoost目标函数中为什么要加入正则项?
答:XGB的目标函数中的正则项其实就是树的复杂度,加入这个正则项,相当于预剪枝,使得学习出来的模型不易过拟合。

5、xgboost如何处理缺失值?
答:对树中的每个非叶子节点,xgb可以自动学习出它的默认分裂方向。若某个样本该特征值缺失,会将其划入默认分支,对缺失值的处理方向如下:

  • 在特征k上寻找最佳分割点,不会对该列特征缺失的样本进行遍历,而只对该列特征值为非缺失样本上对应的特征值进行遍历,通过这个技巧来减少了为稀疏离散特征寻找分割点的时间开销。
  • 在逻辑实现上,为了保证完备性,会将该特征值缺失的样本分别分配到左叶子结点和右叶子结点,两种情形都计算一遍后,选择分裂后增益最大的那个方向(左分支或是右分支),作为预测时特征值缺失样本的默认分支方向。
  • 如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子结点。

6、xgb为什么可以并行训练?
答:

  • XGBoost的并行,并不是说每棵树可以并行训练,XGBoost本质上仍然采用boosting思想,每棵树训练前需要等前面的树训练完成才能开始训练。
  • XGBoost的并行,指的是特征维度的并行。在训练之前,每个特征按特征值对样本进行预排序,并存储为Block结构,在后面查找特征分割点时可以重复使用,而且特征已经被存储为一个个block结构,那么在寻找每个特征的最佳分割点时,可以利用多线程对每个block并行计算。

7、XGBoost都有哪些防止过拟合的设计?
答:为防止过拟合,XGB主要包含如下4个优化措施:

  • 叶子节点个数+叶子节点权重的L2正则化
  • 列抽样:训练的时候只用一部分特征(不考虑剩余的block块即可)
  • 子采样:每轮计算可以不使用全部样本,使算法更加保守
  • shrinkage: 可以叫学习率或步长,为了给后面的训练留出更多的学习空间

8、XGBoost如何评价特征的重要性?
答:XGBoost采用三种方法来评判XGBoost模型中特征的重要程度:

  • weight :该特征在所有树中被用作分割样本的特征的总次数。
  • gain :该特征在其出现过的所有树中产生的平均增益。
  • cover :该特征在其出现过的所有树中的平均覆盖范围。

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

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

相关文章

unix网络编程(四)epoll反应堆

epoll反应堆原理代码demo原理 【epoll模型原来的流程】: epoll_create(); // 创建监听红黑树 epoll_ctl(); // 向书上添加监听fd epoll_wait(); // 监听 有监听fd事件发送—>返回监听满足数组—>判断返回数组元素—> lfd满足accept—>返回cfd---->r…

【仿牛客网笔记】项目进阶,构建安全高效的企业服务——任务执行和调度

http://www.quartz-scheduler.org 集群服务器有两类程序一类普通请求,另一类定时任务。 浏览器通过负载均衡工具Nginx, Nginx同一时刻有一个去处理。 Quartz存入到数据库中,多个Quartz同时访问 线程池测试类 实例化logger,通过logger输出,自…

Java学习之封装

**学习重点:**面向对象编程的三大特征:封装、继承、多态度 封装介绍 封装:encapsulation就是把属性和方法封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(方法)&#xff0c…

【Linux】四、Linux 进程概念(二)|普遍操作系统的进程状态(运行、阻塞、挂起)|Linux的具体进程状态|僵尸进程|孤儿进程

目录 五、进程状态 5.1 普遍操作系统层面的进程状态(宏观) 5.1.1 什么叫做运行状态 5.1.2 阻塞状态 5.1.2 挂起状态 5.2 Linux 的进程状态(具体) 5.2.1 Linux 内核进程状态源代码 5.2.2 Linux 进程状态查看 5.2.3 Linux …

2023年软考高级系统规划与与管理师备考策略

2023年上半年软考高级系统规划与管理师打算怎么备考呢? 系统规划与管理师是高级科目的其中一科,难度系数是有的,系统规划与管理师相较于其他高级考试又相对难度可控。只要你肯下功夫,还是可以拿下的!系统规划与管理师…

ASP.NET Core教程-Routing(路由)

更新记录 转载请注明出处: 2022年11月21日 发布。 2022年11月20日 从笔记迁移到博客。 Route Basic(路由基础) 路由说明 请求URL映射到控制器方法的过程,这个映射过程由路由规则定义。 路由功能 跟据预先配置的路由信息对客户端传来的请求进行路由映射&a…

Hbase Coprocessor 协处理器 与 JavaAPI

协处理器概念 一、协处理器有两种: observer 和 endpoint 1、observer协处理器 Observer 类似于传统数据库中的触发器,当发生某些事件的时候这类协处理器会被 Server 端调用。Observer Coprocessor 就是一些散布在 HBase Server 端代码中的 hook 钩子…

go使用grpc

protoc下载 protoc是protobuf的编译工具,能根据.proto文件生成为各种语言的文件。 原始的protoc集成了如下语言的转换: cc#javaobjectcphppythonruby 但是没有集成go的转换工具。go的转换工具是在protoc的基础上使用插件的方式运行。 protoc 的下载地址…

java面试强基(7)

hashCode() 有什么用? ​ hashCode() 的作用是获取哈希码(int 整数),也称为散列码。这个哈希码的作用是确定该对象在哈希表中的索引位置。 ​ hashCode()定义在 JDK 的 Object 类中,这就意味着 Java 中的任何类都包含…

阿里架构师耗时1年,把P8所需要的整个Java体系,都整理到了一起

始末 有人调侃我们说: 程序员不如送外卖。送外卖是搬运食物,自己是搬运代码,都不产出新的东西……透支体力,又消耗健康,可替代性极强,30岁之后就要面临被优化的危险……想跳槽,但是更高的平台…

科技风杂志科技风杂志社科技风编辑部2022年第31期目录

科技创新《科技风》投稿:cnqikantg126.com 基于钢架网箱清理控制系统的研究 张浩;崔新忠;丁树兵;尹杰;卢佳乐;王隽屹;张津宁; 1-3 遥感技术在海洋区域地质调查中的应用——以岛礁区调查为例 韩艳飞; 4-6 医院电气工程智能自动化及PLC技术在医院电气设备…

mipi介绍

文章目录1.MIPI简介1-1:DSI layer2.D_PHY2-1:D_PHY介绍2-2:电平状态2-3:lane结构2-4:data lane操作模式2-4-1:escape mode和space one hot coding2-4-2:Low-Power Data Transmission&#xff08…

图书借阅管理系统的设计与实现/书籍借还管理系统

摘要 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化、网络化和电子化。网上借阅一系列功能将成为人们最关注话题,本论文是以构建图书借阅为目标,使用 Java制作,由前台用户借阅图书、…

计算机网络4小时速成:网络安全,被动攻击,主动攻击,对称加密,公钥秘钥,数字签名,鉴别,网络层安全协议IPsec,传输层安全协议SSL,防火墙,入侵检测系统

计算机网络4小时速成:网络安全,被动攻击,主动攻击,对称加密,公钥秘钥,数字签名,鉴别,网络层安全协议IPsec,传输层安全协议SSL,防火墙,入侵检测系统…

PTA题目 计算分段函数[1]

本题目要求计算下列分段函数f(x)的值: 输入格式: 输入在一行中给出实数x。 输出格式: 在一行中按“f(x) result”的格式输出,其中x与result都保留一位小数。 输入样例1: 10输出样例1: f(10.0) 0.1输入样例2: 0输出样例2: f(0.0) 0.0 #includ…

公众号免费题库接口

公众号免费题库接口 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击…

IDEA Windows下SPARK连接Hive

IDEA Windows下SPARK连接Hive 文章目录IDEA Windows下SPARK连接Hive一、本地Windows环境配置二、IDEA项目配置1. POM配置2. 资源文件配置3. 测试验证一、本地Windows环境配置 本地构建HADOOP客户端 将大数据平台的HAODOP环境打包拿到本地环境来: #压缩整个HADOOP…

特征选择技术总结

在本文中,我们将回顾特性选择技术并回答为什么它很重要以及如何使用python实现它。 本文还可以帮助你解答以下的面试问题: 什么是特征选择?说出特性选择的一些好处你知道哪些特征选择技巧?区分单变量、双变量和多变量分析。我们能用PCA来进行特征选择吗?前向特征…

如何打造一支专业的QA团队,至少要关注这5点

目录 第一、专职的QA人员 第二、关注QA的能力素质 第三、适度的量化指标 第四、增加QA工作的透明度 第五、 充分利用好评审这把“利剑” QA是Quality Assurance的缩写,直接翻译过来就是“质量保证”的意思。 QA也称为质量工程师,基本上每个产品型或…

指纹浏览器——为跨境电商打造的跨境卫士

“跨境卫士”这个词当然是保障跨境人账号安全的意思,为跨境电商打造的跨境卫士,说白了就是专门为跨境电商商家解决各种痛点的软件工具,那一说到这类软件工具,很多人脑海中第一时间想到的是什么?相信都会出现“指纹浏览…