Projeto Aurora — modelo de risco de crédito

Uma fintech de crédito pessoal precisa decidir a quem emprestar sem travar o crescimento nem deixar o risco comer a margem. Este é o mapa de um projeto que atravessa essa decisão inteira — do arquivo que nem abre no pandas até o ponto de corte que minimiza o custo da carteira. Doze partes, cinco modelos, e as armadilhas que quase custaram caro no caminho.

0,8692
ROC AUC em 37.500 clientes nunca vistos
6,0×
melhor que o acaso na identificação da classe rara
150 mil
solicitantes na base, 6,68% de inadimplência

O case usa uma fintech fictícia — a Aurora Crédito Digital — sobre uma base pública de risco de crédito. A arquitetura, o código e todos os números são reais.

📚

O projeto em três formatos: esta série conta a narrativa; a documentação técnica registra cada fase com as tabelas completas; e o explicador interativo deixa você mexer no limiar de decisão. O código e os dados estão no repositório no GitHub ↗.

A série, parte a parte

Do problema ao dado

Modelagem

Avaliação e decisão

O resultado, em uma tabela

Cinco candidatos, mesmas dobras, avaliados uma única vez em 37.500 clientes que nenhum deles tinha visto:

ModeloROC AUCPR AUCBrierMeta 0,85
Dummy (prior)0,5000000,0668270,062361
Decision Tree (d=7)0,8484060,3490510,050820
Random Forest (d=10)0,8658080,4046270,048831
XGBoost0,8692500,4090900,048514
LightGBM (recomendado)0,8691710,4101060,048472

O LightGBM perde em ROC AUC por 0,000062 — diferença que o bootstrap mostra ser ruído — e lidera em PR AUC, acurácia e calibração. É a probabilidade calibrada, não o terceiro decimal do AUC, que sustenta a decisão de crédito.

Cinco conclusões que a série produziu

  • Num problema com 6,7% de eventos, 93,3% de acurácia é o resultado de não fazer nada.
  • errors="coerce" é uma decisão de negócio disfarçada de argumento técnico — aqui, apagaria o grupo de maior risco da base.
  • Balancear classe destruiu a calibração: o modelo passaria a prever 30% de inadimplência onde a real é 6,7%, e o limiar econômico negaria 87% da carteira.
  • A vantagem do boosting sobre a floresta é real; a do XGBoost sobre o LightGBM não é. Saber a diferença mudou o critério de escolha.
  • O ponto de corte é uma decisão de negócio derivada do custo do erro, e o modelo só serve para ela se a probabilidade estiver calibrada.
📋

Estado do projeto: entendimento do negócio, dos dados, preparação e modelagem concluídos e documentados; avaliação em teste concluída com intervalos por bootstrap. Em execução: simulação de custo por faixa de corte, análise SHAP e publicação da aplicação. Prefiro publicar o estado real a anunciar um ciclo que ainda não fechou.

Um projeto irmão

Se você chegou aqui pelo tema de modelagem preditiva aplicada a decisão, o outro case completo do blog segue o mesmo rigor em um problema de regressão: prevendo LTV do zero ao deploy, onde a regressão linear venceu o Random Forest — e o motivo disso é informação, não fracasso.