SmallGBM
Gradient boosting for small tabular data.
Statistical parity with XGBoost · Outperforms LightGBM · Lowest variance
What is SmallGBM?
SmallGBM is a gradient boosting library designed for small datasets (n < 1000). It combines robust leaf weight estimation with controlled column subsampling to deliver accuracy on par with XGBoost — 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.9157 | ±0.0723 |
| XGBoost | 0.9156 | ±0.0792 |
| RandomForest | 0.9140 | ±0.0788 |
| LightGBM | 0.9047 | ±0.0752 |
SmallGBM achieves statistical parity with XGBoost (p > 0.05), outperforms RandomForest by +0.17%, LightGBM by +1.1%, 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.
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
- Column subsampling — fights overfitting in high-dimensional small data
- Uncertainty estimates —
predict_with_uncertainty() - scikit-learn compatible —
fit,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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smallgbm-1.4.0.tar.gz.
File metadata
- Download URL: smallgbm-1.4.0.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.15.0a5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2aecf8d23c7807ebe324f31b48e2902c7ae8090e3b2890eca039e625d81a21c0
|
|
| MD5 |
1eeab658e0596ba0a260464d6fcf27ff
|
|
| BLAKE2b-256 |
e62116d10df677e9da35909b9400816161df0f6c7830c1738f0ece2f214ec4c7
|
File details
Details for the file smallgbm-1.4.0-py3-none-any.whl.
File metadata
- Download URL: smallgbm-1.4.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.15.0a5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71a8a96fe54271231724973d6340b24c53f62bc4fb93d7cdb6525df5726a4717
|
|
| MD5 |
7beb65b640832d44e7c6f331d2c71afd
|
|
| BLAKE2b-256 |
ce99ae4a086c12c20a488eddf9287aa12081715a9d1c3c2e8bbe90f0e328c97d
|