Skip to main content

SmallGBM

Gradient boosting that actually works on small data.

version python license pip


Why SmallGBM?

XGBoost and LightGBM are built for scale. They shine on thousands of rows. But when you only have 50, 100, or 500 samples, their default hyperparameters fail — overfitting, instability, unpredictable results.

SmallGBM is designed from the ground up for datasets with fewer than 1000 samples.

Feature SmallGBM XGBoost LightGBM
Bayesian leaf weights
Adaptive regularization
No bootstrap (uses all data)
Stable under label noise
scikit-learn compatible

Noise Stability

SmallGBM degrades gracefully when labels are noisy — unlike XGBoost and LightGBM which drop sharply.

Noise stability comparison

At 20% label noise, SmallGBM is the best performer. Bayesian regularization keeps it stable when others collapse.


Learning Curve

Clear, predictable improvement as data grows. Reliable performance starts at n ≈ 40.

Learning curve

No sudden jumps, no catastrophic failures. A safe choice when data is limited.


Installation

pip install smallgbm

Quickstart

from smallgbm import SmallGBMClassifier

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

API

SmallGBMClassifier

Parameter Default Description
n_estimators 50 Number of boosting rounds
max_depth 3 Maximum tree depth
min_samples_leaf 3 Minimum samples per leaf
learning_rate 0.1 Shrinkage factor
sigma_prior 0.5 Bayesian prior strength

SmallGBMRegressor

Same parameters, for regression tasks.

from smallgbm import SmallGBMRegressor

model = SmallGBMRegressor()
model.fit(X_train, y_train)
preds = model.predict(X_test)

Research

Full characterisation notebook with 5 experiments: benchmark_final.ipynb

  • Noise stability analysis
  • Prior sensitivity
  • Sample size curve
  • Regression performance
  • Class imbalance tolerance

License

MIT © Emelyanov Ilya 2026


Built with ❤️ for the small data community

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.1.0.tar.gz (9.8 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.1.0-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for smallgbm-1.1.0.tar.gz
Algorithm Hash digest
SHA256 ec079669f6a24168f0345a90c6446df2c97fd816053a6096777ce7325cb4d868
MD5 96071c1968228d9689f0ccce1e45804f
BLAKE2b-256 c6e408b95eb2710cd2e7c18d7a2fd63b54f582cbdf750d524c4695fd624843ad

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smallgbm-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.0 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4eda485f2c6df55ea3f79308fa3502f7b55159faf5e63b4885045f641fa1926f
MD5 4e31ae973b387946029f4ba0e3282efd
BLAKE2b-256 8e646d9ef2d55e4acf3e8c252223c48ff49227432e68ee5c2b6812bcc1752fd4

See more details on using hashes here.

Release history Release notifications | RSS feed

1.4.1

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

This release

1.1.0 This release

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