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.fitto returnself, matching the scikit-learn estimator convention: #1622 by Nithin.Fixed a polars dataframe-interchange protocol deprecation in
AnnotatedMetricFunctionand corrected the 1D-array branch at the same time: #1639 by Tahar Allouche.Added a
MANIFEST.inso thatrequirements*.txtare included in the source distribution, and switched the build pipeline to the PEP 517buildfrontend: #1628 by Christian Heimes.Excluded the
testandtest_othermlpackagesdirectories from thefairlearnpackaging distribution: #1644 by Parul Gupta.
Narwhals integration#
Made
postprocessing/_tradeoff_curve_utilities.pydataframe agnostic through Narwhals: #1553 by Francesco Bruzzesi.Made
GroupFeaturedataframe agnostic through Narwhals: #1546 by Francesco Bruzzesi.
Documentation#
Added a GridSearch algorithm overview and usage example to the reductions user guide: #1622 by Nithin.
Added a usage example for
mean_predictionin the advancedMetricFrameguide: #1637 by @3Paradox.Improved docstrings for base metrics,
DisaggregatedResultmethods, andMetricFramegroup methods: #1621 by Nithin.Added
versionaddedandversionchangeddirectives to the public docstrings infairlearn.metrics: #1640 by Bader.Corrected the true-positive-rate formula in the
equal_opportunity_differenceandequal_opportunity_ratiodocstrings (fromE[h(X) | A=a]toP[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#
Removed support for Python 3.9 and added support for Python 3.13: #1592 by Tamara Atanasoska.
Added support for scipy 1.16: #1596 by Tamara Atanasoska.
Raised the minimum supported
scikit-learnto 1.5.0 and the pinnedtorchinrequirements-min.txtto 2.8.0 to clear Dependabot security advisories: #1645 by Roman Lutz.Removed an unused
nameargument fromGroupFeature: #1599 by Tahar Allouche.Avoided a
sysmodule patching leak in the test suite: #1600 by Tahar Allouche.Removed a Pillow deprecation warning by requiring
matplotlib>=3.10.5: #1618 by Ibim Braide.Fixed a
DataFramefragmentationPerformanceWarningin the reductions module: #1631 by BALOGUN DAVID TAIWO.Closed Matplotlib figures before/after tests to avoid a deprecation warning: #1603 by @lolashaffy.
Sped up the reductions test suite: #1574 by Tahar Allouche.
Sped up the preprocessing test suite: #1573 by Tahar Allouche.
Sped up the metrics test suite: #1572 by Tahar Allouche.
Improved unit tests for
PrototypeRepresentationLearner: stopped overriding parametrizedsensitive_featuresvalues inside the test bodies and added coverage for multi-dimensional sensitive features: #1623 by Tahar Allouche.Cached OpenML datasets in CI runs: #1598 by Francesco Bruzzesi.
Added a Narwhals pytest marker: #1597 by Francesco Bruzzesi.