XGBoost アルゴリズムの仕組み

XGBoost は、分類と回帰のための教師付き機械学習手法で、[AutoML を使用したトレーニング (Train Using AutoML)] ツールで使用されます。 XGBoost は「Extreme Gradient Boosting」の略称です。 この手法は、決定木に基づき、ランダム フォレストや勾配ブーストなどの他の手法を改善したものです。 さまざまな最適化の方法を使用することにより、大規模で複雑なデータセットの処理で性能を発揮します。

XGBoost を使用してトレーニング データセットを適合させるため、初期予測が行われます。 残差は、予測値と観測値に基づいて計算されます。 残差の類似度を使用して、残差により決定木が作成されます。 リーフのデータの類似性が計算され、同様に後続の分割での類似性のゲインも計算されます。 ゲインを比較して、ノードのフィーチャと閾値が決定されます。 各リーフの出力値も残差を使用して計算されます。 分類の場合、値は通常、オッズと確率の対数を使用して計算されます。 ツリーの出力は、データセットの新しい残差になり、別のツリーを構築するために使用されます。 このプロセスが、残差が減少しなくなるまで、または指定された回数だけ繰り返されます。 各後続ツリーは、前のツリーから学習しますが、ランダムフォレストの動作とは異なり、等しいウェイトは割り当てられていません。

このモデルを使用して予測するには、各ツリーからの出力に学習率を掛けたものを初期予測に追加し、最終的な値または分類に達します。

XGBoost は、次のパラメーターとメソッドを使用してアルゴリズムを最適化し、最適な結果とパフォーマンスを提供します。

  • 正則化 - 個々のデータに対する感度を下げ、過学習を回避するために類似度を計算する際、正則化パラメーター (ラムダ) が使用されます。
  • 枝刈り - ゲインを比較するために、ツリーの複雑度パラメーター (ガンマ) が選択されます。 ゲインがガンマ値よりも小さい枝は除去されます。 これにより、不要な枝をトリミングして木の深度を減らし、過学習を防ぎます。
  • 加重分位スケッチ - データを分割するための閾値として可能なすべての値をテストする代わりに、重み付けされた分位数のみが使用されます。 分位数の選択は、スケッチ アルゴリズムを使用して行われます。このアルゴリズムは、ネットワーク上の複数のシステムでの分散を推定します。
  • 並列学習 - この方法は、データをブロックに分割し、これを並行して使用し、ツリーを作成したり、他の計算を行ったりできます。
  • スパース性対応分割の特定 - XGBoost は、両方向で分割を試し、ゲインを計算してデフォルトの方向を見つけることにより、データのスパース性を処理します。
  • キャッシュ対応アクセス - この方法は、システムのキャッシュ メモリを使用して、類似度と出力値を計算します。 キャッシュ メモリは、メイン メモリと比較するとより高速なアクセス メモリであり、モデルの全体的なパフォーマンスを向上させます。
  • Out-of-Core 計算用ブロック - この方法は、キャッシュまたはメイン メモリに収まらず、ハードディスク ドライブに保持する必要がある大きなデータセットを処理します。 データセットはブロックに分割され、圧縮されます。 メイン メモリ内にデータを解凍すると、ハードディスク ドライブからの読み取りよりも高速になります。 データを複数のハードディスク ドライブに保存する必要がある場合は、シャーディングと呼ばれる別の手法が使用されます。

参考資料

Chen Tianqi and Guestrin Carlos. 2016. XGBoost: A scalable tree boosting system. In Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 785–794.

XGBoost Documentation


このトピックの内容
  1. 参考資料