XGBoost之二分类算法

1 XGBoost二分类算法简介

XGBoost(Extreme Gradient Boosting)算法是陈天奇博士于2016年发表的论文《 XGBoost:A Scalable Tree Boosting System》中正式提出的。XGBoost在GBDT算法的基础上作出了一系列的优化,如在损失函数的计算中增加了二阶导数,增加了正则项,一定程度上的并行计算等。

XGBoost算法支持回归算法与分类算法。其中的回归算法在《XGBoost回归算法原理与应用》中有着比较详细的讲解。本文讲解分类算法中的二分类算法。XGBoost二分类算法与回归算法的主要区别在于损失函数的构造。

为保证文章结构的完整性,本文沿袭了前一篇文章的相关内容。

2 关于目标函数

2.1 损失函数

f_{t}(x)表示第t轮预测值,w_{t}(x)表示第t棵树在样本x处的取值(权重),L(y,f_{t}(x))表示第t轮的损失函数,损失函数L(y,f_{t}(x))二阶可导。

L(y,f_{t}(x))二阶泰勒展开:

L(y,f_{t}(x))=L(y,f_{t-1}(x)+w_{t}(x))=L(y,f_{t-1}(x))+\frac{\partial L(y,f(x))}{\partial f(x)}|_{f(x)=f_{t-1}(x)}w_{t}(x)+\frac{\partial^2 L(y,f(x))}{2\partial f^2(x)}|_{f(x)=f_{t-1}(x)}w_{t}^{2}(x)+constant

g_{t}=\frac{\partial L(y,f(x))}{\partial f(x)}|_{f(x)=f_{t-1}(x)}h_{t}=\frac{\partial^2 L(y,f(x))}{\partial f^2(x)}|_{f(x)=f_{t-1}(x)}

在XGBoost二分类算法中,一般可选择指数损失函数和经改造的对数损失函数。这里使用经改造的对数损失函数。

L(y,f(x))=-y\ln p-(1-y)\ln(1-p),其中p=\frac{1}{1+e^{-f(x)}},可见0<p<1,对比逻辑回归函数可以发现,p为正样本事件发生的概率。

对损失函数进行变化:

L(y,f(x))=-y\ln p-(1-y)\ln(1-p)=-y\ln \frac{1}{1+e^{-f(x)}}-(1-y)\ln(1-\frac{1}{ 1+e^{-f(x)}})

=-yf(x)+ln(1+e^{f(x)})

具体推导过程见前一篇文章。

损失函数关于f(x)的一阶、二阶导数分别为:

{L}'=-y+\frac{1}{1+e^{-f(x)}}=-y+p

{L}''=-(1+e^{-f(x)})^{-2}*e^{-f(x)}*(-1)=\frac{e^{-f(x)}}{(1+e^{-f(x)})^{2}}=(\frac{1}{p}-1)p^{2}=p(1-p),由于0<p<1,故

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值