Antes de comparar modelos, é preciso saber o que significa "não aprender nada". Sem esse piso, qualquer número parece bom — e num problema desbalanceado, "qualquer número" costuma parecer excelente.
O chão de cada métrica
A prevalência de inadimplência na base é 6,684%. Daí sai, sem treinar modelo nenhum:
| Métrica | Valor de quem não aprendeu nada |
|---|---|
| ROC AUC | 0,5000 |
| PR AUC | 0,066844 — a própria prevalência |
| Acurácia | 0,933156 — só aprovar todo mundo |
Olhe a última linha. 93,3% de acurácia é o resultado de aprovar 100% das propostas, sem modelo, sem dado, sem nada. Qualquer apresentação que celebre "93% de acurácia" neste problema está celebrando o nada. É por isso que acurácia não é métrica de crédito — e por isso o Dummy entra como candidato oficial, não como curiosidade.
Os cinco candidatos
- 🎯 Dummy — o piso. Se um modelo sofisticado não bate isso com folga, ele não serve.
- 🌳 Árvore de decisão — o primeiro modelo de verdade, e o único que se desenha num slide.
- 🌲 Random Forest — muitas árvores em amostras aleatórias, decidindo por votação (bagging).
- 🚀 XGBoost — árvores em sequência, cada uma corrigindo o erro da anterior (boosting).
- ⚡ LightGBM — mesmo princípio, outra estratégia de crescimento da árvore.
O protocolo, que vale mais que a lista
StratifiedKFold(5) sobre a base de treino, com o pipeline inteiro dentro da validação cruzada — preparo refeito a cada dobra. Estratificado porque, com 6,7% de eventos, uma divisão aleatória pode produzir dobras com prevalências bem diferentes e a comparação vira sorteio.
Três métricas, não uma: ROC AUC (separação geral), PR AUC (desempenho na classe rara, que é a que importa) e acurácia (só para lembrar do quanto ela engana). E a base de teste permanece intocada até o fim.
Bom não é "alto". Bom é melhor que a alternativa simples — e a alternativa simples precisa estar medida na mesma tabela, com o mesmo protocolo.
Parte 6 de 12 da série Aurora — um modelo de risco de crédito do zero ao deploy. O mapa completo da série reúne todas as partes e os números finais. Veja também a documentação técnica e o código no GitHub ↗.