GBDT(勾配ブースティング木)とは?図解で分かりやすく説明

スポンサーリンク
GBDT(勾配ブースティング木)とは?基礎知識
この記事を読んで分かること
  • GBDT(勾配ブースティング木)とは何か
  • GBDTの特徴
  • GBDTのライブラリ

 

GBDT(勾配ブースティング木)とは

GBDT(勾配ブースティング木)とは、

「勾配降下法(Gradient)」と「ブースティング(Boosting)」、「決定木(Decision Tree)」の3つの手法が組み合わされた機械学習の手法

です。

 

GBDTの正式名称は「Gradient Boosting Decision Tree」で、使っている手法を羅列した名前となっています。

GBDTの概略図

 

GBDTでは、機械学習のアルゴリズムに決定木を使用しています。

そして、決定木だけでは精度があまり出ないため、アンサンブル学習のブースティングを使用しています。

ブースティングの際に、前の予測値の誤差を最小化するために勾配降下法を使います。

 

続いて、GBDTで使われている3つの手法について簡単に解説していきます。

 

決定木(Decision Tree)

決定木とは、

条件分岐によって問題を解く機械学習の手法

です。

 

例えば運動会の中止の判断を決定木で表すことができます。

「雨が降っていたら中止」、「風が強かったら中止」といった条件を使って結果を判断しています。

 

決定木の例

 

直感的でわかりやすい手法なので、日常生活でも無意識に使っているかもしれませんね。

 

決定木について詳しく知りたい方はこちらの記事を参考にしてください。

決定木とは?不純度の計算も分かりやすく解説
この記事を読んで分かること 決定木とは何か 決定木のアルゴリズム ジニ不純度の計算方法 決定木とは 決定木とは、 条件分岐によって問題を解く機械学習の手法 です。 ...

 

ブースティング(Boosting)

ブースティングとは、

モデルを直列に組み合わせて、間違えた部分を集中的に学習する手法

です。

 

ブースティングとは?

ブースティングでは、前の学習モデルが間違えた部分を補うようにモデルを作っていきます。

まず1つ目のモデルは学習データを通常通り学習していきます。

次に、2つ目のモデルは1つ目のモデルが間違ったデータを重要視して学習していきます。

3つ目のモデルは今までのモデル(1つ目と2つ目)が間違ったデータを重要視して学習するといったように、連続的に学習していくことで、より精度を向上させていくことができる手法です。

 

アンサンブル学習について詳しく知りたい方はこちらの記事を参考にしてください。

アンサンブル学習とは?バギング、ブースティング、ブースティングを図で解説
この記事を読んで分かること アンサンブル学習とは何か バギングとは何か ブースティングとは何か スタッキングとは何か アンサンブル学習とは アンサンブル学習とは、 複数のモデルを組み...

 

勾配降下法(Gradient)

勾配降下法とは、

関数の傾きを元に最小値を探す手法

です。

 

下の図のように、今いる点のグラフの傾きを見て、下っている方向を探索する手法になります。

勾配降下法とは

 

グラフを見ればどこが最小値かなんてひと目で分かると思ってしまいますが、データの量が多いと全体を把握できません。

一部のデータだけで最小値を見つけるように考えられた方法となります。

 

勾配降下法について詳しく知りたい方はこちらの記事を参考にしてください。

勾配降下法とは?分かりやすく図解で解説
勾配降下法とは? 勾配降下法とは、 関数の傾きを元に最小値を探す手法 です。 下の図のように、今いる点のグラフの傾きを見て、下っている方向を探索する手法になります。 グラフを見ればどこが最小値かなんてひと目で分...

 

GBDT(勾配ブースティング木)の特徴

GBDTは精度が高く、使いやすいという理由で、データ分析コンペでもよく使われる手法です。

それぞれ以下のようなメリット・デメリットがあります。

GBDT(勾配ブースティング木)のメリット

メリット
  • 精度が高い 
  • 使いやすい

精度が高い

精度が高くなりやすい理由の一つは、ハイパーパラメータのチューニング等の職人芸がなくてもある程度の精度を出せることです。

また、分岐を繰り返すことで、変数間の相互作用がうまく処理されることも要因の一つとなっています。

  • パラメータチューニングをしなくても精度が出やすい
  • 不要な特徴量を追加しても精度が落ちにくい
  • 変数間の相互作用が反映される

 

使いやすい

GBDTの使いやすさは、データの前処理の手間が少ないことが挙げられます。

決定木では特徴量の大小関係で分岐を作るため、データの前処理(標準化など)をせずに利用することができます。

また、数値の比較を行うのでカテゴリ変数をそのまま使えるので要素数も増えず便利です。

  • 特徴量をスケーリングする必要がない
  • カテゴリ変数をone-hot encodingしなくても良い
  • 欠損値を扱うことができる

 

GBDT(勾配ブースティング木)のデメリット

デメリット
  • 特徴量は数値にする必要がある
  • 過学習が起こりやすい
  • 学習に時間がかかる

メリットでもありましたが、決定木では数値の比較を行うため文字列のデータは数値に変換しないと正しく学習することができません。

また、ブースティングで同じデータを何度も利用しているので、過学習が起こりやすくなります

ブースティングでは複数のモデルを直列にして学習を進めるため、時間もかかってしまいます

 

GBDT(勾配ブースティング木)のライブラリ

GBDTの代表的なライブラリは以下があります。

GBDTの主なライブラリ
  • xgboost
  • lightgbm
  • catboost

これらのライブラリは同じGBDTの手法を使っているのですが、学習アルゴリズムなどが若干異なります。

xgboost

xgboostは2014年に公開され、精度と使いやすさから分析コンペでよく使われてきました。

このライブラリは長く使われており、資料も豊富にそろっています。

 

xgboostの特徴としては、決定木の学習を深さ単位で行っています。

xgboost

 

lightgbm

lightgbmは2016年に公開され、高速であることから近年よく使われるようになってきています。

 

lightgbmの特徴としては、決定木の学習を分岐させるべき葉に絞って実施しています。

lightgbm

 

catboost

catboostは2017年に公開されたカテゴリ変数の扱いなどに特徴的な工夫をしたGBDTのライブラリです。

 

catboostの特徴は、カテゴリ変数として指定した特徴量を自動的にtarget encordingを行い、数値に変換します。

また、決定木の分岐の条件式を最適化して、過学習を防いでいます。

 

まとめ

 

GBDT(勾配ブースティング木)とは、「勾配降下法(Gradient)」と「ブースティング(Boosting)」、「決定木(Decision Tree)」の3つの手法が組み合わされた機械学習の手法です。

メリットは、精度が高い 、使いやすいということが挙げられます。

GBDTのライブラリには、xgboost、lightgbm、catboostがあります。

データ分析コンペでもよく使われる優秀な手法なので、ぜひ使ってみてください。

 

参考文献

GBDTの仕組みと手順を図と具体例で直感的に理解する
LightgbmやXgboostを利用する際に知っておくべき基本的なアルゴリズム...
機械学習における勾配ブースティングのアルゴリズム「XGBoost」「LightGBM」「CatBoost」の違い
データアナリスト/データサイエンティストのためのカジュアルな勉強会「Data Gateway Talk」。「GBDTアルゴリズム」というテーマで登壇した工学院大学情報学部コンピュータ科学科のYasshieeee氏は、勾配ブースティングの基本、そしてアルゴリズム「XGBoost」「LightBGM」「CatBoost...

コメント

  1. […] 先人の記事だと、これがマジでわかりやすい。 […]

タイトルとURLをコピーしました