初めてのXGBoost

概要

xgboostの使える環境を構築し、必要最低限の流れを確認する。pythonの環境が整っていない場合はこちら

環境

macOS Mojave 10.14.5
pyenv 1.2.13
anaconda3-5.3.0
conda 4.5.11
python 3.7.4

XGBoostのインストール

公式サイトではpipを使用してのインストールですが、誰かがcondaでもインストールできるようにしてくれたらしいのでそちらを利用します。pipでも問題ないかと思いますが、condapipはあまり同時に使いたくないので、anacondaを通してxgboostをインストールする。anacondaが初めての方はこちら

$ conda create -n xgb py-xgboost pandas numpy matplotlib jupyter
$ conda activate

sklearn API

xgboostはsklearn風に使えるAPIが存在する。最新の機能等の実装が遅れている時もありますが、sklearnに慣れてしまっているのでこちらを利用する。モデルの作成、訓練、予測までの必要最低限の流れを紹介します。

import xgboost.XGBRegressor as XGBR
import numpy as np

#create data
np.random.seed(seed=0)
x_train = np.random.rand(100, 10) #10個の特徴量を持つ100個のデータ
y_train = np.random.rand(100, 1) #ラベルデータ100個
x_test = np.random.rand(20, 10) #10個の特徴量を持つ20個のデータ
y_test = np.random.rand(20, 1) #ラベルデータ20個

#create model
model = XGBR()

#training
model.fit(x_train, y_train)

#prediction
y_pred = model.predict(x_test)

#plot
import matplotlib.pyplot as plt

plt.figure(figsize=(6,6))
plt.subplot(111)
plt.scatter(y_test, y_pred)
plt.xlabel('y_test')
plt.ylabel('y_pred')
plt.show()

最後に

今回はとりあえずxgboostを動かしてみました。では、実際にどんなパラメータを調整する必要があるのか。パラメータの詳細はこちら