机器篇——集成学习(七) 细说 XGBoost 算法

本文详细介绍了XGBoost算法,包括其作为监督学习算法的增强过程,模型融合,模型训练,正则化项,简化目标函数,以及在实际操作中的优势。XGBoost通过二阶泰勒展开优化了GBDT,并能处理缺失值,常用于生产中的集成学习任务。
摘要由CSDN通过智能技术生成

返回主目录

返回集成学习目录

上一章:机器篇——集成学习(六) 细说 GBDT 算法

下一章:机器篇——集成学习(八) 细说 ball49_pred 项目(彩票预测)

 

本小节,细说 XGBoost 算法,下一小节细说 ball49_pred 项目

 

论文参考以下链接: XGBoost: A Scalable Tree Boosting System

 

二. 具体算法

7. XGBoost 算法(Extreme Gradient Boostin, XGBoost)

   XGBoost 是 GB 算法的一种高效实现。XGBoost 中的基学习器除了可以是 CART(gbtree),也可以是线性分类器(gblinear)。

    (1). XGBoost 是一种监督学习算法,它实现了一个称为增强的过程,以产生准确的模型。

          监督学习的常用目标函数,通常包含两个部分:训练误差 + 正则化

                     \LARGE obj(\theta) = L(\theta) + \Omega (\theta)

                \large L(\theta):为损失函数,度量模型预测值和真实值的误差。

                               \LARGE L(\theta) = \sum_{i = 1}^{m} l(y_{i}, \hat{y_{i}})

                               平方损失函数:

                                      \LARGE l(y_{i}, \hat{y_{i}}) = (y_{i} - \hat{y}_{i})^2

                                交叉熵损失函数:

                                      \LARGE l(y_{i}, \hat{y_{i}}) = - \sum_{k}y_{i,k} \log_{2} \hat{y}_{i,k}

                                      \large k 为分类数,特别地,当 \large k = 2 时,为 二分类的交叉熵损失函数:

                                            \LARGE l(y_{i}, \hat{y}_{i}) = - y_{i} \log_{2} \hat{y}_{i} - (1 - \hat{y}_{i})\log_{2} (1 - \hat{y}_{i})

                                 logistic 损失函数:

                                       \LARGE l(y_{i}, \hat{y}_{i}) = y_{i}ln(1 + e^{-\hat{y}_{i}}) + (1 - y_{i})ln(1 + e^{\hat{y}_{i}})

                \large \Omega (\theta):为正则化项,度量模型的复杂度,避免过拟合。常用的正则化有 \large L_{1},L_{2} 正则化。

                               \large L_{1} 正则:\large \Omega (\theta) = \lambda |\theta|

                               \large L_{2} 正则:\large \Omega(\theta) = \lambda |\theta|^{2}

 

    (2). 模型融合

     一棵 CART 往往过于简单,而无法有效地进行预测,因此更加高效的是使用多个 CART 进行融合,使用集成的方法提升预测效果。

     ①. 假设有两棵回归树,进行融合预测结果,公式为:

                \LARGE \hat{y}_{i} = \sum_{k = 1}^{K} f_{k}(x_{i}) \;\;\;\; f_{k} \in F

               \large K:为树的棵数

              \large f_{k}(x_{i}):为第 \large k 棵树对于输入 \large x_{i} 输出的得分

              \large f_{k}:为相应函数

              \large F:为相应函数空间

     ②. 目标函数:

               \LARGE obj(\theta) = \sum_{i = 1}^{m} l(y_{i}, \hat{y}_{i}) + \sum_{k = 1}^{K} \Omega(f_{k})

                \large l:为损失函数。

 

    (3). 模型训练

     ①. 假设每次迭代生成一棵树,则训练目标函数可以写成:

                 \LARGE obj(\theta)_{t} = \sum_{i = 1}^{m} l(y_{i,t}, \hat{y}_{i,t}) + \sum_{k = 1}^{t} \Omega(f_{k})

                 \large \hat{y}_{it}:为第 \large t 步迭代的预测值。

     ②. 迭代关系:

              \LARGE \hat{y}_{i,0} = 0

              \LARGE \hat{y}_{i, 1} = f_{1}(x_{i}) = \hat{y}_{i, 0} + f_{1}(x_{i})

              \LARGE ......

              \LARGE \hat{y}_{i,t} = \sum_{i = 1}^{t} f_{k}(x_{i}) = \hat{y}_{i, t - 1} + f_{t}(x_{i})

     ③. 训练目标函数可以写成:

              \LARGE obj_{t} = \sum_{i = 1}^{m} l(y_{i}, \hat{y}_{i, t}) + \sum_{i = 1}^{t} \Omega(f_{i})

                             

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值