1. 学ぶ
  2. /
  3. コース
  4. /
  5. XGBoost で学ぶ極限の勾配ブースティング

Connected

演習

XGBoost:学習と予測

最初の XGBoost モデルを作成してみましょう!動画で Sergey が示したように、xgboost ライブラリは scikit-learn 互換の API を持つため、すでにおなじみの scikit-learn の .fit() / .predict() パラダイムを使って XGBoost モデルを構築できます。

ここでは解約(churn)データを扱います。このデータセットは、架空のライドシェアアプリにおける、複数の架空の都市でのユーザーの最初の1か月間の行動と、サインアップから5か月後にそのサービスを利用したかどうかを含む架空データです。すでに churn_data という DataFrame に読み込まれているので、シェルで確認してみてください!

目的は、最初の1か月のデータから、5か月後にそのアプリのユーザーが引き続きサービスを利用しているかどうかを予測することです。これは典型的な解約予測の設定です。このために、データを学習用とテスト用に分割し、学習用データで小さな xgboost モデルを学習させ、テスト用データに対する正解率(accuracy)を計算して性能を評価します。

pandas と numpy はそれぞれ pd と np としてインポート済みで、sklearn.model_selection から train_test_split もインポートされています。さらに、特徴量と目的変数の配列はそれぞれ X と y として作成済みです。

指示

100 XP
  • xgboost を xgb としてインポートします。
  • データの 20% をテストに使うように学習用・テスト用セットを作成します。random_state は 123 を使用します。
  • xgb.XGBClassifier() を使って xg_cl という XGBoostClassifier をインスタンス化します。n_estimators を 10、objective を 'binary:logistic' に指定します。これらの意味は後のレッスンで学ぶので、今は気にしなくて大丈夫です。
  • .fit() メソッドを使って、xg_cl を学習用データ(X_train, y_train)に当てはめます。
  • .predict() メソッドでテスト用データ(X_test)のラベルを予測し、正解率を出力するために "Submit Answer" を押します。