IT在线课程玩转大数据机器学习与数据挖掘

mac OS 安装XGBoost(完美解决方案)

2017-08-23  本文已影响783人  繁著

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

那么如何在mac下安装xgboost呢

系统版本

macOS Sierra 版本 10.12.3

有两种方法:

1. pip安装

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

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install llvm

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

brew install clang-omp

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

pip install xgboost

大功告成!

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

git clone --recursive https://github.com/dmlc/xgboost
brew install gcc5 --without-multilib
cd xgboost
cp make/config.mk ./config.mk

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

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

改为:

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

但是我直接这样做却一直报错,无法编译通过。搞了半天才发现系统找不到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

但是很不幸,我执行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

就是带上具体的路径,然后保存

make clean_all && make -j4
cd python-package
python setup.py install

至些XGBoost终于安装成功!
在python环境中测试一下:

import xgboost
xgboost.__version__

输出'0.6'

参考

Mac OSX 下安装XGBoost

上一篇 下一篇

猜你喜欢

热点阅读