Skip to main content

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


Download files

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

Source Distribution

maxwailab-1.0.2.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

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

maxwailab-1.0.2-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file maxwailab-1.0.2.tar.gz.

File metadata

  • Download URL: maxwailab-1.0.2.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

Hashes for maxwailab-1.0.2.tar.gz
Algorithm Hash digest
SHA256 2fdfa2c6e5a12f0d7e89d07b69dba2bb6c32aa585c181f560dcc9f9173ef49a8
MD5 3d44d5c742b83dc2ae6c28b0de8b6bfc
BLAKE2b-256 582bb3e92506df626f99246db73215d7580fad039a31e2fb23ce21e19e092000

See more details on using hashes here.

File details

Details for the file maxwailab-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: maxwailab-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for maxwailab-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cc3cf41269b3a08ee162eb4dcf312deba893c607b9b15ed4c4f3269eea78c03d
MD5 b1f2f106dcb3ba912aff6979c8d6e831
BLAKE2b-256 6c39e9b3e4e2a1cc08b5a4fc7cd0faef018207e34c40ef4c187ba84989574009

See more details on using hashes here.

Supported by

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