All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- complement type hints
- add python package structure
- add verbose
- make scoring more efficient
- add local model explainer module
- reset_index dataframe in discretize() fct in case input data was shuffeled, e.g. from train_test_split. Maight case troubles in explainer
- correct get_explanation() method of Explainer class (line 153)
- df_orig had different column order than nz_freq. This lead to the expaliner assigning the wrong values to the variable names in expalnation column (output of Explainer)
- correct mask in get_feature_names_out() method of onehot_encoder class in utils.py. String search did not work correctly and lead to wrong indexing in pmf's of explainer.py -> make string
- change logical negation from '~' to 'not' in _make_explanation_string() of explainer.py. 'if ~any(comp):' leads to unexpected outcome.
- Capitalize discretize class
- add global model explanations
- once most relevant features are determined for local explanations, compute univariate ECDFs for each continuous feature (based on org. scales). Then compute the empirical (1-p)% confidence interval of the observations. If an observation is not an element of that interval consider it as relevant (w.r.t. anomaly score expl.)
- Readme.md change
- If user does not specify a maximum number of bins in the explainer, use a square root of sampe size as a default rule
- Use vectorization in transform method of one_hot_encoder of utils.py. Yields favorable run time improvement
- Change installation process from setup.py to suing pyproject.toml
- Update Python version and related package dependencies
- Update README to use uv for setup
- Add more documentation