始める無料で始める

正解率を測る

ここでは、XGBoost に組み込まれている交差検証機能を使って、XGBoost の学習 API を実践します。前の動画で Sergey も説明したとおり、XGBoost は DMatrix と呼ばれるデータセット用の最適化された独自データ構造を用いることで、高速かつ高性能な学習を実現しています。

前の演習では、入力データセットはその場で DMatrix に変換されていましたが、xgboostcv オブジェクトを使う場合は、先に明示的にデータを DMatrix に変換する必要があります。そこで今回は、churn_data に対して交差検証を実行する前に、その手順を行います。

この演習はコースの一部です

XGBoost で学ぶ極限の勾配ブースティング

コースを見る

演習の手順

  • xgb.DMatrix() を使って、churn_data から churn_dmatrix という DMatrix を作成します。特徴量は X、ラベルは y に用意されています。
  • xgb.cv() を呼び出して 3 分割の交差検証を実行します。dtrain は作成した churn_dmatrixparams はパラメータ辞書、nfold は交差検証の分割数(3)、num_boost_round は作成したい木の数(5)、metrics は計算したい指標(ここでは "error"。これを正解率に変換します)です。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]

# Create the DMatrix from X and y: churn_dmatrix
churn_dmatrix = ____(data=____, label=____)

# Create the parameter dictionary: params
params = {"objective":"reg:logistic", "max_depth":3}

# Perform cross-validation: cv_results
cv_results = ____(dtrain=____, params=____, 
                  nfold=____, num_boost_round=____, 
                  metrics="____", as_pandas=____, seed=123)

# Print cv_results
print(cv_results)

# Print the accuracy
print(((1-cv_results["test-error-mean"]).iloc[-1]))
コードを編集して実行