Skip to content

v0.8.0

Compare
Choose a tag to compare
@jklaise jklaise released this 26 Sep 10:27
· 156 commits to master since this release

v0.8.0 (2022-09-26)

Full Changelog

Added

  • New feature PartialDependence and TreePartialDependence explainers implementing partial dependence (PD) global explanations. Also included is a plot_pd utility function for flexible plotting of the resulting PD plots (docs, #721).
  • New exceptions.NotFittedError exception which is raised whenever a compulsory call to a fit method has not been carried out. Specifically, this is now raised in AnchorTabular.explain when AnchorTabular.fit has been skipped (#732).
  • Various improvements to docs and examples (#695, #701, #698, #703, #717, #711, #750, #784).

Fixed

  • Edge case in AnchorTabular where an error is raised during an explain call if the instance contains a categorical feature value not seen in the training data (#742).

Changed

  • Improved handling of custom grid_points for the ALE explainer (#731).
  • Renamed our custom exception classes to remove the verbose Alibi* prefix and standardised the *Error suffix. Concretely:
    • exceptions.AlibiPredictorCallException is now exceptions.PredictorCallError
    • exceptions.AlibiPredictorReturnTypeError is now exceptions.PredictorReturnTypeError. Backwards compatibility has been maintained by subclassing the new exception classes by the old ones, but these will likely be removed in a future version (#733).
  • Warn users when TreeShap is used with more than 100 samples in the background dataset which is due to a limitation in the upstream shap package (#710).
  • Minimum version of scikit-learn bumped to 1.0.0 mainly due to upcoming deprecations (#776).
  • Minimum version of scikit-image bumped to 0.17.2 to fix a possible bug when using the slic segmentation function with AnchorImage (#753).
  • Maximum supported version of attrs bumped to 22.x (#727).
  • Maximum supported version of tensorflow bumped to 2.10.x (#745).
  • Maximum supported version of ray bumped to 2.x (#740).
  • Maximum supported version of numba bumped to 0.56.x (#724).
  • Maximum supported version of shap bumped to 0.41.x (#702).
  • Updated shap example notebooks to recommend installing matplotlib==3.5.3 due to failure of shap plotting functions with matplotlib==3.6.0 (#776).

Development

  • Extend optional dependency checks to ensure the correct submodules are present (#714).
  • Introduce pytest-custom_exit_code to let notebook CI pass when no notebooks are selected for tests (#728).
  • Use UTF-8 encoding when loading README.md in setup.py to avoid a possible failure of installation for some users (#744).
  • Updated guidance for class docstrings (#743).
  • Reinstate ray tests (#756).
  • We now exclude test files from test coverage for a more accurate representation of coverage (#751). Note that this has led to a drop in code covered which will be addressed in due course (#760).
  • The Python 3.10.x version on CI has been pinned to 3.10.6 due to typechecking failures, pending a new release of mypy (#761).
  • The test_changed_notebooks workflow can now be triggered manually and is run on push/PR for any branch (#762).
  • Use codecov flags for more granular reporting of code coverage (#759).
  • Option to ssh into Github Actions runs for remote debugging of CI pipelines (#770).
  • Version of sphinx bumped to 5.x but capped at <5.1.0 to avoid CI failures (#722).
  • Version of myst-parser bumped to 0.18.x (#693).
  • Version of flake8 bumped to 5.x (#729).
  • Version of ipykernel bumped to 6.x (#431).
  • Version of ipython bumped to 8.x (#572).
  • Version of pytest bumped to 7.x (#591).
  • Version of sphinx-design bumped to 0.3.0 (#739).
  • Version of nbconvert bumped to 7.x (#738).