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授權發布。