IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
ワシントン大学のTianqi Chen氏によって開発されたXGBoostは、同じ一般的なフレームワークによる勾配ブースティングの高度な実装です。残余を足し合わせることで、弱い学習器を強い学習器に結合します。このライブラリーは、C++、Python、R、Java、Scala、Juliaで使用できます。1
決定木は 、 機械学習 における 分類 または 回帰 タスクに使用されます。階層的なツリー構造を使用し、内部ノードは特徴を表し、枝は決定ルールを表し、各葉ノードはデータ・セットの結果を表します。
決定木は、オーバーフィッティング(過学習)する傾向があるため、ブースティングなどのアンサンブル手法は、多くの場合、より堅牢なモデルを構築するために使用されます。ブースティングは、複数の個別の弱い決定木(ランダムな偶然よりもわずかに優れたパフォーマンスを発揮するモデル)を組み合わせて、強学習器(strong learnear)を形成します。それぞれの弱学習器(weak learner)は、前のモデルによって生じたエラーを修正するように順番にトレーニングされます。何百回も繰り返すことで、弱学習器は強学習器に変換されます。
ランダム・フォレストとブースティング・アルゴリズムはどちらも、個々の学習ツリーを使用して予測パフォーマンスを向上させる、一般的なアンサンブル学習の手法です。ランダム・フォレストは、バギング(Bootstrap Aggregation)の概念に基づいており、各ツリーを個別にトレーニングして予測を組み合わせます。一方、ブースティング・アルゴリズムは、弱い学習器を順番にトレーニングして、前のモデルの間違いを修正するように順番にトレーニングします。
勾配ブースティング決定木は、勾配降下法を使用するブースティング・アルゴリズムの一種です。他のブースティング手法と同様に、予測を行うための弱い学習器からスタートします。勾配ブースティングの最初の決定木は、ベース学習器と呼ばれます。次に、ベース学習器の間違いに基づいて追加的に新しいツリーが作成されます。続いて、アルゴリズムは各ツリーの予測残差を計算し、モデルの予測が現実からどの程度かけ離れていたかを判断します。残余とは、モデルの予測値と実際の値の差です。次に、残差が集計されて、損失関数に基づいてモデルにスコアが付けられます。
機械学習では、損失関数を使用してモデルのパフォーマンスを測定します。勾配ブースティング決定木の勾配は、勾配降下法を指しています。勾配降下法は、新しいモデルをトレーニングする際の損失を最小限に抑える(つまり、モデルのパフォーマンスを向上させる)ために使用されます。勾配降下法は、機械学習問題の損失関数を最小化するために使用される一般的な最適化アルゴリズムです。損失関数の例としては、回帰問題の平均二乗誤差や平均絶対誤差、分類問題の交差エントロピー誤差、特定のユースケースやデータ・セットに合わせて開発されたカスタムの損失関数などがあります。
scikit-learn2の勾配ブースティング・パッケージと比較した、PythonのXGBoostの一部の機能について説明します。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
このセクションでは、XGBoostパッケージの使用方法、XGBoostツリー・ブースターのハイパーパラメーターの選択方法、XGBoostと他のブースティング方法との比較、いくつかのユースケースについて説明します。
すでにデータに対して探索的データ分析を実行している場合は、トレーニング・データ・セットとテスト・データ・セットの間でデータを分割する作業を続行します。次に、データをXGBoostが想定するDMatrix形式に変換します。3 DMatrixは、メモリー効率とトレーニング速度に最適化されたXGBoostの内部データ構造です。4
次に、XGBoostモデルをインスタンス化し、ユースケースに応じて、「object」ハイパーパラメーターでどの目的関数を使うかを選択します。たとえば、マルチ・クラス分類タスクがある場合は、目標を「multi:softmax」に設定する必要があります。5 あるいは、バイナリ分類の問題がある場合は、ロジスティック回帰目的「binary:logistic」を使用できます。これで、トレーニング・セットを使用してモデルをトレーニングし、テスト・セットとして取っておいたデータ・セットの分類を予測できます。予測値をテスト・セットの実際の値と比較することにより、モデルのパフォーマンスを評価します。精度、正確さ、再現率、f-1スコアなどの指標を使用してモデルを評価できます。また、混同行列を使用して、真陽性、真陰性、偽陽性、偽陰性を視覚化することもできます。
次に、ハイパーパラメーターの組み合わせを反復して、モデルのパフォーマンスを向上させることをお勧めします。ハイパーパラメーター・チューニングとは、機械学習アルゴリズムのハイパーパラメーターを最適化するプロセスのことです。最適なハイパーパラメーターは、グリッド検索と相互検証の手法を使用して見つけることができます。この手法では、可能なハイパーパラメーター調整のディクショナリを調べます。
XGBoostで勾配ブースティングされた決定木のチューニングに利用できるいくつかのハイパーパラメータについて説明します。
XGBoostは、多く利用されているオープンソースのブースティング・アルゴリズムのうちの1つです。このセクションでは、XGBoostを他の3つのブースティング・フレームワークと比較します。
AdaBoostは、1995年にYoav FreundとRobert Schapireによって発明された初期のブースティング・アルゴリズムです。7 AdaBoostでは、予測が難しいデータポイントに大きな影響を与える重み付けシステムを通じて、誤った予測にさらに重点が置かれています。まず、データ・セット内の各データ・ポイントに特定の重みが割り当てられます。弱い学習器が例を正しく予測すると、例の重みが減ります。しかし、学習器が例を間違えると、そのデータ・ポイントの重みが大きくなります。新しいツリーが作成されると、その重みは前の学習器の誤分類に基づいて決まります。学習器の数が増えるにつれて、予測しやすいサンプルは将来の学習器にはあまり使用されなくなり、予測が難しいデータ・ポイントはより目立つように重み付けされます。勾配ブースティングとXGBoostは、その精度と速度により、AdaBoostのより強力な代替手段となる傾向があります。
CatBoostは、もう1つの勾配ブースティング・フレームワークです。2017年にYandexによって開発され、前処理を必要とせずにカテゴリー別の特徴を処理することに特化しており、一般的に、広範なハイパーパラメーター調整を実行する必要なく、すぐに使用できる優れたパフォーマンスを発揮します。8 XGBoostと同様に、CatBoostには欠損データを処理するためのサポートが組み込まれています。CatBoost は、カテゴリーの特徴が多いデータ・セットに特に役立ちます。Yandexによると、このフレームワークは検索、レコメンデーション・システム、パーソナル・アシスタント、自動運転車、天気予報、その他のタスクに使用されています。
LightGBM(Light Gradient Boosting Machine)は、ここで確認する最後の勾配ブースティング・アルゴリズムです。LightGBMはMicrosoftによって開発され、2016年に最初にリリースされました。9 ほとんどの決定木の学習アルゴリズムが深さ方向にツリーを成長させるのに対し、LightGBMは葉ごとにツリーの成長戦略を使用します。10 XGBoostと同様に、LightGBMはモデル・トレーニングの速度と精度が高く、大規模なデータ・セットで優れたパフォーマンスを発揮します。
XGBoostと勾配ブースティング決定木は、次のようなさまざまなデータサイエンス用途に使用されています。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。