Releases: Trusted-AI/AIF360
v0.6.1
AIF360 v0.6.1 Release Notes
Highlights
- New detector:
FACTS
/FACTS_bias_scan
What's Changed
- Fairness Aware Counterfactuals for Subgroups by @phantom-duck in #457
- Avoiding uses of np.float because that has been removed from the latest numpy. by @hirzel in #521
- Fixed Example Google Style Python Docstrings URL by @ShorthillsAI in #522
- Add FACTS import warnings by @hoffmansc in #524
- Bump version -> 0.6.1 by @hoffmansc in #525
New Contributors
- @phantom-duck made their first contribution in #457
- @hirzel made their first contribution in #521
- @ShorthillsAI made their first contribution in #522
Full Changelog: v0.6.0...v0.6.1
v0.6.0
AIF360 v0.6.0 Release Notes
Highlights
- New algorithms:
SenSeI
/SenSR
DeterministicReranking
- New metric:
ot_distance
Backwards-Incompatible Changes
- Dropped support for
bias_scan
fromaif360.metrics
/aif360.sklearn.metrics
- Minor changes to MEPS files
What's Changed
- Add python 3.10 for testing in ci.yml by @hakimamarullah in #368
- Allow binder to automatically build environment by @hoffmansc in #395
- Update to demo_lime notebook to run out of the box (and in Google collab) by @anupamamurthi in #396
- Fix error in metric_json_explainer.consistency() by @hoffmansc in #400
- Solving issue #381, to run demo_new_features notebook in Colab by @ivesulca in #402
- logic error in disparate_impact and statistical_parity_difference #292 by @sreeja-g in #407
- Modify example notebooks to work in Google colab #378 by @Yashaswini-Viswanath in #405
- Solving second part of issue #381 by @ivesulca in #409
- Get notebooks in examples/sklearn/ to work in Google colab (Part 2/3) [#380] by @dharmod in #403
- average predictive value difference metric implementation #376 by @sreeja-g in #410
- Add code coverage checks with
pytest-cov
by @aitorres in #412 - Initial inFairness algorithms (SenSeI/SenSR) by @hoffmansc in #340
- Remove turtle module import by @gkumbhat in #415
- Contribution Guide by @hoffmansc in #427
- Bump versions by @hoffmansc in #458
- Fix typo in GridSearchReduction by @haas-christian in #452
- Add a bias detector based on optimal transport by @jmarecek in #434
- Issue 265 privileged class bank dataset by @joosjegoedhart in #449
- Fix typo. by @gowriaddepalli in #470
- Added methods for equalized odds difference by @divyagaddipati in #477
- Update data_preproc_functions.py to solve conversion to float issue by @baraldian in #498
- Add methods for dealing with fairness in rankings by @andrewklayk in #461
- Update homepage URL by @hoffmansc in #503
- Remove deprecated bias scan metrics by @hoffmansc in #504
- Replace deprecated
if_delegate_has_method
withavailable_if
by @hoffmansc in #511 - Fix tests failing due to int columns by @hoffmansc in #513
- Change source for Law School GPA dataset by @hoffmansc in #510
- Install R dependencies by @hoffmansc in #514
- Update sphinx requirement by @hoffmansc in #512
- Bump jinja2 from 3.0.3 to 3.1.3 by @dependabot in #507
- add .readthedocs.yaml by @hoffmansc in #516
- Fix .readthedocs.yaml and bump version by @hoffmansc in #517
- Fix sphinx_rtd_theme by @hoffmansc in #518
- Rename master -> main by @hoffmansc in #515
- Remove
requests
dependency by @hoffmansc in #519 - Include
fairadapt.R
in package by @hoffmansc in #520
New Contributors
- @hakimamarullah made their first contribution in #368
- @anupamamurthi made their first contribution in #396
- @ivesulca made their first contribution in #402
- @sreeja-g made their first contribution in #407
- @Yashaswini-Viswanath made their first contribution in #405
- @dharmod made their first contribution in #403
- @aitorres made their first contribution in #412
- @gkumbhat made their first contribution in #415
- @haas-christian made their first contribution in #452
- @jmarecek made their first contribution in #434
- @joosjegoedhart made their first contribution in #449
- @gowriaddepalli made their first contribution in #470
- @divyagaddipati made their first contribution in #477
- @baraldian made their first contribution in #498
- @andrewklayk made their first contribution in #461
Full Changelog: v0.5.0...v0.6.0
v0.5.0
AIF360 v0.5.0 Release Notes
Highlights
- New algorithms:
- FairAdapt
- New metrics:
- MDSS
class_imbalance
,kl_divergence
,conditional_demographic_disparity
intersection
andone_vs_rest
meta-metrics
- sklearn-compatible ports:
- differential fairness metrics
- MEPS, COMPAS violent
- RejectOptionClassification, LearnedFairRepresentations
New Features/Improvements
- Multidimensional subset scanning (MDSS) for bias in classifiers by @Viktour19 in #238
- Update component.yaml to kfp v2 sdk by @yhwang in #259
- Fairadapt inclusion in AIF360 by @dplecko in #257
- Added a tutorial for advertising data by @barvek in #310
- More sklearn-compatible algorithms by @hoffmansc in #318
- Dataset Improvements by @hoffmansc in #278
- array of sample-wise protected attributes may now be passed in
prot_attr
instead of an index label
- array of sample-wise protected attributes may now be passed in
- Method of the month (July) by @hoffmansc in #324
- sklearn-compat additions by @mnagired in #322
- add
predict_proba
toRejectOptionClassifier
- add
- More sklearn-compatible metrics by @hoffmansc in #290
smoothed_edf
,df_bias_amplification
class_imbalance
,kl_divergence
,conditional_demographic_disparity
intersection
,one_vs_rest
Backwards-Incompatible Changes
- Add detectors api by @Adebayo-Oshingbesan in #305
- version of
bias_scan
inaif360.metrics
to be deprecated next release
- version of
Fixes
- Fixed computation of coefficient of variation in classification_metrics by @plankington in #288
- Fix exponential gradient reduction without protected attribute (#267) by @jdnklau in #268
- Remove caches due to excessive memory use by @Adebayo-Oshingbesan in #317
- fix rpy2 crash bug by @hoffmansc in #313
- Fix pipelining bug in fairlearn algorithms by @hoffmansc in #323
- Optional tempeh, conditional imports by @DanielRyszkaIBM in #338
- Restricting AdversarialDebiasing's trainable variables to current scope by @mfeffer in #255
- Increasing max_iter to 1000 for LogisticRegression used in PrejudiceRemover by @mfeffer in #254
New Contributors
- @Viktour19 made their first contribution in #238
- @jdnklau made their first contribution in #268
- @yhwang made their first contribution in #259
- @dplecko made their first contribution in #257
- @plankington made their first contribution in #288
- @Adebayo-Oshingbesan made their first contribution in #305
- @barvek made their first contribution in #310
- @milevavantuyl made their first contribution in #309
- @josue-rodriguez made their first contribution in #315
- @DanielRyszkaIBM made their first contribution in #338
- @mnagired made their first contribution in #322
- @mfeffer made their first contribution in #255
Full Changelog: v0.4.0...v0.5.0
v0.4.0
AIF360 v0.4.0 Release Notes
This is a major release containing a number of new features, improvements, and bugfixes.
Highlights
- TensorFlow 2, Python 3.8 now supported
- New algorithms:
- Exponentiated Gradient Reduction
- Grid Search Reduction
- New dataset:
- Law school GPA
New Features/Improvements
- Python 3.8 and TensorFlow 2 (via
compat.v1
) support added (#230) - Algorithms from fairlearn added (#215):
- Exponentiated Gradient Reduction and Grid Search Reduction
- Support for regression datasets
- Law school GPA dataset added
MetaFairClassifier
code cleaned and sped up (#196)- removed numba dependency (#187)
maxiter
andmaxfun
arguments in LFRfit()
(#184)
Backwards-Incompatible Changes
- Removed support for Python 3.5
Fixes
- Fix bug where
scores
in a single-row dataset was getting squeezed (#193) - Typo in
consistency_score
documentation (#195) - Lime notebook license issue (#191)
New Contributors
@baba-mpe, @SSaishruthi, @leenamurgai, @synapticarbors, @sohiniu, @yangky11
v0.3.0
AIF360 v0.3.0 Release Notes
This is a major release containing a number of new features, improvements, and bugfixes.
Highlights
- scikit-learn compatible API for certain algorithms, metrics, and datasets
- Documentation layout was revamped to make it easier to navigate.
- New algorithm:
- Fairness Gerrymandering (Kearns, et al., 2018)
- New metrics:
- Differential Fairness (Foulds, et al., 2018)
- Rich Subgroup Fairness (Kearns, et al., 2018)
New Features/Improvements
- Optional dependencies may now be installed using the setuptools "extras" option: e.g.,
pip install 'aif360[LFR,AdversarialDebiasing]'
orpip install 'aif360[all]'
- Added support for integrations with MLOps (Kubeflow and NiFi) and examples
- Added
scores
output toAdversarialDebiasing.predict()
(#139) - Added a
subset()
method toStructuredDataset
(#140) - Added new
MulticlassLabelDataset
to support basic multiclass problems (#165) -
scikit-learn compatibility (#134)
- EXPERIMENTAL: incomplete, contributions welcome
- 4 datasets (Adult, German, Bank, Compas) in DataFrame format with protected attributes in the index
- Automatically downloads from openml.org
- 6 group fairness metrics as functions (
statistical_parity_difference
,disparate_impact_ratio
,equal_opportunity_difference
,average_odds_difference
,average_odds_error
,between_group_generalized_entropy_error
) - 2 individual fairness metrics as functions (
generalized_entropy_index
and its variants,consistency_score
) - 5 additional metrics as functions (
specificity_score
,base_rate
,selection_rate
,generalized_fpr
,generalized_fnr
) make_scorer
function to wrap metrics for use in sklearn cross-validation functions (#174, #178)- 3 algorithms (
Reweighing
,AdversarialDebiasing
,CalibratedEqualizedOdds
)
Fixes
- Fixed deprecation warning/
NotImplementedError
inStandardDataset
(#115) - Fixed age threshold in
GermanDataset
(#129 and #137) - Corrected privileged/unprivileged attribute values for COMPAS dataset in some demos (#138)
- Fixed base rate computation in EqOddsPostprocessing (#170)
- Improved warning messages when missing optional packages (#170)
- Multiple documentation fixes (#114, #124, #153, #155, #157, #158, #159, #170)
New Contributors
@autoih, @romeokienzler, @jimbudarz, @stephanNorsten, @sethneel, @imolloy, @guillemarsan, @gdequeiroz, @chajath, @bhavyaghai, @Tomcli, @swapna-somineni, @chkoar, @motapaolla
v0.3.0rc0
AIF360 v0.3.0rc0 Release Notes
This is a major release containing a number of new features, improvements, and bugfixes.
Highlights
- scikit-learn compatible API for certain algorithms, metrics, and datasets
- Documentation layout was revamped to make it easier to navigate.
- New algorithm:
- Fairness Gerrymandering (Kearns, et al., 2018)
- New metrics:
- Differential Fairness (Foulds, et al., 2018)
- Rich Subgroup Fairness (Kearns, et al., 2018)
New Features/Improvements
- Optional dependencies may now be installed using the setuptools "extras" option: e.g.,
pip install 'aif360[LFR,AdversarialDebiasing]'
orpip install 'aif360[all]'
- Added support for integrations with MLOps (Kubeflow and NiFi) and examples
- Added
scores
output toAdversarialDebiasing.predict()
(#139) - Added a
subset()
method toStructuredDataset
(#140) -
scikit-learn compatibility (#134)
- EXPERIMENTAL: incomplete, contributions welcome
- 4 datasets (Adult, German, Bank, Compas) in DataFrame format with protected attributes in the index
- Automatically downloads from openml.org
- 6 group fairness metrics as functions (
statistical_parity_difference
,disparate_impact_ratio
,equal_opportunity_difference
,average_odds_difference
,average_odds_error
,between_group_generalized_entropy_error
) - 2 individual fairness metrics as functions (
generalized_entropy_index
and its variants,consistency_score
) - 5 additional metrics as functions (
specificity_score
,base_rate
,selection_rate
,generalized_fpr
,generalized_fnr
) - 3 algorithms (
Reweighing
,AdversarialDebiasing
,CalibratedEqualizedOdds
)
Fixes
- Fixed deprecation warning/
NotImplementedError
inStandardDataset
(#115) - Fixed age threshold in
GermanDataset
(#129 and #137) - Corrected privileged/unprivileged attribute values for COMPAS dataset in some demos (#138)
- Multiple documentation fixes (#114, #124, #153, #155, #157, #158, #159)
New Contributors
@autoih, @romeokienzler, @jimbudarz, @stephanNorsten, @sethneel, @imolloy, @guillemarsan, @gdequeiroz, @chajath, @bhavyaghai, @Tomcli
v0.2.3
v0.2.2
v0.2.1
v0.2.0
AIF360 v0.2.0 Release Notes
Highlights
New Algorithm:
- Meta-Algorithm for Fair Classification (Celis et al.. 2018)
New Features/Improvements
- Added download script for MEPS data
- Added ability to choose protected attribute for
DisparateImpactRemover
- Updated
OptimPreproc
to use the latest version ofcvxpy
- Added a threshold value to update
labels
from predictedscores
inCalibratedEqOddsPostprocessing
- New
scores_names
arg inStructuredDataset
allows for easier importing of predictions run elsewhere tutorial_gender_classification
notebook now usesskimage
instead ofcv2
aif360.__version__
now returns the correct version string
Fixes
- Changed Credit Scoring Tutorial to use
Reweighing
; added new demo usingAdversarialDebiasing
on Adult Dataset - Removed dependency on
subprocess.run
inPrejudiceRemover
for Python 2.7 compatibility - Fixed bug where
categorical_features
would not take into accountfeatures_to_drop
inStandardDataset
New Contributors
@ckadner, @cclauss, @vijaykeswani, @ffosilva, @kant, @adrinjalali, @mariaborbones