列表

详情


20. xgb的分类树也是用残差吗,不是的话是什么

回答思路

对于gbdt,训练过程每一轮拟合对象都是残差,但是xgb有所区别。

xgb采用的是回归树,预测值也为回归值,看起来与二分类问题有所冲突,解决方法是将二分类问题作为逻辑回归问题来处理,定义logloss = ylog§+(1-y)log(1-p),p = 1/(1+exp(-x))。这样代入xgb的优化式子中,x即为最终的各样本叶子值的和,经过sigmoid函数之后得到概率值,也就解决了回归值与分类之间的问题。

xgb本质还是希望损失函数逐级下降,只不过其直接将每一轮的 损失函数通过泰勒展开之后,直接求出决策树的最优叶子值,也就是说,对于给定的一棵树,能够找到这棵树对应的最优叶子值,但是直接寻找这棵树是不可能的,要采取贪心的算法逐级分裂,事实上这个分裂过程和原本的决策树(ID3, CART)等几乎没有区别,区别在于分裂原则不同,xgb的分裂原则是自己的一套Gain,推导过程: 

其中加号左侧项经泰勒展开后为

在这里包含一棵树的定义:

而加号右侧前t-1棵树常量化得到:

该部分定义了一棵树的复杂度:

叶子节点分组:

最终目标函数:    

最优点:
    
叶子结点分类依据:

Gain是根据obj的差值计算出来的,因此这里不需要给定拟合值y,只需要一阶、二阶梯度就可以计算Gain。

上一题