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.0.0.tar.gz (6.2 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.0.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for smallgbm-1.0.0.tar.gz
Algorithm Hash digest
SHA256 79d312a6894b94682bb92980a237dcfec4e22329794ffeda293c5cb88459a4e8
MD5 a5bcf6f8703db9e3fc785f7c8fff0477
BLAKE2b-256 8274596d688016cc8e82e77a1cf182f7639225036de641cf705a9fad895ee85d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: smallgbm-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.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.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b18e352834a2d7df58328054e6334167c00e4aea9a06c55ed890a52da3a2b71
MD5 2b09fe1af927dbeef1fb6bcf3006b6d9
BLAKE2b-256 fa70f5f8f0701b35e4d6ce31d2aa57c03678a2f99a18ad1106adeb997ce99ab3

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

1.1.0

2 files

1.0.1

2 files

This release

1.0.0 This release

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