摘要
本文在写完GBDT的三篇文章后本来就想写的,但一直没有时间,终于刚好碰上需要,有空来写这篇关于xgboost原理以及一些实践的东西(这里实践不是指给出代码然后跑结果,而是我们来手动算一算整个xgboost流程)
由于网上已经许多优秀的文章对xgboost原理进行了详细的介绍,特别是xgboost作者陈天奇的论文以及slide已经非常完整阐述了整个xgboost的来龙去脉,现有的文章基本也是参考了这两个资料。
但是却少涉及把原理对应到实际实现过程的文章,许多人看完原理之后可能对整个过程还是抱有好奇心,所以本文从另一个角度,原理到实际运行的角度来分析xgboost,相当于结合原理,仔细看看xgboost每一步到底计算了什么。
原理
当然,我们还是需要简要的回顾一下xgboost的整个推导过程,以及做一些铺垫,方便后面叙述。
我们知道,任何机器学习的问题都可以从目标函数(objective function)出发,目标函数的主要由两部分组成 损失函数+正则项。
(这里的m貌似是d)
手动计算还原xgboost的过程
上面,我只是简单的阐述整个流程,有一些细节的地方可能都说的不太清楚,我以一个简单的UCI数据集,一步一步的和大家演算整个xgboost的过程。
数据集的样本条数只有15条,2个特征。具体如下:
a flying bird 发布了122 篇原创文章 · 获赞 415 · 访问量 55万+ 关注