Fairness em ML para Produção: A primeira biblioteca Python focada em monitoramento de fairness em produção, com compliance LGPD/BACEN nativo e relatórios standalone.
Ferramentas como Fairlearn e AIF360 são excelentes para pesquisa, mas param no notebook. Você precisa de fairness em produção, com:
- ✅ Monitoramento contínuo de viés
- ✅ Compliance automático (LGPD Art. 20, BACEN Res. 4.658)
- ✅ Relatórios prontos para stakeholders não-técnicos
- ✅ Zero vendor lock-in (funciona com sklearn, XGBoost, PyTorch, TensorFlow)
justiceai resolve isso.
from justiceai import audit
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
# Carregar dados
data = load_breast_cancer()
df = pd.DataFrame(data.data, columns=data.feature_names)
df['target'] = data.target
df['gender'] = np.random.choice(['M', 'F'], size=len(df)) # Atributo protegido
# Treinar modelo
model = RandomForestClassifier()
model.fit(df.drop(['target', 'gender'], axis=1), df['target'])
# Avaliar fairness em 1 linha
report = audit(
model=model,
data=df,
target='target',
protected_attrs=['gender']
)
# Visualizar
report.show() # Abre HTML interativo no navegador
report.save_html('fairness_report.html') # Salva para compartilharOutput: Relatório HTML standalone com Plotly interativo, pronto para apresentar ao board.
from justiceai import audit
from justiceai.compliance import LGPDComplianceReporter, BACENComplianceReporter
# Executar auditoria de fairness
report = audit(model, X, y, sensitive_attrs)
# Gerar relatório LGPD (Art. 20)
lgpd_reporter = LGPDComplianceReporter(report)
lgpd_reporter.save_html('lgpd_compliance.html')
# Gerar relatório BACEN (Res. 4.658)
bacen_reporter = BACENComplianceReporter(report)
compliance_data = bacen_reporter.generate_report()
print(f"Risco do Modelo: {compliance_data['risco_modelo']['nivel_risco']}")from justiceai.monitoring import (
FairnessDriftDetector,
FairnessAlerting,
ConsoleAlertChannel
)
# Estabelecer baseline
baseline_metrics = {'statistical_parity': 0.95, 'equal_opportunity': 0.92}
# Configurar detector
detector = FairnessDriftDetector(baseline_metrics, threshold=0.10)
# Configurar alertas
alerting = FairnessAlerting()
alerting.add_channel('console', ConsoleAlertChannel())
# Monitorar novos dados
new_metrics = {'statistical_parity': 0.75, 'equal_opportunity': 0.90}
drift_result = detector.detect(new_metrics)
if drift_result.has_drift:
print(f"⚠️ Drift detectado: {list(drift_result.drifted_metrics.keys())}")
alerting.send_drift_alert(drift_result, detector)pip install justiceai# Clone o repositório
git clone https://github.com/guhaase/justiceai.git
cd justiceai
# Instale com Poetry
poetry install
# Ative o ambiente
poetry shell
# Rode os testes
pytest- Class Balance: Distribuição balanceada entre grupos
- Concept Balance: Taxa de positivos balanceada
- KL/JS Divergence: Similaridade de distribuições
- Statistical Parity: Taxa de predições positivas igual
- Disparate Impact: Compliance com regra EEOC 80%
- Equal Opportunity: TPR igual entre grupos
- Equalized Odds: TPR e FPR iguais
- + 8 métricas adicionais
- HTML Interativo: Plotly charts, funciona offline
- PDF Profissional: Pronto para auditoria (em breve)
- Markdown: Versionável em Git (em breve)
- LGPD Art. 20: Template pronto para direito à explicação
- BACEN Res. 4.658: Análise de risco de modelo
- Português nativo: Relatórios e erros em PT-BR
Funciona com:
- ✅ scikit-learn
- ✅ XGBoost
- ✅ LightGBM
- ⏳ PyTorch (em breve)
- ⏳ TensorFlow (em breve)
- ⏳ ONNX (em breve)
- Drift Detection: Detecta degradação de fairness ao longo do tempo (threshold, PSI, KS test)
- Alerting: Slack/Email/Webhook quando métricas violam thresholds
- Continuous Monitoring: Histórico, tendências e alertas automáticos
Status: ✅ Completa
- Installation Guide - Setup and installation
- Quick Start - Your first fairness audit in 5 minutes
- Basic Concepts - Understanding fairness metrics
- API Reference - Complete API documentation
- Tutorials - 3 Jupyter notebooks with hands-on examples
- FAQ - 40+ common questions answered
- Contributing - Guidelines for contributors
| Feature | Fairlearn | AIF360 | justiceai |
|---|---|---|---|
| Métricas | 8 | 70+ | 15+ (curadas) |
| MLOps/Produção | ❌ | ❌ | ✅ |
| Compliance BR | ❌ | ❌ | ✅ |
| Reports Standalone | ❌ | ✅ (HTML Plotly) | |
| Framework-Agnostic | ✅ | ||
| API 1-liner | ❌ | ❌ | ✅ |
| Monitoring | ❌ | ❌ | ✅ (em breve) |
- Setup projeto (Poetry, CI/CD)
- 15+ métricas de fairness
- Reports HTML com Plotly
- API
audit()simples - FairnessEvaluator API
- Model adapters (sklearn + factory)
- Documentação completa (MkDocs)
- 3 tutoriais Jupyter
- 192 testes, 90%+ coverage
- FAQ com 40+ questões
- Suporte XGBoost, LightGBM
- Templates LGPD/BACEN
- Monitoring e drift detection
- Threshold optimization
- Reports PDF
- Publicado no PyPI
- GitHub Pages documentation
- Português nativo completo
- Suporte PyTorch/TensorFlow
- Mitigação automática de viés
- IA-powered insights (LLM)
- Integração MLflow/W&B
- SaaS offering (?)
Contribuições são muito bem-vindas! Veja CONTRIBUTING.md para guidelines.
- Fork o repositório
- Clone seu fork:
git clone https://github.com/SEU-USUARIO/justiceai.git - Crie uma branch:
git checkout -b feature/minha-feature - Faça mudanças e commit:
git commit -m "feat: adiciona minha feature" - Push:
git push origin feature/minha-feature - Abra um Pull Request
Antes de abrir PR, rode:
# Formatar código
make format
# Linting
make lint
# Type checking
make type-check
# Testes
make test
# Tudo de uma vez
make qualityFase Atual: Sprint 3 Completo - v0.1.0 Ready!
| Métrica | Status | Target |
|---|---|---|
| Coverage | ✅ 90.03% | 90% |
| Testes | ✅ 192 passing | 150+ |
| Docs | ✅ 20 pages | 100% |
| Tutorials | ✅ 3 notebooks | 3 |
Sprints Completos: 3/5 (60%)
- ✅ Sprint 1: Core Metrics
- ✅ Sprint 2: HTML Reports
- ✅ Sprint 3: API + Documentation
- 🔄 Sprint 4: Compliance (próximo)
- ⏳ Sprint 5: Release Público
Este projeto está licenciado sob a MIT License.
MIT License
Copyright (c) 2026 Gustavo Haase
Permission is hereby granted, free of charge, to any person obtaining a copy...
Gustavo Haase
- Email: gustavo.haase@gmail.com
- GitHub: @guhaase
- DeepBridge: Base de código que inspirou este projeto
- Fairlearn/AIF360: Referências de métricas
- Comunidade Python: Ferramentas incríveis (Poetry, Pytest, Black, etc.)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: gustavo.haase@gmail.com
Feito com ❤️ para tornar ML mais justo e responsável
⚖️ justiceai - Fairness em ML para Produção