Skip to content

Releases: interpretml/interpret

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.

Version 0.2.3

14 Jan 01:23
Compare
Choose a tag to compare

v0.2.3 - 2021-01-13

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.

Fixed

  • Automated interaction detection uses low-resolution binning
    for both FAST and pairwise training.

Changed

  • EBM argument has been reduced from outer_bags=16 to outer_bags=8.
  • EBM now includes interactions by default from interactions=0 to interactions=10.
  • Algorithm treeinterpreter is now unstable due to upstream dependencies.
  • Automated interaction detection now operates from two-pass to one-pass.
  • Numeric approximations used in boosting (i.e. approx log / exp).
  • Some arguments have been re-ordered for EBM initialization.

Version 0.2.2

20 Oct 01:41
Compare
Choose a tag to compare

v0.2.2 - 2020-10-19

Fixed

  • Fixed bug on predicting unknown categories with EBM.
  • Fixed bug on max value being placed in its own bin for EBM pre-processing.
  • Numerous native fixes and optimizations.

Added

  • Added max_interaction_bins as argument to EBM learners for different sized
    bins on interactions, separate to mains.
  • New binning method 'quantile_humanized' for EBM.

Changed

  • Interactions in EBM now use their own pre-processing, separate to mains.
  • Python 3.5 no longer supported.
  • Switched from Python to native code for binning.
  • Switched from Python to native code for PRNG in EBM.

Version 0.2.1

07 Aug 22:05
Compare
Choose a tag to compare

v0.2.1 - 2020-08-07

Added

  • Python 3.8 support.

Changed

  • 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-7999.

Experimental (WIP)

  • Further cloud environment support.
  • Improvements for multiclass EBM global graphs.

Version 0.2.0

21 Jul 20:49
Compare
Choose a tag to compare

v0.2.0 - 2020-07-21

Breaking Changes

  • With warning, EBM classifier adapts internal validation size
    when there are too few instances relative to number of unique classes.
    This ensures that there is at least one instance of each class in the validation set.
  • Cloud Jupyter environments now use a CDN to fix major rendering bugs and performance.
    • CDN currently used is https://unpkg.com
    • If you want to specify your own CDN, add the following as the top cell
      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))
  • EBM has changed initialization parameters:
    • 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
      
  • EBM has changed public attributes:
    • 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_
      

Fixed

  • Internal fixes and refactor for native code.
  • Updated dependencies for JavaScript layer.
  • Fixed rendering bugs and performance issues around cloud Jupyter notebooks.
  • Logging flushing bug fixed.
  • Labels that are shaped as nx1 matrices now automatically transform to vectors for training.

Experimental (WIP)

  • Added support for AzureML notebook VM.
  • Added local explanation visualizations for multiclass EBM.

Version 0.1.22

27 Apr 23:51
Compare
Choose a tag to compare

v0.1.22 - 2020-04-27

Upcoming Breaking Changes

  • EBM initialization arguments and public attributes will change in a near-future release.
  • There is a chance Explanation API will change in a near-future release.

Added

  • Docstrings for top-level API including for glassbox and blackbox.

Fixed

  • Minor fix for linear models where class wasn't propagating for logistic.

Experimental

  • For research use, exposed optional_temp_params for EBM's Python / native layer.

Version 0.1.21

03 Apr 00:35
Compare
Choose a tag to compare

v0.1.21 - 2020-04-02

Added

  • Module "glassbox.ebm.research" now has purification utilities.
  • EBM now exposes "max_n_bins" argument for its preprocessing stage.

Fixed

  • Fix intercept not showing for local EBM binary classification.
  • Stack trace information exposed for extension system failures.
  • Better handling of sparse to dense conversions for all explainers.
  • Internal fixes for native code.
  • Better NaN / infinity handling within EBM.

Changed

  • Binning strategy for EBM now defaulted to 'quantile' instead of 'uniform'.

Version 0.1.20

12 Dec 03:20
Compare
Choose a tag to compare

v0.1.20 - 2019-12-11

Fixed

  • Major bug fix around EBM interactions. If you use interactions, please upgrade immediately.
    Part of the pairwise selection was not operating as expected and has been corrected.
  • Fix for handling dataframes when no named columns are specified.
  • Various EBM fixes around corner-case datasets.

Changed

  • All top-level methods relating to show's backing web server now use visualize provider directly.
    In theory this shouldn't affect top-level API usage, but please raise an issue in the event of failure.
  • Memory footprint heavily reduced for EBM at around 2-3 times.

Version 0.1.19

26 Oct 00:00
Compare
Choose a tag to compare

v0.1.19 - 2019-10-25

Changed

  • Changed classification metric exposed between C++/python for EBMs to log loss for future public use.
  • Warnings provided when extensions error on load.

Fixed

  • Package joblib added to interpret-core as "required" extra.
  • Compiler fixes for Oracle Developer Studio.
  • Removed undefined behavior in EBM for several unlikely scenarios.