XGBoost源码阅读笔记(1)--代码逻辑结构

本文介绍了XGBoost的基本原理和优势,包括正则化目标函数、Shrinkage、列采样和并行计算。详细阐述了源码下载、编译过程,并解析了XGBoost的代码逻辑结构,主要关注训练过程、数据结构、Boosting训练的实现,以及不同Updater类在树构建中的角色。
摘要由CSDN通过智能技术生成

一. XGBoost简介

 XGBoost(eXtreme Gradient Boosting)是基于GB(Gradient Boosting)模型框架实现的一个高效,便捷,可扩展的一个机器学习库。该库先由陈天奇在2014年完成v0.1版本之后开源到github[1]上,当前最新版本是v0.6。目前在各类相关竞赛中都可以看到其出现的身影,如kaggle[2],在2015年29个竞赛中,top3队伍发表的解决方案中有17个方案使用了XGBoost,而只有11个解决方案使用了深度学习;同时在2015KDDCup中top10队伍都使用了XGBoost[3]。由于其与GBDT(Gradient Boosting decision Tree)存在一定相似之处,网上也经常会有人将GBDT和XGBoost做个对比[4]。最近正好读了陈天奇的论文《XGBoost: A Scalable Tree Boosting System》[3], 从论文中可以看出XGBoost新颖之处在于:

1. 使用了正则化的目标函数,其加入的惩罚项会控制模型复杂度(叶子个数)和叶子结点的得分权重


1-1 目标函数

2. 使用Shrinkage,通过一个因子η缩减每次最新生成树的权重,其目的是为了降低已生成的树对后续树的影响。

3. 支持列(特征)采样,该方式曾被用于随机森林。可以预防过拟合且加快模型训练速度。

4. 并行计算。Boost方式树是串行生成的,所以其在寻找树分裂点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值