Releases: NetherlandsForensicInstitute/lir
Releases · NetherlandsForensicInstitute/lir
v1.3.2
Immutable
release. Only release title and notes can be modified.
Summary (v1.3.1 -> v1.3.2)
Core
- Broader refactor around
LLRDataandFeatureData, now used more consistently across bounders, KDE, calibrators, and experiments. - Updated
LRSysteminterface (removedname, generalised toInstanceData, aligned withTransformer). - Added
Nbounderto registry and introduced data parameterisation.
Configuration & Experiments
jobsmoved from YAML to CLI.- Experiment YAML:
experimentsis now a list. - Outputs and LR system configs now written to descriptively named folders.
- Added
intermediate_output, folder hyperparameter, and validation for illegal LR parameters.
Data & Parsers
- CSV parsers renamed and improved (
extra_fields, warnings, clearer debug CSV columns). - Added LLR consistency checks and fixed
FeatureDataindexing.
Algorithms & Components
- Replaced
AbsDiffTransformerwithElementWiseDifference. - Logit calibrator now uses
FeatureDataand added to registry. - KDE refactored for
FeatureData/LLRData. - Plot improvements (
plot_name, optional “after PAV” removal, y-range). - Removed
calibrator_fit()plot.
Fixes
- Fixed LLR concatenation with mismatched bounds, two-level LR parameter passing, and
llr_boundsbecomingNone. - Multiple failing tests corrected; added extra checks in metrics and YAML handling.
Dependencies & Runtime
- Removed
pandas; movedrequeststo default deps. - Updated packages; Python 3.12 support.
Quality & Docs
- Typing improvements, faster tests, expanded Ruff checks.
- Migrated to Sphinx with extensive docstrings and new registry/guides docs.
- General documentation and text improvements.
New contributor: @deflaaf
v1.3.1
Immutable
release. Only release title and notes can be modified.
What's Changed
- Allow for parameters in plot types / add plot_type to tippett by @PimMeulensteen in #166
- Add llr_overestimation to registry, and change llr-overestimation to use LLRData by @PimMeulensteen in #167
- Recalculate pdm.lock file by @JoBraNFI in #179
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Immutable
release. Only release title and notes can be modified.
What's Changed
- Update README.md (3.10 -> 3.11) by @PimMeulensteen in #68
- refactor: update plotting functions to use LLRData instead of ndarray by @PimMeulensteen in #67
- Create Aggregation plots by @PimMeulensteen in #69
- added check for numeric data on FeatureData validation by @wowtor in #71
- Add tqdm to bootstrapping by @PimMeulensteen in #75
- Fix error in shape in KDE by @PimMeulensteen in #77
- Adding a test that corresponds to calculation examples from a publication by @LvdHam in #64
- added attribute
source_idstoInstanceDataby @wowtor in #72 - Rename 'fix' to 'fix-all' in pyproject.toml by @PimMeulensteen in #81
- Refactor KDE bandwidth parsing to use match/case by @JoBraNFI in #76
- modified aggregation API to grant Aggregation objects access to the model by @wowtor in #82
- fix: pairing glass data causes numpy error (invalid dimensions) by @wowtor in #101
- fix broken configuration in optuna.yaml by @wowtor in #100
- raise an error when trying to do an substitution of a non-existent field by @wowtor in #99
- LLRData: extend validation to ensure that all labels are 0 or 1 by @wowtor in #97
- Combine aggregated metrics+visualization to single 'output' key in YAML by @JoBraNFI in #84
- Persistence: implement serialization and deserialization methods for LR model persistence by @wowtor in #83
- LLRBounder: set parent class to
Transformerby @wowtor in #98 - fix: logger name should match the package name by @wowtor in #106
- Create cllr-cal by @PimMeulensteen in #124
- Rename multiple symbols by @PimMeulensteen in #123
- Create a default for columns, namely
cllrandcllr_minby @PimMeulensteen in #126 - Add setup-file-path and current path to sys.path, and add logging. by @PimMeulensteen in #129
- Rename the class DebugPipeline to LoggingPipeline #127 by @PimMeulensteen in #130
- Copy YAML to output directoy when running experiments as reference by @JoBraNFI in #131
- Create test for importing external modules. by @PimMeulensteen in #102
- FeatureData: change the (somewhat unclearly defined) roles of source_ids and labels by @wowtor in #132
- data/models.py: standardize FeatureDatabug #96 by @wowtor in #134
- registry: fix logging statements by @wowtor in #139
- data/data_strategies: fix docstrings by @wowtor in #140
- data: implemented pre-defined train/test split by @wowtor in #141
- data: implemented generic parser for CSV files by @wowtor in #142
- Add Project Documentation (github pages) + Contributor Guidelines by @JoBraNFI in #128
- logging: setup logging before parsing experiments by @wowtor in #159
- renamed class DataSet to DataProvider (in line with documentation, registry, etc) by @wowtor in #155
- csv parser: add a sub class that supports retrieving data from a URL by @wowtor in #158
- Remove data strategy from glass loader by @wowtor in #156
- fix: build pipeline fails by @wowtor in #161
- improve error messages by @wowtor in #163
- remove parameters attribute from class LRSystem by @wowtor in #162
- Calculate invariance bounds to registry.yaml by @PimMeulensteen in #171
- PAV-plot: add tick at 0 and x-line/y-line at 0/0 #73 by @PimMeulensteen in #153
- fix formatting error by @PimMeulensteen in #173
- Relax transformer api by @wowtor in #165
- Implement parallel execution for experiments by @PimMeulensteen in #170
- Rename csv to metrics in output: #116 by @PimMeulensteen in #152
- Keuzehulp by @wowtor in #135
- Add upper/lower bounds metrics + Change metrics to use LLRData by @PimMeulensteen in #154
- Rework data by @wowtor in #157
Full Changelog: v1.2.0...v1.3.0
v1.2.0
New features
- implemented bootstrapping algorithm, adding confidence intervals for LLRs
- plotting: LLR confidence interval plot, showing the interval as a function of the LLR
- pipeline: pipelines can be used as modules/transformers
- pipeline: pipelines can be replaced by any other module; this allows for using custom pipelines
- pipeline: implemented debugging pipeline that writes intermediate results to a CSV file
Other changes
- ELUB: use log10-base for LRs and step size; base range for threshold on dataset sizes
- KDE: fix: kde should support 2d input arrays with one column (fixes #51)
- pairing: update pairing methods to properly handle extra fields
- package: removed dependency: xgboost (not actually used)
- package: run tests on python 3.14
Full Changelog: v1.1.0...v1.2.0
Version 1.1.0
New features:
- implemented LLR overestimation metric and plotting function;
- implemented boostrapping algorithm:
BootstrapAtData, and added an optional interval to LLR values; - improved PAV plots with labels and colours;
Breaking changes:
- require python >= 3.11
- metric functions, plotting functions, calibrators, etc. all use LLRs throughout the code;
- lir command line script takes the experiment setup yaml file as a positional argument (was: --setup);
- introduced data classes:
FeatureData,LLRDataandPairedFeatureData: the data classes make the data type more explicit and also do basic validation (was: tuple of ndarray);
v1.0.0: redesigned from scratch
Redesign of lir
NB: The new release is not backwards compatible with the 0.0.x version releases of lir, as it might introduce breaking changes.
The original lir has been extended with several new modules, algorithms and strategies to devise LR systems.
New methods were added to evaluate LR systems.
The new version of lir provides a CLI command to run (a) given LR experiment(s).
Other changes
- Switch from pip to PDM as package manager
- Introduce
pyproject.toml
Notes
- The original code in this repository has been moved to https://github.com/NetherlandsForensicInstitute/lir-deprecated