Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
36
Help us understand the problem. What is going on with this article?
@R1ck29

XGBoost(eXtreme Gradient Boosting)について

More than 1 year has passed since last update.

はじめに

最近Kaggleでよく使われるXGBoostについてまとめました。
一体どのような学習法であり、どのような特徴があるのかを紹介していきます。

XGBoostとは ?

  • Gradient Boosting(勾配ブースティング)Random Forestを組み合わせたアンサンブル学習(複数の分類器を集めて構成される分類器)
  • 勾配ブースティングをC++で実装し高速化したものであり、Gradient Boosted Tree(GBT)より10倍くらいは高速に処理すると言われている。
  • 複数のパラメータ調整によるチューニングが必要であり,最適化はグリッドサーチやCross Validationを複数行う
  • 汎化能力を上げるために,学習率(XGBoostパッケージではパラメータeta)を下げていき,その都度最適化を行う

Gradient Boosting(勾配ブースティング)とは?

  • 弱学習器を1つずつ順番に構築していく手法。新しい弱学習器を構築する際に,それまでに構築されたすべての弱学習器の結果を利用する。
  • すべての弱学習器が独立に学習されるバギングと比べ,計算を並列化できず学習に時間がかかる。

※バギングとは、ブートストラップサンプリングで得られた学習データを使って、識別器を複数作り、それらの識別器の多数決をとることによって、一つの識別器よりも性能の高いモデルを作ること。

Random Forest(ランダムフォレスト)とは?

  • アンサンブル学習法の一つ。
  • 決定木を複数集めて使うので、木が集まってフォレスト(森)と言われている。
  • 複数集めた各決定木の予測結果を多数決することによって結果を得る。

Random Forestのアルゴリズム

1. ランダムにデータを抽出する
2. 決定木を成長させる
3. 1,2ステップを指定回繰り返す
4. 予測結果を多数決することによって分類閾値(ラベル)を決定する

Random Forestのメリット

  • 特徴量のスケーリングが必要ない(SVMなどの分類手法では必要になる)
  • 考慮するパラメータが少ない
  • 並列化が容易
  • どの特徴量が重要かを知ることができる

Random Forestのデメリット

  • 複雑なデータではSVM(サポートベクターマシン)などの分類手法に比べて汎化性能が下がる

XGBoostのメリット

  • 欠損値が多いなどのスパースなデータに対して、事前に木の分岐の方向を決めるアルゴリズムを採用している。
  • 並列分散処理により、モデルの探索を高速化している。
  • CPU外でも学習が回せるため、大規模なデータも処理できる。

XGBoostのハイパーパラメタ

XGBoostの公式ドキュメントから、チューニングすべきであろう主なハイパーパラメータは以下のとおりです。
image.png


参考文献

Kaggleで大人気!XGBoostに関する備忘録
xgboost公式ドキュメント
機械学習アルゴリズム〜XGboost〜
決定木とランダムフォレスト
XGBoostの主な特徴と理論の概要

36
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
R1ck29
AIベンチャーで機械学習エンジニアやってます。 Kaggle関連の投稿が多いです。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
36
Help us understand the problem. What is going on with this article?