XGBoost解析系列-准备


0.前言

  研究生期间有幸和各路大腿参加过些机器学习与数据挖掘的比赛,发现XGBoost单模型分类与回归效果往往比其他模型LR、RF、SVM、GDBT模型要好上不少,现在Microsoft还出LightGBM,首秀就在滴滴大赛中摘得10w美刀桂冠。当然也不好一概而论,比赛场景有限,数据特征处理偏稠密方式,比如图像领域CNN效果模型更好,而计算广告业界更喜欢使用FM/FFM做预估,前者是高维像素级特征,后者是千亿级别的离散特征。
  也正是体验过XGBoost强大之处,满怀着对陈天奇大神的钦佩之情,最近强行腾出时间阅读&Debug完陈天奇实现XGBoost的源码,对于饥渴已久的我来说,读完最大感受是:实现算法需要这么多硬技能!值得花时间去钻研学习,不仅对XGBoost的理解更深刻了,也对日后算法工程实现都有指导意义。接下来该系列会慢慢剖析XGBoost的工程实现,敬请期待!

  对于有心想阅读&debug陈天奇版本XGBoost源码的读者建议看完该博客。

1.代码准备

  笔者以macOS系统(macOS Sierra Version:10.12.1)作为开发环境进行说明,不同系统请读者自行google相关替代过程,首先下载github代码:

git clone --recursive https://github.com/dmlc/xgboost 

  加上参数–recursive,会把xgboost依赖的submodule都clone下来,并放在xgboost主目录下。目前笔者基于git库的log commit:d9d5293cdbbbf67dc8ff9d4a3f171d0990fdd1ee (2017.10.26 17:31:10提交的commit),xgboost依赖以下4个模块:

  • dmlc-core:用于支撑DMLC机器学习项目的公共代码库
  • rabit:封装了高度可依赖的Allreduce与Broadcast接口,用于分布式消息同步
  • nccl:优化后的多GPU通信基础库
  • cub:CUDA编程相关库

2. 编译准备

  1. mac系统原生编译工具基于clang与lldb,其中编译工具clang使用的stl等库实现与GNU是不同的,还是建议安装GNU的编译工具,笔者mac下安装其他软件使用HomeBrew。

  • gcc/g++编译链接,笔者安装gcc 6.0版本、目前有7.0+版本
  • gdb调试工具,笔者安装的8.0.1版本,高版本有新特性支持
brew install gcc6 --without-multilib
brew install gdb

   注意:gdb在mac系统下因为权限问题不能直接调试程序,第一次使用会出现错误Unable to find Mach task port,需要安装信任证书并codesign下:
  1. command+空格输入“钥匙串访问”,点击左上角的“钥匙串访问”菜单选择:证书助理->创建证书->名称填写gdb-cert,证书类型选代码签名,勾选”让我覆盖这些默认值”,然后一直next,直到“指定用于该证书的位置”选择“系统”。
  2. 选择“系统”、“我的证书”,找到刚刚的证书,选择“始终信任”。
  3. 运行以下shell命令,重启系统,证书才能生效

  注意:如果创建系统证书的时候出现未知错误Unknown Error = -2,147,414,007时,解决方法:可以先“指定用于该证书的位置”选择“登录”(可以执行成功),然后导出创建证书到本地,删除刚创建的登录证书,再把导出的文件导入到系统证书中。笔者基于macOS Sierra 10.13版本会出现这种问题,也通过该方法解决。最后,重启按住command + R进入恢复模式,打开终端,输入

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值