Skip to content

0.0.10

Choose a tag to compare

@jaydu1 jaydu1 released this 04 Aug 04:36
· 9 commits to main since this release
f86d696

[0.0.10] - 2026-08-04

Removed

  • TreeExplainer, LinearExplainer, and KernelExplainer: these were placeholders whose __call__ raised NotImplementedError, and they are gone from fdfi.explainers along with their API pages, user-guide sections, and tests. The three implemented variants (OTExplainer, EOTExplainer, FlowExplainer) are model-agnostic — they wrap any callable f(X) -> y — so tree ensembles, linear models, and arbitrary black boxes are already covered without a model-specific class. Breaking: code that imported these names now raises ImportError instead of failing later at call time.

Fixed

  • Documentation that described parameters which do not exist: docs/user_guide/statistical_inference.rst told users to call OTExplainer(..., crossfit=True, n_folds=5). Neither parameter exists; both were absorbed by **kwargs, so users got no error and no cross-fitting. Rewritten to use the real Crossfitting wrapper. Three further examples constructed the unexported base Explainer with the internal fit_flow flag.
  • Math rendering: concepts.rst used doubled backslashes inside :math: roles, so MathJax read \\ as a line break and rendered the UEIF equation as garbled multi-line text; api/explainers.rst used $...$ math, which is a MyST extension and is inert in reStructuredText. choosing_explainer.rst had a section heading with no underline, which filed four hyperparameter subsections under the wrong parent.
  • SCPI definition in the tutorials: flow_explainer.ipynb defined SCPI as Var_b[f(X̃)], contradicting concepts.rst, the 0.0.9 changelog, and the notebook's own output. Now stated in loss-general form with phi_SCPI = phi_CPI + Var_b as the Sobol connection.
  • Broken packaging extras: the docs extra could not build the documentation (missing myst-parser, nbsphinx, ipykernel), and all = ["dev", "flow", "docs"] resolved to three unrelated PyPI distributions rather than this project's own extras. docs now also carries xlrd, needed to re-execute the CTG case study.
  • UEIF is expanded consistently as "uncentered efficient influence function"; the FAQ no longer describes flow-based and entropic OT as the same method.

Changed

  • Case Study 2 is now a Cardiotocography (CTG) analysis, adapted from examples/ctg_analysis_demo.ipynb and restructured to parallel Case Study 1. It replaces the HIV Flow case study and demonstrates FlowExplainer on 21 collinear continuous features.
  • All tutorial notebooks re-executed against the current package.
  • docs/conf.py derives release from fdfi.__version__ rather than a hardcoded literal, and sets html_baseurl for canonical links.
  • Read the Docs URL added to README.md and pyproject.toml; the previous Documentation URL pointed back at the GitHub repository.