EnsekiTT Blog

EnsekiTTが書くブログです。

PyEnv環境にXGBoostをインストールした話

こんにちは、えんせきです。
スキーから帰ってきましたが即日筋肉痛です。若いです。(ドヤァ

つまりなにしたの?

XGBoostをシステムのPythonではなく、pyenvのPythonにインストールした。
なおMacOS High Sierraの場合
f:id:ensekitt:20180213220058j:plain

XGBoostってなに?

Gradient BoostingとRandom Forestsを組み合わせた学習手法で、スケーリングしやすい特徴がある。
元の論文はこちら
[1603.02754] XGBoost: A Scalable Tree Boosting System
先日の記事で言及したワンホット表現みたいなスパースなデータについては予め分岐の方向を決定するアルゴリズムが入っていて、いい感じに扱える。
ensekitt.hatenablog.com

インストールする

  • Gitからクローンしてくる
  • ビルドする
  • pyenv環境に入る
  • pyenv環境にインストールする

PyEnv環境を使っているけど、XGBoost自体はシステムにインストールされるので完全にクリーンってわけじゃないので注意

Gitからクローンしてくる

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

ビルドする

cd xgboost; cp make/minimum.mk ./config.mk; make -j4

pyenv環境に入る

pyenv virtualenv 3.6.0 xgboost
pyenv local xgboost

pyenv環境にインストールする

# xgboostディレクトリ内で実行
pyenv local xgboost # Pyenv環境外部だった場合
cd python-package; python setup.py install

動作確認

$ python
Python 3.6.0 (default, Mar  1 2017, 01:48:37)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import xgboost as xgb
>>> xgb.__version__
'0.7'

バージョン番号が出れば問題なさそう。

$ python
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import xgboost
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named xgboost

システムデフォルト環境だとインストールされていないことがわかる。

クリエイティブ・コモンズ・ライセンス
この 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。