Mac OSX 下安裝XGBoost
扯了這麼多回到正題, 安裝XGBoost. XGBoost有很多的wrapper, 比如R和Python. 因為我比較喜歡Python, 所以選擇安裝Python版本的XGBoost. 本以為XGBoost和其他python包一樣, 用pip很容易安裝, 嘗試了一番之後, 發現有很多問題, 這裡記錄下來,方便其他遇到同樣問題的人.
總的來說, XGBoost有兩種安裝方式, 一是直接用pip安裝, 但可能安裝的XGBoost並不是最新的版本, 另外就是從Github上的XGBoost庫直接編譯安裝.
這裡要注意的問題是, XGBoost是支持多線程的, 要用XGBoost參加Kaggle比賽, 這個功能是必不可少的. 注意, XGBoost的多線程需要用到OpenMP, 也就是編譯器需要支持OpenMP, 這也是安裝過程中最麻煩的.
1. 用pip安裝XGBoost
第一步, 安裝HomeBrew.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
HomeBrew是Mac的一個包管理軟體, 類似於Linux裡面的apt-get
第二步, 安裝llvm
brew install llvm
llvm是Mac下的一個編譯器,可以用來編譯C和C++程序.最新的llvm已經包含了OpenMP.
注意, Mac下的XCode帶有clang編譯器, 但是是不支持OpenMP的,所以不能用來編譯XGBoost.
第三步, 安裝clang-omp
brew install clang-omp
有人提到clang-omp已經從HomeBrew移除了, 如果找不到clang-omp可以嘗試
brew install --with-clang llvm
第三步, 安裝XGBoost
pip install xgboost
大功告成!
2. 從Github庫安裝XGBoost
第一步, 克隆最新的XGBoost到本地
git clone --recursive https://github.com/dmlc/xgboost
第二步, 安裝gcc和g++
brew install gcc5 --without-multilib
沒有brew的話, 參見上面先安裝HomeBrew.
Mac上是沒有gcc和g++的, 默認的是clang(安裝XCode之後會有).但是XCode自帶的clang是不支持OpenMP的.所以我們要自己安裝gcc, 這裡我直接選擇安裝gcc5.
第三步, 修改XGBoost的config文件
cd xgboost; cp make/config.mk
打開config.mk, 把文件中的下面兩行注釋去掉, 並且改成如下內容.
export CC = gcc-5export CXX = g++-5
這裡我們指定用剛才安裝的gcc5和g++5來編譯C和C++文件.
確定config文件裡面USE_OPENMP = 1,這裡指定使用OpenMP,也就是使XGBoost支持多線程.
第四步, 編譯XGBoost
./config.mk; make -j4
很不幸的是,我在這一步報錯了, Google了很多也解決不了. 等我解決了這個問題, 我會上來繼續更新. 如果你沒有問題的話, 繼續下一步
第五步, 安裝XGBoost Python package
cd python-package; sudo python setup.py install
大功告成!
推薦閱讀:
※【轉】XGBoost參數調優完全指南(附Python代碼)
※國慶回家,我在手機上訓練XGBoost模型
※再看Boosting和GBM
※快的不要不要的lightGBM
※XGBoost 中文文檔發布,大佬們輕點踩 | ApacheCN