Skip to main content

SmallGBM

Gradient boosting for small tabular data.
Outperforms XGBoost · Beats LightGBM · Lowest variance

version python license pip DOI


What is SmallGBM?

SmallGBM is a gradient boosting library designed for small datasets (n < 1000). It combines robust leaf weight estimation with stochastic split selection to outperform XGBoost and LightGBM — with lower variance and no hyperparameter tuning.


Benchmark

27 datasets (15 synthetic + 12 real-world) · 5-fold cross-validation · mean ROC-AUC

Model AUC Std
SmallGBM 0.9241 ±0.0676
XGBoost 0.9156 ±0.0792
RandomForest 0.9140 ±0.0788
LightGBM 0.9047 ±0.0752

SmallGBM outperforms XGBoost by +0.85%, RandomForest by +1.0%, LightGBM by +1.9%, and has the lowest variance among all models.


Why Robust Leaf Weights?

Standard gradient boosting uses the mean of residuals per leaf. On small data, one outlier can destroy the estimate.

SmallGBM uses:

  • Median for leaves with n ≤ 30
  • Inverse-distance weighted mean for larger leaves
  • Signal-adaptive shrinkage toward the parent node

This makes predictions robust to outliers and label noise — the main enemies of small-sample learning.


Why Stochastic Split Selection?

Full enumeration of all possible split thresholds overfits on small data. SmallGBM uses 5 random thresholds per feature instead — less overfitting, faster training, and better generalization.


Installation

pip install smallgbm

Quickstart

from smallgbm import SmallGBMClassifier

model = SmallGBMClassifier()
model.fit(X_train, y_train)
proba = model.predict_proba(X_test)

Parameters

Parameter Default Description
n_estimators 50 Boosting rounds
max_depth 3 Max tree depth
min_samples_leaf 3 Min samples per leaf
learning_rate 0.1 Shrinkage
sigma_prior 0.5 Regularization strength
colsample_bytree 0.5 Feature fraction per tree
random_state None Reproducibility
auto_scale False RobustScaler internally

Features

  • Robust leaf weights — median + adaptive shrinkage
  • Stochastic split selection — 5 random thresholds, less overfitting
  • Column subsampling — fights overfitting in high-dimensional small data
  • Uncertainty estimatespredict_with_uncertainty()
  • scikit-learn compatiblefit, predict, predict_proba
  • Pure Python + NumPy — no compilation, easy install

Citation

@software{emelyanov2026smallgbm,
  author = {Emelyanov, Ilya},
  title = {SmallGBM: Gradient Boosting with Robust Leaf Regularization for Small-Sample Tabular Data},
  year = {2026},
  doi = {10.5281/zenodo.21934674},
  url = {https://github.com/nsdmlk/SmallGBM}
}

License

MIT © Emelyanov Ilya, 2026


Built for researchers and engineers working with limited data.

---

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smallgbm-1.4.1.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

smallgbm-1.4.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file smallgbm-1.4.1.tar.gz.

File metadata

  • Download URL: smallgbm-1.4.1.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.15.0a5

File hashes

Hashes for smallgbm-1.4.1.tar.gz
Algorithm Hash digest
SHA256 9460a3a705514c76978aa27a6973759ef647b0a80d23ff61251102a9a4b7e6fa
MD5 4220bad4e6749fbc50084bf8e6d7a4e4
BLAKE2b-256 f51f401ad5323496213a240e7513915c27d7146a0563997c8cadb5d52f21f953

See more details on using hashes here.

File details

Details for the file smallgbm-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: smallgbm-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.15.0a5

File hashes

Hashes for smallgbm-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 abad2aeb99337494558738d0df3cbb3370e0c2d78a4b37ae561c81327de84dd7
MD5 bbf740b982507f4a877007e0197c5add
BLAKE2b-256 50a26232263ca857d7d7f7e34a5458f30415f60223b947d4a1e65ac3873ca588

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.4.1 This release

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.1

2 files

1.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page