OSS探訪

数値・カテゴリ特徴を扱うgradient boosting decision treeでclassification・regression・ranking modelを学習する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
9,134
主要言語
C++
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

CatBoostはdecision treeへgradient boostingを適用するmachine learning libraryです。数値特徴とカテゴリ特徴を扱い、classification、regression、rankingなどに利用できます。Python、R、Java、C++向けの利用経路があり、CPUに加えてGPU・multi-GPU trainingも提供します。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

カテゴリ特徴を含むtabular dataをそのままmodelへ渡す

CatBoostはnumerical featureとcategorical featureの両方を扱えることを主要機能として掲げています。事前にすべてをone-hot等へ変換するpipelineを必須にせず、GBDT modelを構築できます。

出典:[1]

classification・regression・rankingを同じlibraryで扱う

repository metadataとPython packageはclassification、regression、ranking等のmachine learning taskを対象とし、用途に応じたestimatorやloss/metricを選べます。

出典:[1][2]

CPU・GPU・distributed trainingをworkloadに合わせて選ぶ

READMEはGPU・multi-GPU trainingを案内し、Apache SparkとCLIによるdistributed trainingも提供しています。dataset sizeや実行環境に合わせてtraining方式を選択できます。

出典:[1]

向いている用途

カテゴリ値を多く含む表形式dataでGBDTを試したい場合に向く

customer属性、商品属性、event分類など、数値とカテゴリが混在するtabular dataでclassification・regression・rankingを比較したい用途に適します。

出典:[1]

導入前の確認

GPU・distributed機能はlocal CPU実行とは別に環境を検証する

GPUやSparkを使う場合はhardware、driver、runtime、cluster構成等の追加条件があります。まずCPUの小規模datasetでmodelとfeatureを検証し、必要に応じて実行基盤を拡張します。

出典:[1]

source buildはCMake・Conan・Cython等のtoolchainを必要とする

Python packageのpyprojectはsource buildにCMake、Conan、Cython、NumPy等を指定しています。通常利用ではprebuilt packageを優先し、source buildが必要な場合だけtoolchainを揃えます。

出典:[3][2]

1.2.10を固定し、modelとlibrary versionを一緒に管理する

2026年10月3日時点の最新安定版は1.2.10です。training時のlibrary versionとmodel artifactを一緒に記録し、upgrade時はpredictionとmetricを回帰確認します。

出典:[5][4][6]

参考にした公式資料

  1. [1]CatBoost v1.2.10 README(2026-10-03)
  2. [2]CatBoost 1.2.10 Python setup.py(2026-10-03)
  3. [3]CatBoost 1.2.10 Python pyproject.toml(2026-10-03)
  4. [4]CatBoost 1.2.10 version metadata(2026-10-03)
  5. [5]CatBoost 1.2.10 release(2026-10-03)
  6. [6]CatBoost Apache-2.0 license(2026-10-03)
編集部からの補足

カテゴリ値のencoding処理を別pipelineへ切り出さずGBDTへ渡したいtabular dataに向きます。精度だけでなくtraining時間、推論latency、model sizeを実datasetで比較し、CPU/GPUや他GBDTとの選択を決めるのが実務的です。

3ステップで試す

  1. 1

    CatBoost 1.2.10を仮想環境へインストールする

    prebuilt Python packageをstable releaseへ固定して導入します。

    python3 -m venv .venv && . .venv/bin/activate && python -m pip install catboost==1.2.10
  2. 2

    小さなclassification modelを学習する

    外部datasetを使わず、CPUで小規模modelを学習してpredictionまで実行します。

    python -c "from catboost import CatBoostClassifier; m=CatBoostClassifier(iterations=5,verbose=False); m.fit([[0],[1],[2],[3]],[0,0,1,1]); print(m.predict([[2.5]]))"
  3. 3

    導入versionを確認する

    training環境で利用したlibrary versionをmodel artifactと一緒に記録できるよう確認します。

    python -c "import catboost; print(catboost.__version__)"
公式READMEで確認

成長

成長の推移 · 直近30日

9,134 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
112
Open PR
63

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • machine-learning
  • decision-trees
  • gradient-boosting
  • gbm
  • gbdt
  • python
  • r
  • kaggle
  • gpu-computing
  • catboost
  • tutorial
  • categorical-features
Stars
9,134
Forks
1,343
Watchers
187
Open Issues
673
Contributors
189
所有者種別
Organization
主要言語
C++
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?