alibi
alibi copied to clipboard
Algorithms for explaining machine learning models
This is a WIP PR addressing #289. For applying integrated gradients on raw text, I've written a new class `IntegratedGradientsText` which takes an additional object of type `TextTransformer`. The `TextTransformer`...
Builds on top of the old `interop-refactor` branch. Goals: - (v0): Test and replace the current `counterfactual.py` module with the new modular implementation on this branch whilst simplifying some of...
Partially addresses #488 by using `beartype` to do runtime type checking. Currently annotated part of the public API (specifically, explainers in the `alibi.explainers` subpackage and methods `__init__`, `fit`, `explain`). The...
In light of https://github.com/SeldonIO/alibi/pull/511#issuecomment-950861810 let's test `pydantic` approach to runtime type validaton.
Updates the requirements on [twine](https://github.com/pypa/twine) to permit the latest version. Changelog Sourced from twine's changelog. Twine 4.0.0 (2022-03-31) Features ^^^^^^^^ Drop support for Python 3.6. ([#869](https://github.com/pypa/twine/issues/869) <https://github.com/pypa/twine/issues/869>_) Use Rich to...
The constants come from PAC lower bounds proved in the paper: http://proceedings.mlr.press/v30/Kaufmann13.html
Updates the requirements on [sphinx](https://github.com/sphinx-doc/sphinx) to permit the latest version. Release notes Sourced from sphinx's releases. v5.1.0 Changelog: https://www.sphinx-doc.org/en/master/changes.html Changelog Sourced from sphinx's changelog. Release 5.1.0 (released Jul 24, 2022)...
Do you have any method for seeing which feature has the most importance/changeability power in a counterfactual? (Which features do more to move the counterfactual towards the decision boundary) Do...
Implementation of the partial dependence (PD) and individual conditional expectation (ICE) leveraging`sklearn` implementation. Some functionalities that it includes * PD and ICE for numerical features * PD and ICE for...
``` ~/.local/lib/python3.6/site-packages/alibi/explainers/anchor_tabular.py in perturbation(self, anchor, num_samples) 278 ) 279 nb_partial_anchors = np.array([len(n_records) for n_records in reversed(partial_anchor_rows)]) --> 280 coverage = nb_partial_anchors[-1] / self.n_records 281 282 # if there are enough...