【えっくすじーぶーすと】

XGBoost(エックスジーブースト) とは?

最終更新:
💡 決定木を順に足し、予測を改善するライブラリ

勾配ブースティングを効率よく実装した機械学習ライブラリ。代表的な木の方式では、決定木を順に追加し、損失と正則化を考慮してモデルを学習する。分類・回帰などに使われる。

📌 このページのポイント
決定木を順に足して、予測を改善する木110木2+2木3−1++この例の合計:11追加する木は、モデル全体の損失を改善正則化・並列処理・欠損値への分岐学習後は、別のデータで性能を確かめる
二乗誤差を使う回帰で、ある入力の木の出力を足す簡略例です。初期値を0、学習率を1と仮定しています。木ごとの正解率や精度の上昇を保証する例ではありません。
ひよこ ひよこ
XGBoostって普通の勾配ブースティングと何が違うの?
ペンギン先生 ペンギン先生
勾配ブースティングは学習の考え方で、XGBoostはそれを効率よく使うライブラリだよ。代表的な木の方式では、今までの木を組み合わせた予測を改善するように、新しい木を順番に追加するんだ
ひよこ ひよこ
次の木は、前の木の間違いだけを直すの?
ペンギン先生 ペンギン先生
直前の一本だけでなく、それまでのモデル全体の予測を使って損失を改善するよ。二乗誤差なら残差との関係で説明できるけれど、一般には損失の勾配などを使う。図の木ごとに正解率が必ず上がる、という仕組みではないんだ
ひよこ ひよこ
正則化があれば、過学習しない?
ペンギン先生 ペンギン先生
正則化は複雑すぎるモデルを抑えるための工夫だけれど、過学習を完全に防ぐ保証はないよ。木の深さや学習率、学習を止める時期なども調整し、学習に使っていないデータで評価することが大切なんだ
ひよこ ひよこ
欠損値は、自動で埋めてくれるの?
ペンギン先生 ペンギン先生
木の方式では、値が欠けているときにどちらへ進むかを学習するよ。元の値を復元する処理ではないんだ。線形のgblinearでは欠損をゼロとして扱うなど、方式による違いもある。欠損の指定やデータ形式を確認しよう
ひよこ ひよこ
表形式データなら、いつでも一番いい?
ペンギン先生 ペンギン先生
そうとは決められないよ。データの特徴、評価指標、設定、計算資源で結果は変わる。別のモデルと同じ条件で比べよう。画像や文章も特徴量に変換して使えるけれど、入力の表現や予測したい目的を考える必要があるんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「XGBoost」って出てきたら「勾配ブースティングを効率よく使う機械学習ライブラリ」と思えばだいたいOK!
📖 おまけ:英語の意味
「XGBoost(eXtreme Gradient Boosting)」 = 勾配ブースティングを使うライブラリ名
💬 Gradient Boostingは「勾配ブースティング」、eXtremeを合わせた名前だよ。名前に関係なく、実際の性能はデータと設定で確かめよう

参考資料

← 用語集にもどる