CatBoost
By Yandex
CatBoost is an open-source gradient boosting library developed by Yandex that builds ensembles of decision trees for classification, regression, and ranking, with built-in handling of categorical features. It is distinguished by an ordered…
Definition
CatBoost is an open-source gradient boosting library developed by Yandex that builds ensembles of decision trees for classification, regression, and ranking, with built-in handling of categorical features. It is distinguished by an ordered boosting procedure and target-statistic encoding that reduce a form of data leakage common in other boosting implementations, and by symmetric (oblivious) trees that make inference fast and predictable. CatBoost provides Python, R, C++, and command-line interfaces and is widely used on datasets with many categorical columns.
Overview
CatBoost was created to address a specific weakness in earlier gradient boosting frameworks: their treatment of categorical variables. Traditional boosting libraries require categorical columns to be converted to numbers, typically through one-hot encoding or manual target encoding computed once on the full training set, both of which either explode dimensionality or leak information from the label into the encoded feature, subtly biasing the model. CatBoost's name reflects this focus, combining "category" and "boosting." Mechanically, CatBoost encodes categorical features using ordered target statistics: for each row, it computes the encoding using only the target values of rows that appear before it in a randomly permuted order, rather than using the entire dataset including the row's own label. This ordered approach is applied throughout an algorithm the authors call ordered boosting, which also computes the gradients used to fit each new tree using only preceding examples in the permutation, reducing the prediction shift and overfitting that can arise from the standard boosting procedure using the full dataset to estimate its own residuals. CatBoost also builds symmetric, or oblivious, decision trees, where every node at a given depth splits on the same feature and threshold; this makes trees faster to evaluate at inference time and less prone to overfitting individual splits, though it constrains tree flexibility somewhat compared to standard asymmetric trees. Among the major gradient boosting libraries, CatBoost's closest neighbors are XGBoost and LightGBM. Where LightGBM emphasizes speed on very large numeric datasets through histogram binning and leaf-wise growth, and XGBoost emphasizes a mature, highly configurable general-purpose implementation, CatBoost differentiates itself primarily by requiring less manual preprocessing when categorical features are present and by often achieving strong accuracy with minimal hyperparameter tuning, sometimes called good performance out of the box. In practice, CatBoost is used heavily in domains with naturally categorical, high-cardinality data: e-commerce recommendation and search ranking, click-through-rate prediction in advertising, insurance and credit underwriting, and any tabular pipeline where features like user ID, merchant ID, ZIP code, or product category dominate. Its GPU training support and native handling of missing values also make it attractive for production scoring services that need consistent, low-latency inference from symmetric trees. The trade-offs are that CatBoost's ordered boosting and symmetric tree structure can make training slower than LightGBM on very large, mostly numeric datasets, since it does not benefit as much from LightGBM's aggressive histogram and sampling optimizations in that regime. Its symmetric trees, while fast at inference, are less flexible than the asymmetric trees other libraries can grow, which can slightly reduce accuracy on datasets where irregular tree shapes would fit the data better. Teams with mostly numeric, non-categorical, extremely large datasets or that need maximum leaf-wise flexibility may find LightGBM or tuned XGBoost a better fit than CatBoost.
Key Features
- Native handling of categorical features via ordered target-statistic encoding
- Ordered boosting procedure that reduces prediction shift and overfitting
- Symmetric oblivious trees for fast, consistent inference
- Strong default hyperparameters requiring comparatively little tuning
- Built-in support for text and embedding features alongside tabular data
- GPU-accelerated training for large datasets
- Command-line, Python, and R interfaces with scikit-learn-compatible estimators
- Built-in cross-validation and overfitting detection tools