NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4924 most downloaded on PyPI
Fit interpretable models. Explain blackbox machine learning.
Last release 6 months ago
17 Mar 2026
Release timing varies
gaps range from 1 weeks to 2 months
Nearly every release is documented
notes for 50 of 50 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
50 releases · first in 2019
changed to pyproject.toml based build setup
optimization of EBM predict speed, especially for single samples
One column per quarter.
improved speed of EBMs during predict, especially for datasets with small numbers of samples
added support for pandas.StringDtype
resolved incompatibility with scikit-learn 1.8+ due to change in is\_classifier and is\_regressor only accepting valid estimators
improved fitting memory requirement estimate
improved memory requirements estimate
improved memory requirements estimate
the shape of the bags parameter has been changed from (n\_outer\_bags, n\_samples) to (n\_samples, n\_outer\_bags) in order to better match the format
removed the use of large blocks of shared memory since it is not available in docker containers
added estimate\_mem function to estimate the memory usage of an EBM model
removed potential large delay introduced in v0.6.13 while fitting EBMs on some datasets
support for early termination of EBM training using a callback mechanism
increased default number of interaction terms
increased max\_rounds to 50,000
reorder\_classes function which allows reordering of the classes after fitting
refitting of the intercept term after fitting the rest of the model to improve the intercept value
resolved new scikit-learn requirement for having \_\_sklearn\_tags\_\_
minimum python version increased to 3.9
added predict\_with\_uncertainty function by @degenfabian in PR #584
default EBM parameters changed to improve model performance
support for regularization parameters reg\_alpha, and reg\_lambda in EBMs
visualizations for the APRL (Automatic Piecewise Linear Regression) package by @mathias-von-ottenbreit
pass optional kwargs to DecisionTreeClassifier in PR #537 by @busFred
added compatibility with numpy 2.0 thanks to @DerWeh in PR #525
Documentation on recommended hyperparameters to help users optimize their models.
removed the dependency on deprecated distutils
added support for AVX-512 in PyPI installations to improve fitting speed
added the following model editing functions: copy, remove_terms, remove_features, sweep, scale
Training speed improvements due to the use of SIMD on Intel processors in PyPI release Results may vary, but expect approx 2.75x faster for classifica
support for specifying outer bags
support for visualizations in streamlit
alternative objective functions: poisson_deviance, tweedie_deviance, gamma_deviance, pseudo_huber, rmse_log (log link)
fix the issue that the shared library would only work on newer linux versions
Full Complexity EBMs with higher order interactions supported: GA3M, GA4M, GA5M, etc... 3-way and higher-level interactions lose exact global interpre
feature_groups_ -> term_features_
global_selector -> n_samples_, unique_val_counts_, and zero_val_counts_
domain_size_ -> min_target_, max_target_
additive_terms_ -> term_scores_
bagged_models_ -> BaseCoreEBM has been depricated and the only useful attribute has been moved
into the main EBM class (bagged_models_.model_ -> bagged_scores_)
feature_importances_ -> has been changed into the function term_importances(), which can now also
generate different types of importances
preprocessor_ & pair_preprocessor_ -> attributes have been moved into the main EBM model class (details below)
col_names_ -> feature_names_in_
col_types_ -> feature_types_in_
col_min_ -> feature_bounds_
col_max_ -> feature_bounds_
col_bin_edges_ -> bins_
col_mapping_ -> bins_
hist_counts_ -> histogram_counts_
hist_edges_ -> histogram_edges_
col_bin_counts_ -> bin_weights_ (and is now a per-term tensor)
Synapse cloud support for visualizations.
Differential-privacy augmented EBMs now available as interpret.privacy.{DPExplainableBoostingClassifier,DPExplainableBoostingRegressor}.
interpret.privacy.{DPExplainableBoostingClassifier,DPExplainableBoostingRegressor}.interpret and interpret-core now distributed via docker.joblib can now support multiple engines with serialization support.Sample weight support added for EBM.
predict_and_contrib added to EBM where both predictions and feature contributions are generated in one call.interpret now public at https://interpret.ml/docs.interpret and interpret-core now distributed via sdist.interpret.glassbox.ebm.utils.Rendering fix for AzureML notebooks.
Major upgrades to EBM in this release. Automatic interaction detection is now included by default. This will increase accuracy substantially in most c
Major upgrades to EBM in this release. Automatic interaction detection is now included by default. This will increase accuracy substantially in most cases. Numerous optimizations to support this, especially around binary classification. Expect similar or slightly slower training times due to interactions.
outer_bags=16 to outer_bags=8.interactions=0 to interactions=10.treeinterpreter is now unstable due to upstream dependencies.Fixed bug on predicting unknown categories with EBM.
max_interaction_bins as argument to EBM learners for different sized
bins on interactions, separate to mains.Dash based visualizations will always default to listen port 7001 on first attempt; if the first attempt fails it will try a random port between 7002-
With warning, EBM classifier adapts internal validation size when there are too few instances relative to number of unique classes. This ensures that
from interpret import set_visualize_provider
from interpret.provider import InlineProvider
from interpret.version import __version__
# Change this to your custom CDN.
JS_URL = "https://unpkg.com/@interpretml/interpret-inline@{}/dist/interpret-inline.js".format(__version__)
set_visualize_provider(InlineProvider(js_url=JS_URL))
schema -> DROPPED
n_estimators -> outer_bags
holdout_size -> validation_size
scoring -> DROPPED
holdout_split -> DROPPED
main_attr -> mains
data_n_episodes -> max_rounds
early_stopping_run_length -> early_stopping_rounds
feature_step_n_inner_bags -> inner_bags
training_step_epsiodes -> DROPPED
max_tree_splits -> max_leaves
min_cases_for_splits -> DROPPED
min_samples_leaf -> ADDED (Minimum number of samples that are in a leaf)
binning_strategy -> binning
max_n_bins -> max_bins
n_estimators -> outer_bags
holdout_size -> validation_size
scoring -> DROPPED
holdout_split -> DROPPED
main_attr -> mains
data_n_episodes -> max_rounds
early_stopping_run_length -> early_stopping_rounds
feature_step_n_inner_bags -> inner_bags
training_step_epsiodes -> DROPPED
max_tree_splits -> max_leaves
min_cases_for_splits -> DROPPED
min_samples_leaf -> ADDED (Minimum number of samples that are in a leaf)
binning_strategy -> binning
max_n_bins -> max_bins
attribute_sets_ -> feature_groups_
attribute_set_models_ -> additive_terms_ (Pairs are now transposed)
model_errors_ -> term_standard_deviations_
main_episode_idxs_ -> breakpoint_iteration_[0]
inter_episode_idxs_ -> breakpoint_iteration_[1]
mean_abs_scores_ -> feature_importances_
EBM initialization arguments and public attributes will change in a near-future release.
Module "glassbox.ebm.research" now has purification utilities.
Major bug fix around EBM interactions. If you use interactions, please upgrade immediately. Part of the pairwise selection was not operating as expect
Changed classification metric exposed between C++/python for EBMs to log loss for future public use.
Added "main_attr" argument to EBM models. Can now select a subset of features to train main effects on.
Morris sensitivity now works for both predict and predict_proba on scikit models.
Visualize and compute platforms are now refactored and use an extension system. Details on use upcoming in later release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →