キカガク・AIスクールの復習その9ー勾配ブースティング(XGBoost)

キカガクAIスクール
いきなりエラーで戦意喪失(泣)

機械学習の手法のひとつ、決定木
そのアンサンブル法として、

1.バギングを使ったランダムフォレスト
2.ブースティングを使った勾配ブースティング

がある。

これらは回帰でも分類でも非常によく使われており、
最近は、勾配ブースティングのXGBoostが有名らしい。

ランダムフォレストが、
複数の決定木並列で使用し、その多数決や平均を取るのに対し、

©️スタビジ https://toukei-lab.com

勾配ブースティングは、
複数の決定木直列で使用し、
1つ前の決定木の誤りを次の決定木が修正するのを繰り返し、
非常に高い精度を出すという。

©️スタビジ 勾配ブースティングは「直列」!

そこで、まずは、
『Python ではじめる機械学習』を参考に、

間違いない!一冊。

scikit-learnGradientBoostingClassifierを使って、
勾配ブースティングを実装してみた。

accuracy on training setが100%になっていてover fittingしている

さらに、
過学習対策を2通り試し、
決定木の枝刈りのほうが学習率をいじるより、
汎化性能が向上することを確かめた。

パラメータをいじり、汎化性能を高める

最後に
ディープラーニングと違って、
どの特徴量が重要かが可視化できるので、
それも見てみた。

重要特徴量の可視化は説明できるAIとして価値が高い

次に、
いよいよXGBoostを試す。

これだけでは何しているかよくわからん。

チュートリアルが英語なので、
いろいろググってやってみたが、
うーむ、
コードの写経だけでは実感が湧かない。

これも重要特徴量の可視化はできる

実務でもよく使われるというXGBoost
日本語の論文解説を見つけたので、
手強そうだがチャレンジして、理解を深めたい。

Follow me!

PAGE TOP