Bootstrap-based model stability and supervised binning toolkit
Project description
Bootstrap ML Diagnostics
A lightweight toolkit for statistically robust model diagnostics using bootstrap resampling, with utilities for:
- supervised tree binning
- bootstrap-based feature selection
- model stability analysis
- hyperparameter sensitivity analysis
The library focuses on reducing overfitting and improving model interpretability through bootstrap distributions rather than single-point estimates.
Installation
pip install maxwailab
or
pip install git+https://github.com/MaxWienandts/maxailab.git
Core Philosophy
Most ML workflows rely on single train/validation splits.
This library instead uses bootstrap resampling to estimate:
- performance distributions
- feature selection stability
- hyperparameter robustness
Benefits:
- reduces variance from a single split
- identifies unstable variables
- provides confidence intervals for model performance
Workflow Overview
Typical modeling workflow using this library:
1️⃣ Supervised binning (optional)
tree_supervised_binning
bootstrap_tree_binning_auc_analysis
2️⃣ Feature selection
bootstrap_lightgbm_forward_selection
3️⃣ Diagnostics
performance_forward_selection_boxplot
variable_frequency_forward_selection
4️⃣ Extract best variables
top_k_forward_selection_variables
top_k_variables_by_forward_selection_boxplot
5️⃣ Hyperparameter analysis
lightgbm_hyperparameter_auc_curve_bootstrap
Example Workflow
import maxwailab
# --------------------------------
# Forward Selection with Bootstrap
# --------------------------------
result_bootstrap = maxwailab.bootstrap_lightgbm_forward_selection(
df=data,
target="target",
n_bootstrap=30,
n_max_variables=15,
metric_to_optimize="auc_roc",
hyperparameters=lgb_params
)
Analyze performance stability
bml.performance_forward_selection_boxplot(
result_bootstrap["auc_roc"],
"AUC"
)
This visualizes how performance behaves as variables are added.
Variable selection stability
maxwailab.variable_frequency_forward_selection(
result_bootstrap["variables"],
n_bootstraps=30
)
Heatmap showing how frequently variables appear in models of different sizes.
Extract best variables
Based on selection frequency
maxwailab.top_k_forward_selection_variables(
result_bootstrap["variables"],
n_bootstraps=30,
k=10
)
Based on best model performance
variables, auc = maxwailab.top_k_variables_by_forward_selection_boxplot(
result_bootstrap,
k=6,
metric="auc_roc"
)
Tree-based Supervised Binning
Supervised binning using decision trees.
from maxwailab import tree_supervised_binning
tree_supervised_binning(
df=data,
feature="age",
target="target",
max_leaf_nodes=5
)
Bootstrap Binning Stability
bootstrap_tree_binning_auc_analysis(
df_train,
df_val,
feature="age",
target="target"
)
Evaluates how binning performance varies across bootstrap samples.
Hyperparameter Sensitivity Analysis
Evaluate how model performance reacts to hyperparameter changes.
lightgbm_hyperparameter_auc_curve_bootstrap(
X_train,
y_train,
X_val,
y_val,
hyperparameters=lgb_params,
hyperparameter_name="num_leaves",
hyperparameter_values=[5,10,20,40],
n_bootstrap=50
)
Bootstrap is applied only to the training set while keeping validation fixed (out-of-time).
Example Output
The library produces:
- performance distributions
- boxplots
- stability heatmaps
- hyperparameter sensitivity curves
These diagnostics help detect:
- overfitting
- unstable features
- fragile hyperparameters
Module Structure
maxwailab
│
├── binning
│ ├── tree_supervised_binning
│ └── bootstrap_tree_binning_auc_analysis
│
├── feature_selection
│ ├── bootstrap_lightgbm_forward_selection
│ ├── performance_forward_selection_boxplot
│ ├── variable_frequency_forward_selection
│ ├── top_k_forward_selection_variables
│ └── top_k_variables_by_forward_selection_boxplot
│
└── hyperparameter_analysis
└── lightgbm_hyperparameter_auc_curve_bootstrap
When to Use This Library
This library is particularly useful for:
- credit risk models
- tabular ML problems
- high-stakes predictive modeling
- interpretable ML workflows
License
MIT License
Project details
Release history Release notifications | RSS feed
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 maxwailab-1.0.3.tar.gz.
File metadata
- Download URL: maxwailab-1.0.3.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
212e33b33cf6bb0befe42b1d32aa8f3a9a99e2391acf9cf4005c6c8bde16909e
|
|
| MD5 |
f8f90841ee4bfaf735ee702bcedcefbf
|
|
| BLAKE2b-256 |
823f319736992d1a4bdddb9bf2e60c4a7bb9b9f844712312f222eac54d537e4d
|
File details
Details for the file maxwailab-1.0.3-py3-none-any.whl.
File metadata
- Download URL: maxwailab-1.0.3-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f59ff0a15df4d87a6ee0a960e85bb23968b6cbef4c0fe7183c235a6098faaba
|
|
| MD5 |
a4e592be25bf61fc7e0b825bcdb853aa
|
|
| BLAKE2b-256 |
6522f9998bcd6efd97ff3bfa387b94d23aebdd89d5292fb3df4bf568edcccb7e
|