コンテンツにスキップ

CatBoost

出典: フリー百科事典『ウィキペディア(Wikipedia)』
CatBoost
作者 Andrey Gulin:[1] / Yandex
開発元 Yandex and CatBoost Contributors[2]
初版 2017年7月18日 (7年前) (2017-07-18)[3][4]
最新版
1.2.2[5] / 2023年9月20日 (13か月前) (2023-09-20)
プログラミング
言語
Python, R, C++, Java
対応OS Linux, macOS, Windows
種別 機械学習
ライセンス Apache License 2.0
公式サイト catboost.ai
テンプレートを表示

CatBoost [2]は、 Yandexが開発したオープンソースのソフトウェアライブラリ勾配ブースティングフレームワークを提供する。従来のアルゴリズムと比較して、順列駆動型の手段によりカテゴリカル変数の処理を改良している[6]LinuxWindowsmacOSで動作し、 PythonR で利用できる[7] [8]。構築されたモデルは、C++JavaC#RustCore MLONNX、PMML で実装できる[9]。ソースコードは Apache License でライセンスされており、GitHub で入手できる[2]

2017年、InfoWorld 誌は、TensorFlowPyTorchXGBoost、その他 8 つのライブラリとともに「The best machine learning tools」として表彰した[10]

Kaggleは、CatBoost を世界で最も頻繁に使用されている機械学習フレームワークの 1 つとして挙げている。 2020年の調査では第8位[11] 、2021年の調査では第7位であった[12]

2022年4月現在、CatBoost はPyPIリポジトリから 1 日あたり約 10 万回インストールされている[13]

特徴

[編集]

CatBoost は、主に次の特徴により、他の勾配ブースティングアルゴリズムと比較して人気を博している[14]

  • カテゴリカル変数のネイティブ処理[15]
  • GPU を用いた高速な訓練[16]
  • モデルと特徴分析のための視覚化とツール
  • 忘却ツリーまたは対称ツリーを使用して実行を高速化する
  • オーバーフィッティングを克服する順序付きブースティング[6]

歴史

[編集]

2009年、Andrey Gulin が MatrixNet を開発した。MatrixNet は Yandex で検索結果のランク付けに使用された独自の勾配ブースティング・ライブラリであり、推奨システムや天気予報など、Yandex のさまざまなプロジェクトで使用されてきた。

2014〜2015年、Andrey Gulin は研究者チームと共に、「カテゴリカルデータの処理方法」の問題を解決することを目的とした Tensornet と呼ばれるプロジェクトを開始した。その結果、カテゴリデータを処理するためのさまざまなアプローチを持つ独自の勾配ブースティングライブラリが作成された。

2016年、Anna Dorogush が率いる Machine Learning Infrastructure チームは、Matrixnet や Tensornet を含む、Yandex での勾配ブースティングに取り組み始めた。彼らは CatBoost と呼ばれる勾配ブースティング ライブラリの次のバージョンを実装し、オープンソース化した。これは、カテゴリカルデータとテキストデータ、GPU トレーニング、モデル分析、視覚化ツールをサポートしていた。

CatBoost は 2017年7月にオープンソース化され、Yandex とオープンソースコミュニティで活発に開発されている。

応用例

[編集]
  • JetBrainsはコード補完に CatBoostを使用している[17]
  • Cloudflare はボット検出に CatBoost を使用している[18]
  • Careem は目的地予測に CatBoost を使用している[19]

関連項目

[編集]

脚注

[編集]
  1. ^ catboost/AUTHORS”. GitHub. 2023年2月8日閲覧。
  2. ^ a b c catboost/catboost”. GitHub. 2023年2月8日閲覧。
  3. ^ Yandex open sources CatBoost, a gradient boosting machine learning library” (英語). TechCrunch. 2020年8月30日閲覧。
  4. ^ Yegulalp, Serdar (2017年7月18日). “Yandex open sources CatBoost machine learning library” (英語). InfoWorld. 2020年8月30日閲覧。
  5. ^ Release 1.2.2 - GitHub
  6. ^ a b Prokhorenkova, Liudmila; Gusev, Gleb (20 January 2019). "CatBoost: unbiased boosting with categorical features". arXiv:1706.09516 [cs.LG]。
  7. ^ Python Package Index PYPI: catboost”. 2020年8月20日閲覧。
  8. ^ Conda force package catboost-r”. 2020年8月30日閲覧。
  9. ^ Maven Repository: ai.catboost » catboost-prediction”. mvnrepository.com. 2020年8月30日閲覧。
  10. ^ staff (27 September 2017). “Bossie Awards 2017: The best machine learning tools”. InfoWorld. 2023年2月8日閲覧。
  11. ^ State of Data Science and Machine Learning 2020”. 2023年2月8日閲覧。
  12. ^ State of Data Science and Machine Learning 2021”. 2023年2月8日閲覧。
  13. ^ PyPI Stats catboost” (英語). PyPI Stats. 2023年2月8日閲覧。
  14. ^ Joseph (2020年2月29日). “The Gradient Boosters V: CatBoost” (英語). Deep & Shallow. 2020年8月30日閲覧。
  15. ^ Dorogush, Anna Veronika; Ershov, Vasily (24 October 2018). "CatBoost: gradient boosting with categorical features support". arXiv:1810.11363 [cs.LG]。
  16. ^ CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs” (英語). NVIDIA Developer Blog (2018年12月13日). 2020年8月30日閲覧。
  17. ^ Code Completion, Episode 4: Model Training” (英語). JetBrains Developer Blog (2021年8月20日). 2023年2月8日閲覧。
  18. ^ Stop the Bots: Practical Lessons in Machine Learning” (英語). The Cloudflare Blog (2019年2月20日). 2023年2月8日閲覧。
  19. ^ How Careem’s Destination Prediction Service speeds up your ride” (英語). Careem (2019年2月19日). 2023年2月8日閲覧。

外部リンク

[編集]