Mac系统安装Xgboost

Xgboost是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包,比常见的工具包快10倍以上。在数据科学方面,有大量kaggle选手选用它进行数据挖掘比赛,其中包括两个以上kaggle比赛的夺冠方案。在工业界规模方面,xgboost的分布式版本有广泛的可移植性,支持在YARN, MPI, Sungrid Engine等各个平台上面运行,并且保留了单机并行版本的各种优化,使得它可以很好地解决于工业界规模的问题。

本文是我今天在Mac系统下成功安(cai)装(keng)Xgboost的笔记(Windows系统用户请出门左转),Mac系统10.12版本按照Xgboost官网安装指南,出现了错误。

如果按照传统Python库用pip来安装:sudo pip install xgboost,同样出现了错误,最后亲测下面方法安装成功。

1.安装 Homebrew

Homebrew是Mac系统下非常优秀的包管理工具,相当于Ubuntu的apt-get,安装命令:

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

2.安装最新版本的gcc,即gcc-6

Mac系统默认有Python、Ruby、Shell等环境,但是没有gcc和g++的,安装XCode之后会有clang,而XCode自带的clang是不支持OpenMP的,所以需要重新安装gcc。这个过程比较久,一直在下载,网速快的话差不多半个多小时吧。

1
brew install gcc --without-multilib

3.下载Xgboost的git源码

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

4.修改配置文件,用于编译

1
cp make/config.mk ./config.mk

用vim打开config.mk,修改下面两行:

1
2
export CC = gcc-6
export CXX = g++-6

这样做是为了用之前下载的gcc-6而不是系统已有的gcc来编译。
本来按照官网的 make -j4 来编译,但是未成功,所以改用下面这种方法来编译:

1
./build.sh

5.安装python版Xgboost

安装Xgboost的Python版需要Numpy、Scipy等数值计算库,建议安装Anaconda,所有的科学计算和数据挖掘库都安装好了。

1
2
cd python-package
sudo python setup.py install

6.打开Python验证

1
>>> import xgboost as xgb

OK,没有报错,安装成功。
下面你可以用Xgboost算法来玩数据了,官网有好多Example来学习。

1
2
3
4
5
6
7
8
9
10
import xgboost as xgb
# read in data
dtrain = xgb.DMatrix('demo/data/agaricus.txt.train')
dtest = xgb.DMatrix('demo/data/agaricus.txt.test')
# specify parameters via map
param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic' }
num_round = 2
bst = xgb.train(param, dtrain, num_round)
# make prediction
preds = bst.predict(dtest)

如果你想玩kaggle比赛,Xgboost这把屠龙刀更不可少。

本文地址: http://easonlv.github.io/2017/03/24/Mac系统安装Xgboost/