【机器学习算法】XGBoost原理

news/2024/11/30 20:39:35/文章来源:https://www.cnblogs.com/DLShark/p/18578837

一、基本内容

  • 基本内容:GBDT的基础上,在损失函数上加入树模型复杂度的正则项

与GBDT一样,也是使用新的弱学习器拟合残差(当前模型负梯度,残差方向

  • GBDT损失函数

\[Loss = \sum_{i=1}^{N}L(y_i, y_i^{t}) \]

  • XGboost损失函数

\[Loss = \sum_{i=1}^{S}L(y_i, y_i^{t}) + \sum_{j=1}^{N}\Omega(f_j)) \]

  • 正则项

\[\Omega(f_t))=\gamma L+\frac{1}{2} \lambda \sum_{j=1}^L \omega_j^2 \]

其中,\(L\)表示当前弱学习器的叶子节点个数,\(\gamma,\lambda\)表示惩罚项,\(\omega_j\)表示当前弱学习器的叶子节点\(j\)值。

二、目标函数优化

​ 弱学习器损失函数可以写为:

\[Loss =\gamma N+ \sum_{j=1}^{L} 【\sum_{i=1}^{N}(L(y_i, y_i^{t})) + \frac{1}{2} \lambda \omega_j^2)】 \]

​ 其中,\(y_i^t = y_i^{t-1}+\omega_j\),表示当前的预测输出概率为前\(t-1\)个学习器的输出结果加上当前学习器的输出,\(y_i^{t-1}\)为常数;

​ 目标函数:

\[argmin_{\omega}(\gamma N+ \sum_{j=1}^{L} 【\sum_{i=1}^{N}(L(y_i, y_i^{t-1}+\omega_j)) + \frac{1}{2} \lambda \omega_j^2)】) \]

[!note]

泰勒二阶展开基础公式:

\[f(x) = f(x_0) + f'(x_0)(x-x_0) + \frac{1}{2}f''(x_0)(x-x_0)^2 \]

​ 在目标优化中,对函数\(L(y_i, y_i^{t-1}+\omega_j)\)二阶泰勒展开,可得:

\[L(y_i, y_i^{t-1}+\omega_j)=L(y_i, y_i^{t-1}) + L'(y_i, y_i^{t-1})\omega_j + \frac{1}{2}L''(y_i, y_i^{t-1})\omega_j^2 \]

​ 舍去常数项,令$g_i=L'(y_i, y_i^{t-1})\omega_j,h_i =\frac{1}{2}L''(y_i, y_i{t-1})\omega_j2 \(,表示第\)i\(个样本的真实值与前\)t-1$弱学习器模型输出值的损失导数

\[Loss = \gamma N+ \sum_{j=1}^{L} 【\sum_{i=1}^{N}(g_i\omega_j + \frac{1}{2}h_i\omega_j^2)) + \frac{1}{2} \lambda \omega_j^2)】 \]

\[=\gamma N+ \sum_{j=1}^{L} 【\omega_j\sum_{i=1}^{N}g_i + \frac{1}{2}\omega_j^2 (\sum_{i=1}^{N}h_i+ \lambda)】 \]

​ 令\(G_i=\sum_{i=1}^{N}g_i,H_i= \sum_{i=1}^{N}h_i\),最后的优化目标函数可以写为:

\[Obj_{fun} = argmin_{\omega}(\gamma L +\sum_{j=1}^{L}(w_jG_j+\frac{1}{2}w_j^2(\lambda+H_j))) \]

​ 可以发现,目标函数是关于\(\omega\)的二次函数,使得损失最小的\(\omega\)值为:

\[w_j=-\frac{b}{2a} =-\frac{G_j}{H_j + \lambda} \]

\(\omega\)代入目标函数,可得:

\[Obj_{fun}=\gamma L -\frac{1}{2} \sum_{j=1}^L\frac{G_j^2}{H_j + \lambda} \]

三、树结构的确定

3.1 穷举法

逐一举例,时间复杂度过大,不可能实现

3.2 精确贪心算法

基本原理与决策树的结点选取类似,以信息增益的思想,遍历所有特征以及阈值选取当前节点的特征和阈值

​ 假设当前叶子结点数为\(1\),进一步划分的叶子节点数目为2,假设划分后的左子结点的样本二阶导之和为\(G_L\),同理右子节点的样本二阶导之和为\(G_R\),则未划分前应该是二者之和,因此,划分前后的目标损失分别为:

\[Obj_{fun} =\begin{cases}\gamma \times 1 -\frac{1}{2} \frac{(G_L+G_R)^2}{H_L+H_R + \lambda},\,\,分裂前\\\gamma \times 2 -\frac{1}{2} \sum_{j=1}^2\frac{G_j^2}{H_j + \lambda},\,\,分裂后\\\end{cases} \]

​ 损失减少,则表明当前分裂work,记录当前分裂特征和阈值,\(Gain\)越大,表明效果越好

\[Gain = Obj_{分裂前} - Obj_{分裂后} \]

3.3 列采样

一种对特征降采样的方式:选取一定的特征分裂,每一个弱学习器选取子特征集,例如从原有特征选择80%的特征,而弱学习器的每一个结点也可以在当前树下的子特征集重新随机选取,也可以全部使用进行遍历。

3.4 特征值分桶法

一种对特征值降采样的方式:对特征的值进行分桶,例如某一特征的值为0-9,分为五个桶只需要遍历五次,大大增加运算效率,桶数越大,与精确贪心算法的越接近,当每个桶只有一个样本时,即为精确贪心算法。

  • 全局策略:分裂结点的特征一样时,当前弱学习器的分桶阈值不变;
  • 局部策略:分裂结点的特征一样,当前弱学习器的新结点也会重新计算分桶阈值;

​ 在论文中,桶的数目个数计算为:

\[Num = \frac{1}{eps} \]

​ 如图可以得到以下结论:

  1. 局部策略在一般情况下比全局策略好;
  2. \(eps\)足够小时,时间复杂度以及精度是与精确贪心算法接近的,并且效果优于局部策略;

image

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

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

相关文章

《网络与系统攻防技术》实验七

1.实验内容及要求 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有 (1)简单应用SET工具建立冒名网站 (2)ettercap DNS spoof (3)结合应用两种技术,用DNS spoof引导特定访问到冒名网站。 二、实验过程 (一)简单应用SET工具建…

HCIP-04 交换高级技术

VLAN聚合通过配置Super-VLAN和Sub-VLAN,不同Sub-VLAN之间进行通信,需要Super-VLAN开启ARP代理。 VLAN聚合既避免了由于子网划分带来的网络地址规划复杂的问题,又能够实现通过VLAN隔离不同广播域的目的。 • MUX VLAN包括Principal VLAN和Subordinate VLAN,同时Subordinate …

基于Jenkins构建微服务发布平台-2

基于Jenkins构建微服务发布平台-2 续——基于Jenkins构建微服务发布平台-1 4 流水线自动发布微服务项目 4.4 Docker阿里云镜像加速失效解决方案 在所有节点上执行。# tee /etc/docker/daemon.json <<-EOF{ "registry-mirrors": [ "https://do.nar…

九种常见二维插值方法及双线性插值的理解

九种常见二维插值方法概述 在数据分析、计算机视觉和图形处理等领域,插值是一种重要的技术,用于估算在已知数据点之间的未知值。以下是几种常用的插值方法的详细介绍。 1. 双线性插值 (Bilinear Interpolation) 双线性插值是一种在二维直线网格上进行插值的技术。它首先在一个…

c# is 和 as 浅看重制版

前言 当年写的比较差:https://www.cnblogs.com/aoximin/p/12965408.html,所以特来重新写一遍。 正文 首先为什么会出现is 和 as 呢? 因为是为了有需要检验的地方,如果直接使用显示转换的话,那么可能直接报错了。 namespace ConsoleApp4 {class Program{static void Main(s…

20222422 2024-2025-1 《网络与系统攻防技术》实验五实验报告

一、实验内容 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息: DNS注册人及联系方式 该域名对应IP地址 IP地址注册人及联系方式 IP地址所在国家、城市和具体地理位置 PS:使用whois、dig、nslookup、traceroute、以及各类在线和离线…

安装扫描仪DS-410出现安装Desktop Experience提示

安装Epson Scan所需的某些模块没有安装。安装Desktop Experience之后安装Epson Scan。在Windows server 2012上安装扫描仪出现该错误,该错误为server系统需要桌面支持,默认Windows server 该功能是不安装的需要用户按需求安装。 安装windows server 2012 R2 安装桌面体验勾选…

2019-8-29-02-JS-DOM

图片轮播是Web开发中最常见的组件之一,这是一篇用原生JavaScript实现简单图片轮播的教程。 要实现图片轮播,首先我们要将图片轮播拆分为图片容器、图片、上一页按钮、下一页按钮、底部点选容器、底部点选按钮。 下面我们用HTML代码表示。 ... <div id="page">…

【朝花夕拾】蓝牙WiFi常识篇

一、蓝牙常识点 1、常见英文缩写缩写 英文全称 释义BLE Bluetooth Low Energy低功耗蓝牙BR Basic Rate基本速率,一般说的经典蓝牙就是指BR/EDREDR Enhanced Data Rate增强速率,BR的增强版,一般说的经典蓝牙就是指BR/EDRBluetooth SIG Bluetooth Special Interest Group蓝牙技…

Git入门图文教程(1.5W字40图)--深入浅出、图文并茂

原文:Git入门图文教程(1.5W字40图)🔥🔥--深入浅出、图文并茂 - 安木夕 - 博客园01、认识一下Git!—简介 Git是当前最先进、最主流的分布式版本控制系统,免费、开源!核心能力就是版本控制。再具体一点,就是面向代码文件的版本控制,代码的任何修改历史都会被记录管理起…

20222414 2024-2025-1 《网络与系统攻防技术》实验七实验报告

1.实验内容及要求 1.1本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有 (1)简单应用SET工具建立冒名网站 (2)ettercap DNS spoof (3)结合应用两种技术,用DNS spoof引导特定访问到冒名网站。 1.2本周学习内容 (1)web安全基础:…

硬盘的基本知识与选购指南

1、3.5和2.5英寸硬盘的英寸,不是指外壳的尺寸,而是硬盘盘片的直径尺寸。 无论是 2.5英寸的硬盘还是 3.5 英寸的硬盘,都是使用 SATA 接口。 1.1、3.5英寸 3.5 英寸的硬盘在 1984 年就已经诞生,直到在 1991 年出现首款容量为 1GB 的机械硬盘,3.5 英寸硬盘开始成为标准规格。…