This release introduces version 0.6.0 of infomeasure, focusing on the implementation of specialized Kraskov-Stoegbauer-Grassberger (KSG) variants, significant performance optimizations through vectorized neighbor counting, and enhanced flexibility for ordinal estimators and joint conditional variables.
Breaking Changes
- Neighbor Counting Logic: The default behavior for KSG-based estimators (MI, CMI, TE, CTE) has been updated to strictly follow Type I logic (strict inequality
dist < epsfor marginal counts). This ensures consistency with the original KSG formulation but may lead to different results compared to previous versions on datasets with many identical values.
Key Highlights
KSG Variants and Robustness
- Type I & II Support: Added the
ksg_idparameter to all KSG-based estimators (MI, CMI, TE, CTE) andKozachenkoLeonenkoEntropyEstimator, allowing users to switch between the original KSG (Type I) and the modified version (Type II). #14 #15 - Standardized Metrics: Ensured consistent use of the Minkowski metric across joint and marginal spaces in all KNN-based estimators.
Estimator Improvements
- Joint Conditional Variables: Discrete CMI and CTE estimators now natively support multidimensional conditioning variables. Users can pass a tuple or list of variables as the
condparameter, which is automatically reduced to a single joint space. #16 - Ordinal Estimator Enhancements: Added the
step_sizeparameter for state-space reconstruction in ordinal MI and TE estimators, providing more control over temporal embedding.
Installation
You can install or upgrade the package using:
pip install infomeasure --upgradeDocumentation
For complete details and usage examples, visit the documentation.
Changelog: Full changelog
All Commits: 0.5.1...0.6.0