Releases: interpretml/interpret
Releases · interpretml/interpret
Version 0.5.0
v0.5.0 - 2023-12-13
Added
- added support for AVX-512 in PyPI installations to improve fitting speed
- introduced an option to disable SIMD optimizations through the debug_mode function in python
- exposed public utils.link_func and utils.inv_link functions
Changed
- the interpret-core package now installs the dependencies required to build and predict EBMs
by default without needing to specify the [required] pip install flag - experimental/private support for OVR multiclass EBMs
- added bagged_intercept_ attribute to store the intercepts for the bagged models
Fixed
- resolved an issue in merge_ebms where the merge would fail if all EBMs in the
merge contained features with only one bin (issue #485) - resolved multiple future warnings from other packages
Breaking Changes
- changed how monoclassification (degenerate classification with 1 class) is expressed
- replaced predict_and_contrib function with simpler eval_terms function that returns
only the per-term contribution values. If you need both the contributions and predictions use:
interpret.utils.inv_link(ebm.eval_terms(X).sum(axis=1) + ebm.intercept_, ebm.link_) - separate to_json into to_jsonable (for python objects) and to_json (for files) functions
- create a new link function string for multiclass that is separate from binary classification
- for better scikit-learn compliance, removed the decision_function from the ExplainableBoostingRegressor
Version 0.4.4
v0.4.4 - 2023-08-26
Added
- added the following model editing functions: copy, remove_terms, remove_features, sweep, scale
- added experimental support for a JSON exporter function: to_json
Version 0.4.3
v0.4.3 - 2023-08-04
Changed
- 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 classification and 1.3x faster for RMSE regression - Changed from using 64-bit floats to using 32-bit floats internally. Regression performed on datasets with large
targets that sum to greater than 3.4E+38 will overflow.
Fixed
- Fixed an issue with the monotonize function that would occur when monotonizing a feature with missing values
- Resolved issue where excluding the 1st feature would cause an exception
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.