v0.14.0#

Summary#

This release updates the supported Python range (drops 3.9, adds 3.13) and adds compatibility with scipy 1.16. It continues the Narwhals integration work in the postprocessing module and GroupFeature, fixes a polars dataframe-interchange deprecation, and corrects the handling of degenerate sensitive feature values in PrototypeRepresentationLearner.

Bug fixes#

  • Fixed handling of single-group (degenerate) sensitive features in PrototypeRepresentationLearner.fit, which previously failed during the fairness-error computation: #1626 by BALOGUN DAVID TAIWO.

  • Changed GridSearch.fit to return self, matching the scikit-learn estimator convention: #1622 by Nithin.

  • Fixed a polars dataframe-interchange protocol deprecation in AnnotatedMetricFunction and corrected the 1D-array branch at the same time: #1639 by Tahar Allouche.

  • Added a MANIFEST.in so that requirements*.txt are included in the source distribution, and switched the build pipeline to the PEP 517 build frontend: #1628 by Christian Heimes.

  • Excluded the test and test_othermlpackages directories from the fairlearn packaging distribution: #1644 by Parul Gupta.

Narwhals integration#

Documentation#

  • Added a GridSearch algorithm overview and usage example to the reductions user guide: #1622 by Nithin.

  • Added a usage example for mean_prediction in the advanced MetricFrame guide: #1637 by @3Paradox.

  • Improved docstrings for base metrics, DisaggregatedResult methods, and MetricFrame group methods: #1621 by Nithin.

  • Added versionadded and versionchanged directives to the public docstrings in fairlearn.metrics: #1640 by Bader.

  • Corrected the true-positive-rate formula in the equal_opportunity_difference and equal_opportunity_ratio docstrings (from E[h(X) | A=a] to P[h(X)=1 | A=a, Y=1]): #1605 by Ophy Boamah Ampoh.

  • Removed the outdated Fairlearn repository overview page from the contributor guide: #1606 by @Anish8800.

  • Fixed minor spacing and punctuation in docs/user_guide/fairness_in_machine_learning.rst: #1611 by @Anish8800.

  • Updated the Maintainers link in the README to point directly to the Maintainers section of the website instead of the general About page: #1601 by @itz8bitstudios.

Other improvements#