一文掌握XGBoost核心原理

XGBoost是经典的提升树学习框架,其配套论文和PPT分享也相当经典,本文简单梳理其思路,原文见XGBoost原理简介

整体思路

和一般提升模型一样,提升树模型也遵循相同的范式

  • 采用加法模型「forward stage-wise manner」
  • 每轮引入一weak learner「此处是一棵CART树」
  • 学习之前weak learners的不足「用梯度表征」

同时要考虑过拟合等问题「overfitting is everywhere」。

Tree Ensemble

遵循李航老师统计学习三要素公式

方 法 = 模 型 + 策 略 + 算 法 方法=模型+策略+算法 =++

假设空间「模型」

Tree Ensemble基本思想是将多棵树的结果融合作为最终输出,示意图如下

paper-xgboost-tree-ensemble

不难看出,模型的假设空间是一系列CART树的集成,输出为

y ^ i = ∑ k = 1 K f k ( x i ) , f k ∈ F \hat y_i = \sum_{k=1}^{K} f_k(x_i), \quad f_k \in F y^i=k=1Kfk(xi),fkF

其模型参数为 K K K颗树

⊝ = { f 1 , f 2 , … , f K } \circleddash = \{f_1, f_2, \dots, f_K\} ={ f1,f2,,fK}

目标函数「策略」

模型假设有了,另一个核心元素就是目标函数,和一般监督模型一样

O b j ( ⊝ ) = L ( ⊝ ) + Ω ( ⊝ ) Obj(\circleddash)=L(\circleddash)+\Omega(\circleddash) Obj()=L()+Ω()

目标函数分两部分「Bias-variance tradeoff is everywhere

  • Training Loss measures how well model fit on training data
  • Regularization measures complexity of model

具体到Tree Ensemble,其目标函数为

O b j = ∑ i = 1 n l ( y i , y ^ i ) + ∑ k = 1 K Ω ( f k ) Obj = \sum_{i=1}^{n} l(y_i, \hat y_i) + \sum_{k=1}^{K}\Omega(f_k) Obj=i=1nl(yi,y^i)+k=1KΩ(fk)

优化求解「算法」

模型参数的最终求解。参数 ⊝ = { f 1 , f 2 , … , f K } \circleddash = \{f_1, f_2, \dots, f_K\} ={ f1,f2,,fK} K K K颗树,无法用SGD类似方法优化求解,因为不是 R d R^d Rd空间上的数值向量。一般采用Additive Training(Boosting)的思想求解。

Gradient Boosting

Tree Ensemble章节回答了what we are learning的问题,Gradient Boosting章节要回答how do we learn的问题。

Additive Traing范式

采用Additive Training(Boosting)的模式,即每一轮学习一颗新树 f t f_t ft

paper-xgboost-boosting

学习一颗新树

问题是每一轮 y ^ i ( t ) = y ^ i ( t − 1 ) + f t ( x i ) \hat y_i^{(t)} = \hat y_i^{(t-1)} + f_t(x_i) y^

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
掌握Ubuntu,您可以采取以下步骤: 1. 下载Ubuntu镜像:您可以从官方网站下载Ubuntu的最新版本。根据您的硬件架构选择合适的版本。 2. 创建启动U盘:使用免费的win32diskimager工具将下载的Ubuntu镜像烧录到U盘上。这样您就可以通过U盘启动安装Ubuntu。将U盘插入计算机,并按照工具的指示进行操作。 3. 安装Ubuntu:将启动U盘插入需要安装Ubuntu的计算机,重新启动计算机。在启动时,选择从U盘启动。按照屏幕上的提示进行Ubuntu的安装过程。您可以选择安装到硬盘上,或者选择试用Ubuntu而不进行实际安装。 4. 更新系统:在安装完成后,建议您更新系统以获取最新的补丁和软件包。打开终端并运行以下命令:sudo apt update && sudo apt upgrade 5. 安装必要的软件:根据您的需求,可以安装各种软件。例如,如果您需要进行深度学习开发,可以安装CUDA和PaddlePaddle。 6. 学习命令行操作:Ubuntu是一个基于Linux的操作系统,使用命令行是非常常见的。您可以学习一些基本的Linux命令,例如文件和目录操作、软件包管理等。 7. 探索图形界面:Ubuntu提供了直观的图形界面,您可以通过点击图标和菜单来执行各种操作。尝试打开不同的应用程序,了解它们的功能和用法。 通过以上步骤,您将能够快速上手并掌握Ubuntu操作系统。记得多练习和实践,以加深对Ubuntu的理解和熟练度。祝您成功!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值