Skip to content

0.6.0: KSG Variants, Performance Optimizations, and Ordinal Estimator Improvements

Choose a tag to compare

@cbueth cbueth released this 26 Feb 21:06
d59c012

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 < eps for 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_id parameter to all KSG-based estimators (MI, CMI, TE, CTE) and KozachenkoLeonenkoEntropyEstimator, 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 cond parameter, which is automatically reduced to a single joint space. #16
  • Ordinal Estimator Enhancements: Added the step_size parameter 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 --upgrade

Documentation

For complete details and usage examples, visit the documentation.

Changelog: Full changelog

All Commits: 0.5.1...0.6.0