| 開発者 | XGBoost 貢献者 |
|---|---|
| 初回リリース | 2014年3月27日 |
| 安定版リリース | 2.1.2 [1]
/ 2024年10月23日 |
| リポジトリ |
|
| 書かれた | C++ |
| オペレーティング·システム | Linux、macOS、Microsoft Windows |
| タイプ | 機械学習 |
| ライセンス | Apache ライセンス 2.0 |
| Webサイト | 翻訳元 |
XGBoost [2] (eXtreme Gradient Boosting) は、C++、Java、Python、[3] R、[4] Julia、[5] Perl、[6] Scala用の正規化勾配ブースティングフレームワークを提供するオープンソースソフトウェアライブラリです。Linux、Microsoft Windows、[7] macOSで 動作します。 [ 8 ]プロジェクトの説明によると、このライブラリは「スケーラブルでポータブルな分散勾配ブースティング (GBM、GBRT、GBDT) ライブラリ」を提供することを目指しています。単一のマシンだけでなく、分散処理フレームワークのApache Hadoop、Apache Spark、Apache Flink、Daskでも動作します。[9] [10]
XGBoostは、2010年代半ばに機械学習 コンテストの優勝チームが選ぶアルゴリズムとして人気と注目を集めました。[11]
歴史
XGBoostは当初、分散型(ディープ)機械学習コミュニティ(DMLC)グループの一環として、Tianqi Chen [12]による研究プロジェクトとして始まりました。当初は、 libsvm構成ファイルを使用して構成できるターミナルアプリケーションとして始まりました。Higgs機械学習チャレンジの優勝ソリューションで使用された後、MLコンペティション界でよく知られるようになりました。その後すぐに、PythonおよびRパッケージが構築され、XGBoostには現在、Java、Scala、Julia、Perl 、およびその他の言語のパッケージ実装があります。これにより、ライブラリはより多くの開発者に広まり、 Kaggleコミュニティでの人気に貢献し、多数のコンペティションで使用されてきました。[11]
すぐに他の多くのパッケージと統合され、それぞれのコミュニティで使いやすくなりました。現在では、Pythonユーザー向けにはscikit-learn 、 Rユーザー向けにはcaretパッケージと統合されています。また、抽象化されたRabit [13]とXGBoost4J [14]を使用して、 Apache Spark、Apache Hadoop、Apache Flinkなどのデータフローフレームワークに統合することもできます。XGBoostは、 FPGA用のOpenCLでも利用できます。[15] XGBoostの効率的でスケーラブルな実装は、Tianqi ChenとCarlos Guestrinによって公開されています。[16]
XGBoost モデルは単一の決定木よりも高い精度を達成することが多いですが、決定木の本質的な解釈可能性が犠牲になります。たとえば、決定木が決定を下すためにたどるパスをたどることは簡単で説明も不要ですが、数百または数千のツリーのパスをたどることははるかに困難です。
特徴
XGBoostが他の勾配ブースティングアルゴリズムと異なる顕著な特徴は以下の通りである: [17] [18] [16]
- 木々に対する巧妙な罰則
- リーフノードの比例縮小
- ニュートンブースティング
- 追加のランダム化パラメータ
- 単一の分散システムとアウトオブコア計算での実装
- 自動特徴選択 [引用が必要]
- 効率的な計算のための理論的に正当化された加重分位点スケッチ
- スパース性を考慮した並列ツリー構造ブースティング
- 決定木トレーニングのための効率的なキャッシュ可能なブロック構造
アルゴリズム
XGBoost は、関数空間で勾配降下法として機能する勾配ブースティングとは異なり、関数空間でニュートン・ラプソン法として機能します。損失関数では、ニュートン・ラプソン法との接続を確立するために2 次テイラー近似が使用されます。
一般的な非正規化 XGBoost アルゴリズムは次のとおりです。
入力: トレーニング セット、微分可能な損失関数、弱学習器の数、学習率。
アルゴリズム:
- モデルを定数値で初期化します: [詳細な説明が必要]
- m = 1 からMの場合:
- 「勾配」と「ヘッセ行列」を計算します: [説明が必要]
- 以下の最適化問題を解くことにより、トレーニング セット[明確化が必要]を使用して基本学習器 (または弱学習器、例: ツリー) を適合します。[明確化が必要]
- モデルを更新します。
- 出力
受賞歴
- ジョン・チェンバース賞(2016)[19]
- 高エネルギー物理学と機械学習の出会い賞(HEP meets ML)(2016)[20]
参照
参考文献
- ^ 「リリース 2.1.2」。2024年10月23日。 2024年10月27日閲覧。
- ^ 「GitHub プロジェクトのウェブページ」。GitHub。2022年6月。2021年4月1日時点のオリジナルよりアーカイブ。2016年4月5日閲覧。
- ^ 「Python パッケージ インデックス PYPI: xgboost」。2017 年 8 月 23 日時点のオリジナルよりアーカイブ。2016 年 8 月 1 日閲覧。
- ^ 「CRAN パッケージ xgboost」。2018 年 10 月 26 日時点のオリジナルよりアーカイブ。2016 年 8 月 1 日閲覧。
- ^ 「Julia パッケージ リスト xgboost」。2016 年 8 月 18 日時点のオリジナルよりアーカイブ。2016 年 8 月 1 日閲覧。
- ^ 「CPANモジュールAI::XGBoost」。2020年3月28日時点のオリジナルよりアーカイブ。2020年2月9日閲覧。
- ^ 「Windows で Anaconda 用の XGBoost をインストールする」。IBM。2018年5 月 8 日のオリジナルからアーカイブ。2016年 8 月 1 日に取得。
- ^ 「Mac OSX に XGBoost をインストールする」。IBM。2018年 5 月 8 日時点のオリジナルよりアーカイブ。2016 年 8 月 1日閲覧。
- ^ 「Daskホームページ」。2022年9月14日時点のオリジナルよりアーカイブ。2021年7月15日閲覧。
- ^ 「Distributed XGBoost with Dask — xgboost 1.5.0-dev ドキュメント」xgboost.readthedocs.io。2022-06-04 にオリジナルからアーカイブ。2021-07-15に取得。
- ^ ab "XGBoost - ML 優勝ソリューション (不完全なリスト)"。GitHub。2017年 8 月 24 日のオリジナルからアーカイブ。2016年 8 月 1 日に取得。
- ^ 「XGBoost の進化の背後にあるストーリーと教訓」。2016 年 8 月 7 日時点のオリジナルよりアーカイブ。2016 年 8 月 1 日閲覧。
- ^ 「Rabit - 信頼性の高い Allreduce およびブロードキャスト インターフェース」。GitHub。2018年 6 月 11 日のオリジナルからアーカイブ。2016 年 8 月 1 日に取得。
- ^ “XGBoost4J”. 2018年5月8日時点のオリジナルよりアーカイブ。2016年8月1日閲覧。
- ^ 「FPGA 上の XGBoost」。GitHub。2020年9 月 13 日のオリジナルからアーカイブ。2019 年 8 月 1 日に取得。
- ^ ab Chen, Tianqi; Guestrin, Carlos (2016). 「XGBoost: スケーラブルなツリー ブースティング システム」。Krishnapuram, Balaji、Shah, Mohak、Smola, Alexander J.、Aggarwal, Charu C.、Shen, Dou、Rastogi, Rajeev (編)。第 22 回 ACM SIGKDD 国際知識発見およびデータ マイニング会議の議事録、米国カリフォルニア州サンフランシスコ、2016 年 8 月 13 ~ 17 日。ACM。pp . 785 ~ 794。arXiv : 1603.02754。doi : 10.1145 / 2939672.2939785。ISBN 9781450342322. S2CID 4650265。
- ^ Gandhi, Rohith (2019-05-24). 「Gradient Boosting and XGBoost」. Medium . 2020-03-28時点のオリジナルよりアーカイブ。2020-01-04閲覧。
- ^ 「XGBoost によるツリー ブースティング – XGBoost が「あらゆる」機械学習の競争で勝利するのはなぜか?」。同期済み。2017 年 10 月 22 日。2020 年 3 月 28 日時点のオリジナルよりアーカイブ。2020年 1 月 4 日閲覧。
- ^ “John Chambers Award Previous Winners”. 2017年7月31日時点のオリジナルよりアーカイブ。2016年8月1日閲覧。
- ^ 「HEP meets ML Award」。2018年5月8日時点のオリジナルよりアーカイブ。2016年8月1日閲覧。
