LoginSignup
7
7

決定木からlightGBMまで、なぜLightGBMが機械学習で最も広く使われているのかについて説明します

Last updated at Posted at 2023-10-31

機械学習の回帰と分類タスクに対しては、ほとんどの場合はlightGBMが使われています。
今日は決定木からLightGBMまでの流れと、その過程でどのような改善がなされたのかについて、木モデルの全体像を紹介したいと思います。
木モデルに関して完全に理解しているわけでもないので、間違っているところがあればぜひ教えていただきたいです。

①決定木

まず木モデルで一番ベースとなっているのは決定木です。
決定木とは、データの特徴ごとの優先順位や分割ポイントを学習して、データをカテゴリに分類または数値予測を行うモデルです。
木は一個しかないために、非常に過学習しやすいかつ精度も低いというのは特徴となります。
それを改善するために、Bagging(複数モデルの平均値を取ること)の考え方に基づいて、ランダムフォレスト(RandomForest)というモデルが生まれました。

②ランダムフォレスト

ランダムフォレストは、一回で複数個の決定木を作って、それぞれの結果の平均値/多数決を取ることで、過学習しやすい問題を解決できました。
ですが、たくさんの決定木を作っても、個々の決定木の精度には限界があり、全体としての精度は必ずしも非常に高くなるわけではありません。
精度をさらに向上させるために、Boostingというアプローチが考えられました。

③GBDT

最初公開されたBoosting手法のモデルはGBDTとなります。
GBDTも決定木で予測しますが、1回で複数個の決定木を作るではなく、一つずつ順番に作成します。
各決定木は、前の決定木の予測結果の誤差を学習対象とし、これを繰り返すことで全体としてのモデルの精度を向上させます。
最初の決定木がデータの大まかな特徴を学習して、以降の決定木が誤差を補正していく流れです。
最後すべてのモデルの結果を合わせると、非常に高い精度に達します。

④XGBoost

GBDTはモデルより考え方に近いです。GBDTの考え方を元に使いやすくパッケージ化されたモデルはXGBoostです。
精度が低いという問題点はXGBoostで解決されましたが、決定木を一つずつ順番に作成する必要があるため、
処理時間が非常に長いという新たな問題が生じました。

⑤LightGBM

そこで、2017年にMicrosoftがLightGBMを公開しました。
LightGBMも決定木を一つずつ作る仕組みですが、XGBoostを基に様々な調整を行いました。
主に改善された点は2つあります。(他にも多くの改善がありますが、最も重要なのは以下の2点です)

  1. Goss(Gradient-based One-Side Sampling)という計算方法の導入
    非常に複雑な計算方法ですが、簡単的に言えば、誤差の学習順番をモデル自身で優先順位をつけて、優先順位が高いものから学習する仕組みです。
    ある程度の精度に達したら、残りの誤差を学習しても精度が大きく変わらないと判断し、学習を止めます。一方で、XGBoostは特に優先順位などなくて、全ての誤差を学習します。
  2. 連続値の特徴量を離散値に変換
    例えば、「10」,「11」,「12」,「13」,「14」みたいな特徴があれば、これらを「10-14」という一つの特徴量にまとめます。
    そうすると、少し精度が落ちますが、データの計算量や学習量は大幅に減少できます。
    これら2点の改善により、精度がほんのわずかだけ落ちますが、処理時間はXGBoostの数十倍短くなります。
    LightGBMは公開されてから、多くの予測・回帰問題はLightGBMしか使わないようになりました。

ちなみに、今LightGBMとXGBoostはあまり処理時間の差がないです。XGBoostもLightGBMが改善されたところを取り入れて自分のモデルに直しましたので、現在ではどちらにしてもほぼ差がないです。

参考イメージとして以下の図でまとめました。

10-31-1.png

LightGBM論文:

END

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7