Releases: interpretml/interpret
Releases · interpretml/interpret
Version 0.4.2
v0.4.2 - 2023-05-31
Added
- support for specifying outer bags
Changed
- exceptions raised in the joblib child processes will be re-raised in the main process rather than be expressed as a TerminatedWorkerError
- small additional improvements in memory compression
- small improvements in maximizing the benefit of the privacy budget for Differentially Private EBMs
Fixed
- fixed segfault that was occurring in the Anaconda build
- fixed a bug that would prevent Differentially Private EBMs from using the exclude parameter
Version 0.4.1
[v0.4.1] - 2023-05-16
Added
- support for visualizations in streamlit
Fixed
- fixed dangling pointer issue in call to CalcInteractionStrength
Version 0.4.0
[v0.4.0] - 2023-05-11
Added
- alternative objective functions: poisson_deviance, tweedie_deviance, gamma_deviance, pseudo_huber, rmse_log (log link)
- greediness __init__ parameter that allows selecting a behavior between cyclic boosting and greedy boosting
- smoothing_rounds __init__ parameter
- added type hints to the EBM __init__ parameters and class attributes
- init_score parameter to allow boosting and prediction on top of a previous model
- multiclass support in merge_ebms
- ability to monotonize features using post process model editing
Changed
- default BaseLinear regressor is changed from Lasso to LinearRegression class
- placed limits on the amount of memory used to find interactions with high cardinality categoricals
Fixed
- validation_size of 0 is now handled by disabling early_stopping and using the final model
Breaking Changes
- replaced the __init__ param "mains" with "exclude"
- removed the binning __init__ param as this functionality was already fully supported in feature_types
- removed the unused zero_val_count attribute and n_samples attribute
- renamed the noise_scale_ attribute to noise_scale_boosting_ and added noise_scale_binning_ to DPEBMs
Version 0.3.2
[v0.3.2] - 2023-03-14
Fixed
- fix the issue that the shared library would only work on newer linux versions
Version 0.3.1
[v0.3.1] - 2023-03-13
Added
- Mac m1 support in conda-forge
- SPOTGreedy prototype selection (PR #392)
Fixed
- fix visualization when both cloud and non-cloud environments are detected (PR #210)
- fix ShapTree bug where it was treating classifiers as regressors
- resolve scikit-learn warnings occurring when models were trained using Pandas DataFrames
- change the defaults to prefer 'continuous' over 'nominal' when a feature has 1 or 2 unique float64 values
Breaking Changes
- in the blackbox and greybox explainers, change from accepting a predict_fn to
accepting either a model or a predict_fn - feature type 'categorical' has been renamed to 'nominal' for the remaining
feature_type parameters in the package (EBMs were already using 'nominal') - removed the unused sampler parameters to the Explainer classes
Version 0.3.0
[v0.3.0] - 2022-11-16
Added
- Full Complexity EBMs with higher order interactions supported: GA3M, GA4M, GA5M, etc...
3-way and higher-level interactions lose exact global interpretability, but retain exact local explanations
Higher level interactions need to be explicitly specified. No automatic FAST detection yet - Mac m1 support
- support for ordinals
- merge_ebms now supports merging models with interactions, including higher-level interactions
- added classic composition option during Differentially Private binning
- support for different kinds of feature importances (avg_weight, min_max)
- exposed interaction detection API (FAST algorithm)
- API to calculate and show the importances of groups of features and terms.
Changed
- memory efficiency: About 20x less memory is required during fitting
- predict time speed improvements. About 50x faster for Pandas CategoricalDType,
and varying levels of improvements for other data types - handling of the differential privacy DPOther bin, and non-DP unknowns has been unified by having a universal unknown bin
- bin weights have been changed from per-feature to per-term and are now multi-dimensional
- improved scikit-learn compliance: We now conform to the scikit-learn 1.0 feature names API by using
self.feature_names_in_ for the X column names and self.n_features_in_.
We use the matching self.feature_types_in_ for feature types, and self.term_names_ for the additive term names.
Fixed
- merge_ebms now distributes bin weights proportionally according to volume when splitting bins
- DP-EBMs now use sample weights instead of bin counts, which preserves privacy budget
- improved scikit-learn compliance: The following init attributes are no longer overwritten
during calls to fit: self.interactions, self.feature_names, self.feature_types - better handling of floating point overflows when calculating gain and validation metrics
Breaking Changes
- EBMUtils.merge_models function has been renamed to merge_ebms
- renamed binning type 'quantile_humanized' to 'rounded_quantile'
- feature type 'categorical' has been specialized into separate 'nominal' and 'ordinal' types
- EBM models have changed public attributes:
-
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)
-
- EBMPreprocessor attributes have been moved to the main EBM model class
-
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)
-
Version 0.2.7
v0.2.7 - 2021-09-23
Added
- Synapse cloud support for visualizations.
Fixed
- All category names in bar charts now visible for inline rendering (used in cloud environments).
- Joblib preference was previously being overriden. This has been reverted to honor the user's preference.
- Bug in categorical binning for differentially privatized EBMs has been fixed.
Version 0.2.6
v0.2.6 - 2021-07-20
Adde6
- Differential-privacy augmented EBMs now available as
interpret.privacy.{DPExplainableBoostingClassifier,DPExplainableBoostingRegressor}
. - Packages
interpret
andinterpret-core
now distributed via docker.
Changed
- Sampling code including stratification within EBM now performed in native code.
Fixed
- Computer provider with
joblib
can now support multiple engines with serialization support. - Labels are now all shown for inline rendering of horizontal bar charts.
- JS dependencies updated.
Version 0.2.5
v0.2.5 - 2021-06-21
Added
- Sample weight support added for EBM.
- Joint
predict_and_contrib
added to EBM where both predictions and feature contributions are generated in one call. - EBM predictions now substantially faster with categorical featured predictions.
- Preliminary documentation for all of
interpret
now public at https://interpret.ml/docs. - Decision trees now work in cloud environments (InlineRenderer support).
- Packages
interpret
andinterpret-core
now distributed via sdist.
Fixed
- EBM uniform binning bug fixed where empty bins can raise exceptions.
- Users can no longer include duplicate interaction terms for EBM.
- CSS adjusted for inline rendering such that it does not interfere with its hosting environment.
- JS dependencies updated.
Experimental
- Ability to merge multiple EBM models into one. Found in
interpret.glassbox.ebm.utils
.
Version 0.2.4
v0.2.4 - 2021-01-19
Fixed
- Bug fix on global EBM plots.
- Rendering fix for AzureML notebooks.
Changed
- JavaScript dependencies for inline renderers updated.