AI Fairness Auditing Toolkit — detect, measure, and fix bias in ML models and datasets
Project description
VisionAI — AI Fairness Auditing Toolkit
Detect, measure, and fix bias in ML models and datasets.
VisionAI audits datasets and models for fairness violations including disparate impact, proxy discrimination, feature laundering, intersectional bias, and more. It maps findings to legal regulations (EU AI Act, EEOC, GDPR) and provides actionable fix recommendations.
Installation
pip install visionai
With SHAP explainability support:
pip install visionai[shap]
Quick Start
from visionai import FairnessAudit
audit = FairnessAudit(
data="loan_data.csv",
label_col="approved",
positive_label="1",
protected_cols=["gender", "race"],
model="model.joblib", # optional
domain="Financial Lending",
)
results = audit.run()
print(results.fairness_score) # 62
print(results.letter_grade) # "C"
print(results.summary())
results.to_json("audit_report.json")
Features
Core Analysis
| Module | Description |
|---|---|
| Data Bias Scanner | Disparate Impact ratio, Statistical Parity Difference, label skew |
| Model Bias Evaluator | Counterfactual perturbation testing, Equalized Odds (FPR/FNR) |
| Proxy Detector | Cramér's V + Eta-squared to find indirect discrimination channels |
| Feature Laundering | GradientBoosting reconstruction attack on protected attributes |
| Intersectional Audit | Pairwise protected attribute DI with significance thresholds |
| Explainability | SHAP values per demographic group, disparity detection |
| Severity Scorer | Weighted 0-100 score with letter grade (A-F) |
| Historical Harm | Estimate individuals harmed over deployment period |
| Flip Sensitivity | Decision boundary vulnerability analysis |
Advanced Features (Phase 7)
| Module | Description |
|---|---|
| Shadow Testing | Statistical synthetic profiles for missing demographic intersections |
| Adversarial Simulator | Minimum feature changes to flip a prediction |
| Red Team Mode | Worst-case bias search across all thresholds × demographic slices |
| Whistleblower Export | Anonymized reports with SHA-256 integrity hash |
| Model Comparison | Diff two audits — show improved/worsened metrics |
| Bias Origin Tracer | Data bias vs model bias — learned or amplified? |
Compliance
Maps findings to EU AI Act, US EEOC, GDPR Article 22, India DPDP Act, UK Equality Act, and domain-specific regulations.
Granular Usage
Use individual modules directly:
from visionai import scan_data_bias, detect_proxies, detect_feature_laundering
import pandas as pd
df = pd.read_csv("data.csv")
bias = scan_data_bias(df, "hired", "1", ["gender", "race"])
proxies = detect_proxies(df, ["gender", "race"])
laundering = detect_feature_laundering(df, ["gender"], ["age", "income", "score"])
Shadow Testing
audit = FairnessAudit(data=df, label_col="approved", positive_label="1",
protected_cols=["gender", "race"], model=model)
shadow = audit.shadow_test()
print(shadow["missing_intersections"])
print(shadow["summary"]["flaggedCount"])
License
Apache 2.0 — See LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file visionai_fairness-0.1.0.tar.gz.
File metadata
- Download URL: visionai_fairness-0.1.0.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8aabff5749e8ea744d702dce3c347479f301bf021a6d9065cd79935325a877c3
|
|
| MD5 |
fca2e703f510b4f3659f2b92241825ec
|
|
| BLAKE2b-256 |
8fd2cf25b6fb1cce9d932030b6a43958d165cb5adcdb1fac63d4734c40034189
|
File details
Details for the file visionai_fairness-0.1.0-py3-none-any.whl.
File metadata
- Download URL: visionai_fairness-0.1.0-py3-none-any.whl
- Upload date:
- Size: 41.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d564b239d9aad048da8adddc803e3c54777c10982e2b90830d5c874e7eff21da
|
|
| MD5 |
f959e8daf8371e157bb85d8fdbe800c9
|
|
| BLAKE2b-256 |
21f25209d725514dea7b47e6460d40c117a72dcab7978ebc03ddcbd12f35d556
|