前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mac OS 安装XGBoost

mac OS 安装XGBoost

作者头像
尾尾部落
发布2018-09-04 13:42:44
1.9K0
发布2018-09-04 13:42:44
举报
文章被收录于专栏:尾尾部落尾尾部落

XGBoost是一种基于决策树(CART)的分布式的高效的梯度提升算法,它可被应用到分类、回归、排序等任务中,与一般的GBDT算法相比,XGBoost主要有以下几个优点:

  • 对叶节点的权重进行了惩罚,相当于添加了正则项,防止过拟合
  • XGBoost的目标函数优化利用了损失函数关于待求函数的二阶导数,而GBDT只利用了一阶信息
  • XGBoost支持列采样,类似于随机森林,构建每棵树时对属性进行采样,训练速度快,效果好
  • 类似于学习率,学习到一棵树后,对其权重进行缩减,从而降低该棵树的作用,提升可学习空间
  • 构建树的算法包括精确的算法和近似的算法,近似的算法对每维特征加权分位进行分桶,具体的算法利用到了损失函数关于待求树的二阶导数。
  • 添加了对于稀疏数据的支持,当数据的某个特征缺失时,将该数据划分到默认的子节点,本文提出了一个算法来求解这个默认方向。
  • 可并行的近似直方图算法,分裂节点时,数据在block中按列存放,而且已经经过了预排序,因此可以并行计算,即同时对各个属性遍历最优分裂点

那么如何在mac下安装xgboost呢

系统版本

macOS Sierra 版本 10.12.3

有两种方法:

1. pip安装

  • 第一步:安装HomeBrew

HomeBrew是mac系统的包管理软件,类似于ubuntu的apt-get或者centos的yum,安装方法如下,在终端中输入:

代码语言:javascript
复制
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 第二步:安装livm
代码语言:javascript
复制
brew install llvm

llvm是Mac下的一个编译器,可以用来编译C和C++程序.最新的llvm已经包含了OpenMP. 注意, Mac下的XCode带有clang编译器, 但是是不支持OpenMP的,所以不能用来编译XGBoost.

  • 第三步:安装clang-omp
代码语言:javascript
复制
brew install clang-omp

有人提到clang-omp已经从HomeBrew移除了, 如果找不到clang-omp可以尝试brew install --with-clang llvm

  • 第四步, 用pip安装XGBoost
代码语言:javascript
复制
pip install xgboost

大功告成!

2. 从Github库下载最新版XGBoost安装

  • 第一步:克隆最新的XGBoost到本地
代码语言:javascript
复制
git clone --recursive https://github.com/dmlc/xgboost
  • 第二步:安装gcc
代码语言:javascript
复制
brew install gcc5 --without-multilib
  • 第三步:修改XGBoost的config文件
代码语言:javascript
复制
cd xgboost
cp make/config.mk ./config.mk

很多攻略都是直接将以下这两行

“` # export CC = gcc # export CXX = g++

代码语言:javascript
复制
改为:         

export CC = gcc-5 export CXX = g++-5

代码语言:javascript
复制
但是我直接这样做却一直报错,无法编译通过。搞了半天才发现系统找不到gcc,原来是macOS已经不自带gcc环境了,通过Homebrew安装系统也识别不到。
正常情况下是可以通过port来查看系统里安装的gcc的:

安装gcc_select /opt/local/bin/port install gcc_select 查看gcc列表 port select –list gcc 还可以选择gcc的版本 sudo port select –set gcc mp-gcc5

代码语言:javascript
复制
但是很不幸,我执行`port select --list gcc`得到的结果是
> Available versions for gcc:
    none (active)

但是明明Homebrew安装成功了啊,于是到Homebrew的安装目录下瞧一瞧:`cd /usr/local/bin`,发现里面静静躺着`gcc5`,`gcc7`,系统就是无法识别这里的gcc。。。搜了半天没找到解决方案,最后,机智的我直接把`config.mk`修改成:

export CC = /usr/local/bin/gcc-5 export CXX = /usr/local/bin/g++-5 export MPICXX = /usr/local/bin/mpicxx

代码语言:javascript
复制
就是带上具体的路径,然后保存

- 第四步:开始编译

make clean_all && make -j4

代码语言:javascript
复制
- 第五步:安装python包

cd python-package python setup.py install

代码语言:javascript
复制
至些XGBoost终于安装成功!
在python环境中测试一下:

import xgboost xgboost.version “`

输出’0.6′

参考

Mac OSX 下安装XGBoost

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统版本
  • 1. pip安装
  • 2. 从Github库下载最新版XGBoost安装
  • 参考
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档