以下纯属个人的一些思考,如有不对敬请指教。
XGBoost采用的是回归树,所以预测值也必须是回归值,这跟二分类问题有了冲突。
那么XGB如何解决呢?它实际上是将二分类问题当作逻辑斯蒂回归问题来看待的。
定义
这样代入到原XGB的优化式子中,x即为最终的各样本叶子值的和,经过sigmoid函数之后得到概率值。这就解决了回归值与分类之间的问题。
那么回到问题当中,XGB到底在拟合什么东西?
传统的GBDT,我们都知道,在取平方误差后,每一轮拟合对象都是残差。
XGB本质还是想让Loss函数逐级下降,只不过,它直接将每一轮的Loss函数通过泰勒展开之后,直接求出决策树的最优叶子值,也就是说,对于给定的一颗树的结构,它能找到这颗树对应的最优叶子值,后面大家都知道,想直接寻找这棵树是不可能的,所以要采取贪心的算法逐级分裂,事实上这个分裂过程和原本的决策树(ID3,CART)等没有任何区别,区别仅在于分裂原则不同,XGB的分裂原则是自己的一套Gain,而ID3则是信息增益。
所以根据原文,XGB的叶子值是
至此我们可以窥见XGB最朴素的想法是啥,其实就是利用贪心