Skip to content

Latest commit

 

History

History
284 lines (259 loc) · 12.4 KB

CHANGELOG.md

File metadata and controls

284 lines (259 loc) · 12.4 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and the versioning is mostly derived from Semantic Versioning.

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.

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'.

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.

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.

v0.1.18 - 2019-10-09

Added

  • Added "main_attr" argument to EBM models. Can now select a subset of features to train main effects on.
  • Added AzureML notebook VM detection for visualizations (switches to inline).

Fixed

  • Missing values now correctly throw exceptions on explainers.
  • Major visualization fix for pairwise interaction heatmaps from EBM.
  • Corrected inline visualization height in Notebooks.

Changed

  • Various internal C++ fixes.
  • New error messages around EBM if the model isn't fitted before calling explain_*.

v0.1.17 - 2019-09-24

Fixed

  • Morris sensitivity now works for both predict and predict_proba on scikit models.
  • Removal of debug print statements around blackbox explainers.

Changed

  • Dependencies for numpy/scipy/pandas/scikit-learn relaxed to (1.11.1,0.18.1,0.19.2, 0.18.1) respectively.
  • Visualization provider defaults set by environment detection (cloud and local use different providers).

Experimental (WIP)

  • Inline visualizations for show(explanation). This allows cloud notebooks, and offline notebook support. Dashboard integration still ongoing.

v0.1.16 - 2019-09-17

Added

  • Visualize and compute platforms are now refactored and use an extension system. Details on use upcoming in later release.
  • Package interpret is now a meta-package using interpret-core. This enables partial installs via interpret-core for production environments.

Fixed

  • Updated SHAP dependency to require dill.

Experimental (WIP)

  • Greybox introduced (explainers that only work for specific types of models). Starting with SHAP tree and TreeInterpreter.
  • Extension system now works across all explainer types and providers.

v0.1.15 - 2019-08-26

Experimental (WIP)

  • Multiclass EBM added. Includes visualization and postprocessing. Currently does not support multiclass pairs.

v0.1.14 - 2019-08-20

Fixed

  • Fixed occasional browser crash relating to density graphs.
  • Fixed decision trees not displaying in Jupyter notebooks.

Changed

  • Dash components no longer pinned. Upgraded to latest.
  • Upgrade from dash-table-experiment to dash-table.
  • Numerous renames within native code.

Experimental (WIP)

  • Explanation data methods for PDP, EBM enabled for mli interop.

v0.1.13 - 2019-08-14

Added

  • EBM has new parameter 'binning_strategy'. Can now support quantile based binning.
  • EBM now gracefully handles many edge cases around data.
  • Selenium support added for visual smoke tests.

Fixed

  • Method debug_mode now works in wider environments including WSL.
  • Linear models in last version returned the same graphs no matter the selection. Fixed.

Changed

  • Testing requirements now fully separate from default user install.
  • Internal EBM class has many renames associated with native codebase. Attribute has been changed to Feature.
  • Native codebase has many renames. Diff commits from v0.1.12 to v0.1.13 for more details.
  • Dependency gevent lightened to take 1.3.6 or greater. This affects cloud/older Python environments.
  • Installation for interpret package should now be 'pip install -U interpret'.
  • Removal of skope-rules as a required dependency. User now has to install it manually.
  • EBM parameter 'cont_n_bins' renamed to 'max_n_bins'.

Experimental (WIP)

  • Extensions validation method is hardened to ensure blackbox specs are closely met.
  • Explanation methods data and visual, require key of form ('mli', key), to access mli interop.

v0.1.12 - 2019-08-09

Fixed

  • Fixed EBM bug where 2 features with 1 state are included in the dataset.
  • Fixed EBM bug that was causing processing of attributes past an attribute combination with 0 useful attributes to fail.

v0.1.11 - 2019-08-09

Added

  • C++ testing framework added.
  • More granular options for training EBM (not public-facing, added for researchers)

Fixed

  • Improved POSIX compliance for build scripts.
  • Failure cases handled better for EBM in both Python/native layer.
  • Fixed a bug around dash relating to dependencies.
  • Removed dead code around web server for visualization.

Changed

  • For Python setup.py, requirements.txt now used for holding dependencies.
  • Directory structure changed for whole repository, in preparation for R support.
  • Native code further optimized with compiler flags.
  • Consistent scaling for EBM plots across all features.
  • For explanation's data method, behavior will be non-standard at key equals -1.
  • Testing suite for visual interface added via selenium.

Experimental (WIP)

  • Extension system for blackbox explainers added. Enables other packages to register into interpret.
  • Data standardization under way, currently for linear, LIME, SHAP where key equals -1 for data method.

v0.1.10 - 2019-07-16

Fixed

  • Fix for duplicated logs.
  • EBM now throws exception for multi-class (not supported yet).
  • Added requests as dependency.

Changed

  • File requirements.txt renamed to dev-requirements.txt
  • Native libraries' names now start with 'lib_' prefix.
  • Adjusted return type for debug_mode method to provide logging handler.
  • EBM native layer upgraded asserts to use logging.
  • EBM native layer hardened for edge case data.
  • Adjustments to dev dependencies.
  • Method debug_mode defaults log level to INFO.

v0.1.9 - 2019-06-14

Added

  • Added method debug_mode in develop module.
  • Connected native logging to Python layer.
  • Native libraries can now be in release/debug mode.

Fixed

  • Increased system compatibility for C++ code.

Changed

  • Debug related methods expose memory info in human readable form.
  • Clean-up of logging levels.
  • Various internal C+ fixes.

v0.1.8 - 2019-06-07

Fixed

  • Fixed calibration issue with EBM.
  • Method show_link fix for anonymous explanation lists.

Changed

  • Method show_link now takes same arguments as show.
  • Better error messages with random port allocation.
  • More testing for various modules.
  • Various internal C+ fixes.

v0.1.7 - 2019-06-03

Added

  • Added show_link method. Exposes the URL of show(explanation) as a returned string.

Fixed

  • Fixed shutdown_show_server, can now be called multiple times without failure.

Changed

  • Hardened status_show_server method.
  • Testing added for interactive module.
  • Removal of extra memory allocation in C++ code for EBM.
  • Various internal C++ fixes.

v0.1.6 - 2019-05-31

Added

  • Integer indexing for preserve method.
  • Public-facing CI build added. Important for pull requests.

Changed

  • Visual-related imports are now loaded when visualize is called for explanations.

v0.1.5 - 2019-05-30

Added

  • Added preserve method. Can now save visuals into notebook/file - does not work with decision trees.
  • Added status_show_server method. Acts as a check for server reachability.
  • Exposed init_show_server method. Can adjust address, base_url, etc.
  • Added print_debug_info method in develop module. Important for troubleshooting/bug-reports.

Fixed

  • Various internal C++ fixes.
  • Minor clean up on example notebooks.

Changed

  • Additional dependency required: psutil.
  • Test refactoring.

v0.1.4 - 2019-05-23

Added

  • Root path for show server now has a light monitor page.
  • Logging registration can now print to both standard streams and files.

Fixed

  • Error handling for non-existent links fixed for visualization backend.
  • In some circumstances, Python process will hang. Resolved with new threading.

Changed

  • Unpinning scipy version, upstream dependencies now compatible with latest.
  • Show server is now run by a thread directly, not via executor pools.
  • Re-enabled notebook/show tests, new threading resolves hangs.
  • Small clean-up of setup.py and Azure pipelines config.

v0.1.3 - 2019-05-21

Added

  • Model fit can now support lists of lists as instance data.
  • Model fit can now support lists for label data.

Fixed

  • Various internal C++ fixes.

Changed

  • Removed hypothesis as public test dependency.
  • C++ logging introduced (no public access).

v0.1.2 - 2019-05-17

Added

  • EBM can now disable early stopping with run length set to -1.
  • EBM tracking of final episodes per base estimator.

Fixed

  • Pinning scipy, until upstream dependencies are compatible.

Changed

  • Clean-up of EBM logging for training.
  • Temporary disable of notebook/show tests until CI environment is fixed.

v0.1.1 - 2019-05-16

Added

  • Added server shutdown call for 'show' method.

Fixed

  • Axis titles now included in performance explainer.
  • Fixed hang on testing interface.

v0.1.0 - 2019-05-14

Added

  • Added port number assignments for 'show' method.
  • Includes codebase of v0.0.6.

Changed

  • Native code build scripts hardened.
  • Libraries are statically linked where possible.
  • Code now conforms to Python Black and its associated flake8.