XGBoostの紹介

XGBoostは複数のモデルに学習させ、それぞれの予測結果を一つの予測にまとめるアンサンブル学習の代表的なアルゴリズムの一つです。XGBoostでは決定木を一つづつ順に作っていき、それまでの決定木の多数決で間違ったデータに重みをかけて、次の決定木ではその間違いをカバーするように学習を進めていくアルゴリズムです。

今回は、XGBoostをExploratoryで実行する方法についての紹介となりますが、これによって何ができるのか簡単な例を使ってみていきましょう。

例えば、顧客ごとの売上データがあったとします。今回の予測対象は売上で、属性として職業や性別、年齢の列があります。

XGBoostなどの予測モデルを作る際に、予測対象の列のことを目的変数、目的変数を予測する上で使用する列のことを予測変数や説明変数と言います。

手元にあるこのデータを使って売上を予測するXGBoostのモデルを作成します。

作成されたXGBoostのモデルを使って、未知のデータに対して売上の予測をしていくことができます。

そして、作成されたモデルからデータの中にあるパターンに関して多くのことを学ぶことができ、下記の質問にも答えていくことができます。

  • 目的変数と関係の強い変数はどれか。
  • 変数の値が変わると、目的変数の値はどのように変わるか。
  • このモデルでは目的変数の動きのどれくらいを説明できるのか。

それでは、ExploratoryでXGBoostをどのように使っていけるのか見ていきましょう。

必要なデータの形式

XGBoostを実行する際には、1行が1観測対象となっているデータを使う必要があります。

目的変数には数値型、ロジカル型のどちらも扱うことができます。予測変数におけるデータタイプには特に縛りはありません。しかし、予測変数同士の相関が強い場合は影響度を取り合ってしまい、変数重要度の順番が低く見積もられることがあります。

サンプルデータ

今回はサンプルデータとして、従業員データを使用していきます。

このデータは1行が1従業員のデータで、列には年齢や給料、職種など従業員の属性を表す列があります。

XGBoostを実行する

今回は、従業員の「給料」を予測するXGBoostのモデルを作成します。

アナリティクスビューを開き、タイプに「XGBoost」を選択します。

目的変数に「給料」を選択します。

予測変数の列をクリックして、給料を予測する上で使用する列を選択します。シフトキーを押すことで、複数の列を一気に選択できます。

目的変数と予測変数を割り当てることができたら、「実行」ボタンをクリックします。

給料(数値)を予測するXGBoostのモデルが作成されました。

結果の解釈

変数重要度

変数重要度タブでは、どの変数が目的変数とより相関が強いのか、予測する時により重要なのかを調べることができます。

職位が給料を予測する上で圧倒的に重要で、その次に職種や勤続年数が重要だとわかります。

変数重要度の詳細については、機械学習モデル - 変数重要度の仕組みと解釈のセミナーをご覧ください。

予測

予測タブでは、それぞれの変数の値が変わると、目的変数の値はどのように変わるのかがわかります。

グレーの線は実測値を表しています。

青い線は予測値を表します。

職位が上がると給料が高くなる関係があることがわかります。

職種で見ると、他の職種に比べてリサーチディレクターとマネージャーの給料が高いようです。

学習

学習タブでは、学習回数(作成された決定木の数)によって、予測精度がどれだけ向上したかが確認できます。

デフォルトの学習回数は10回になっていますが、プロパティから変更いただけます。また、それ以外にもEarly Stoppingの学習回数(学習した結果、予測精度が向上しない時に打ち切る回数)や、学習の際に使用する指標も変更できます。

サマリ

サマリタブでは、この予測モデルの評価を確認できます。

R2乗はデータの平均からのばらつきをモデルが説明できている割合の指標で、0から1の間の値を取ります。1に近ければ近いほど、モデルがデータのばらつきをよく説明できていることを示します。

今回は、R2乗が0.968とこのモデルを使うと給料のばらつきの96.8%説明できていると言えます。

データ

データタブでは、モデルに使用したデータと予測値をテーブル形式で表示されます。

目的変数である給料と、このモデルで算出された予測値(Predicted Value)を確認できます。

参考資料

XGBoostに関する参考資料は下記をご覧ください。

  • 決定木の紹介 - リンク
  • アナリティクスの文法を使った予測モデルの解釈 - リンク
  • 機械学習モデルを使った予測と検証 - リンク
  • 機械学習モデル - 変数重要度の仕組みと解釈 - リンク

XGBoostに関するよくある質問

Q: 予測タブで表示されている実測値はどのように求められているのですか?

予測タブの実測値はそれぞれの予測変数のデータタイプによって表示が異なります。 詳しくはこちらのノートをご覧ください。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio