XGBoost代码走读分析笔记
来源:互联网 发布:淘宝物流评分怎么提升 编辑:程序博客网 时间:2024/06/06 02:39
http://blog.csdn.net/a819825294/article/details/51206410#t6
读了雪伦大佬的走读分析,非常清晰,我写一下自己的理解,狗尾续貂了
XGBoost运行流程:
简略来说,XGBoost只做两件事:
1.main函数调用InitModel初始化模型,初始化的时候选择Loss,及分类器
2.迭代用Boost方法更新模型(UpdateOneIter),每次更新的时候做几个操作:PredictRaw,GetGradient,DoBoost。
分别是计算残差,计算梯度,进行Boost
1.其中,DoBoost会根据残差新建基分类器,并调用tree_updater的Update方法进行树的建立
2.而tree_updater在Create方法中会建立一堆的服务,包括ColMaker,SketchMaker,TreeRefresher,TreePruner(Prune,删除),HistMaker,TreeSyncher
这些服务会进行各种各样的操作,“这样设计,关于建树的主要操作都可以通过Updater链的方式串接起来,比较一致干净,算是Decorator设计模式[4]的一种应用。”
其中需要注意学习一下建树的过程:
1.ParallelFindSplit
为需要分割的叶节点,调用OpenMP分布地计算每个特征的最优split point,然后汇总出这个特征的最优split point,并枚举选出此特征中最优的split point【是个MapReduce过程】
2.SyncBestSolution
每个OpenMP线程会给出一个特征的最优split point,然后进行全局sync,获取最优的特征的最优split point
3.ResetPosition
根据上一步选出来的分割更新树和统计量(InitNewNode)
更具体的,雪伦大佬的笔记已经heavily documented,推荐直接看
http://blog.csdn.net/a819825294/article/details/51206410#t6
阅读全文
0 0
- XGBoost代码走读分析笔记
- glibc代码走读笔记(一)
- Titanic Xgboost版代码分析
- 代码走读
- WebRTC代码走读(十):rtp_rtcp模块分析
- WebRTC代码走读(十一):video_coding模块分析
- xgboost笔记
- XGBoost笔记
- XGBoost笔记
- 代码走读常见问题解答
- 代码走读的意义
- python 文件代码走读。
- 走读printk代码
- 代码走读--反思
- 代码走读的重要性
- 走读代码 思考
- RDK_OSD代码走读
- 谈谈代码走读
- 三范式理解
- python安全编码指南
- hdu 1576 A/B(扩展欧几里得)
- 接雨水-LintCode
- Dialog使用细节
- XGBoost代码走读分析笔记
- git 恢复到更改前的状态(还原代码)
- 读书笔记 How Google Tests Software --Foreword by Patrick Copeland
- ELK搭建互联网亿级日志实时分析平台
- PHP出现SSL certificate: unable to get local issuer certificate的解决办法
- c# panel 自动调整大小
- 支付宝接口开发-手机网站支付-沙箱测试
- 2-KYLIN1.5安装测试
- 数据库事务的隔离级别