Skip to content

Releases: interpretml/interpret

Version 0.4.2

01 Jun 18:42
Compare
Choose a tag to compare

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

16 May 23:46
Compare
Choose a tag to compare

[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

14 May 23:04
Compare
Choose a tag to compare

[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

14 Mar 23:02
Compare
Choose a tag to compare

[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

14 Mar 20:41
Compare
Choose a tag to compare

[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

19 Nov 20:49
Compare
Choose a tag to compare

[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

23 Sep 20:41
Compare
Choose a tag to compare

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

20 Jul 21:49
Compare
Choose a tag to compare

v0.2.6 - 2021-07-20

Adde6

  • Differential-privacy augmented EBMs now available as interpret.privacy.{DPExplainableBoostingClassifier,DPExplainableBoostingRegressor}.
  • Packages interpret and interpret-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

22 Jun 01:20
Compare
Choose a tag to compare

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 and interpret-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

20 Jan 02:12
Compare
Choose a tag to compare

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.