#1. LightGBMとは
QiitaやYoutubeとかでAI関係の学習をしていると、LightGBMがすごいというのが結構出てくるので、この機に学習してKaggleで使ってみたい。Kagglerの上位の人達が使っていて最近流行りのアルゴリズムであるらしい。
LightGBMは、Microsoftの人が開発した分散型勾配ブースティングフレームワークである。
基本的には、決定木の流れを組む分類問題を解くためのアルゴリズムであるらしい。
#2. 分類問題を解く各種手法
LightGBMは、決定木の流れを組むアルゴリズムであるという事は、決定木から整理しなおすと分かりやすそうである。
大昔には、分類問題を解くアルゴリズムとして、決定木があった。その後、分類性能を向上させるためのアンサンブル学習として、ランダムフォレストや、XGBoost、LightGBM、CatBoostなどが登場してきた。
#2.1 決定木
決定木とは、上から条件分岐をしていって、最後に結論を得る分類問題を解く手法である。
メリット :結果導出過程の説明が簡単であるという点。
デメリット:判断が雑、性能が低い
#2.2 アンサンブル学習
アンサンブル学習は、決定木のように性能の低い弱学習機を組み合わせて実行することで、性能の高いモデルを作っていく学習方法のことである。この組み合わせ方が、3種類ほどある。
- バギング
- ブースティング
- スタッキング
2.2.1 ランダムフォレスト(バギング)
決定木は条件判断が雑なため、性能が低い。いわば意見の偏った普通の人であり、なんでも出来る天才ではない。
なら、普通の人をたくさん集めて意見を聞いて多数決をとろうというのが、バギングである。ランダムフォレストはバギングの代表手法である。
メリット :決定木より性能Up
デメリット:ただの多数決なので、信頼できる人と、適当な人の結果が同等に扱われる
2.2.2 ブースティング
ブースティングは、ランダムフォレストのような並列実行ではなく、学習機を直列接続し、前段で間違えた結果を重点的に次段で学習し、分類精度を高めていく手法である。初期のブースティング手法としては、AdaBoostが有名である。その後に有名になったのが、勾配降下法を使う勾配ブースティングである。
勾配ブースティング(LightGBM)
ランダムフォレストの多数決で決める際の問題を解決するのが、勾配ブースティング手法である。
ランダムフォレストの際には、男なのか女なのかの結果だけが、各学習機から出てきて、多数決を取っていた。ここに、どれだけその結果の精度が高いかの点数を付けて結果出力する。これを見て、合議制で結果を決める。
なお、この点数を決める際に、勾配を利用している。
この勾配ブースティング手法で、今はやっているのがLightGBM。
メリット :合議制による性能Up
デメリット:ー