Obrigado por se interessar em tornar a ciência de dados mais íntegra! O SciAudit cresce através de novas "Leis Científicas".
-
Escolha a Categoria: As regras estão organizadas em
sciaudit/rules/:leakage/: Para vazamento de dados.reproducibility/: Para reprodutibilidade.statistics/: Para rigor estatístico.causal/: Para interpretação e causalidade.
-
Crie a sua Classe: Sua regra deve herdar de
ScientificRule. Obrigatório implementar:rule_id: "SCI-XXX"rule_name: Nome amigável (ex: "Data Leakage").default_severity:Severity.ERROR,WARNINGouINFO.hint: Uma dica acionável (ex: "Use train_test_split antes...").
from ..base import ScientificRule from ...core.models import Severity class MinhaNovaRegra(ScientificRule): @property def rule_id(self) -> str: return "SCI-XXX" @property def rule_name(self) -> str: return "Nome Curto" @property def default_severity(self) -> Severity: return Severity.WARNING def visit_Call(self, node): # Lógica AST self.add_violation(message="Detecção!", line=node.lineno, hint="Faça X.")
-
Registre a Regra: Adicione sua regra no arquivo
sciaudit/cli/main.pydentro da funçãoget_engine(). -
Adicione ao Corpus: Crie exemplos positivos e negativos em
corpus/good/ecorpus/bad/.
$env:PYTHONPATH="."
python -m unittest discover testsPara verificar se sua regra está disparando muitos falsos positivos ou se está detectando os casos reais corretamente:
python tools/eval_corpus.py
# Verifique rule_metrics.csv- Deve ser baseada em análise estática (AST).
- Deve focar em metodologia científica, não apenas estilo de código.
- Deve ter uma mensagem educativa explicando o "porquê" do erro.
Vamos elevar o nível da ciência de dados juntos!