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,安装命令:
/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。这个过程比较久,一直在下载,网速快的话差不多半个多小时吧。
brew install gcc --without-multilib
3.下载Xgboost的git源码
git clone --recursive https://github.com/dmlc/xgboost
cd xgboost
4.修改配置文件,用于编译
cp make/config.mk ./config.mk
用vim打开config.mk,修改下面两行:
export CC = gcc-6
export CXX = g++-6
这样做是为了用之前下载的gcc-6而不是系统已有的gcc来编译。
本来按照官网的 make -j4 来编译,但是未成功,所以改用下面这种方法来编译:
./build.sh
5.安装python版Xgboost
安装Xgboost的Python版需要Numpy、Scipy等数值计算库,建议安装Anaconda,所有的科学计算和数据挖掘库都安装好了。
cd python-package
sudo python setup.py install
6.打开Python验证
>>> import xgboost as xgb
OK,没有报错,安装成功。
下面你可以用Xgboost算法来玩数据了,官网有好多Example来学习。
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这把屠龙刀更不可少。
本文由LV授权发布。