Este projeto aborda um problema central do setor financeiro: a classificação automatizada e escalável do score de crédito. Por meio de técnicas de Data Science, Machine Learning e Analytics, foi desenvolvido um pipeline preditivo capaz de transformar dados estruturados em insights acionáveis para tomada de decisão.
A abordagem combina raciocínio estatístico, modelagem preditiva supervisionada e foco no negócio, evidenciando a aplicação prática de modelos de classificação em cenários reais de Credit Risk Modeling.
Instituições financeiras enfrentam diariamente o desafio de avaliar corretamente o perfil de risco de clientes, especialmente em cenários com grande volume de dados. Processos manuais ou regras fixas podem resultar em:
▪ aumento da inadimplência (default risk)
▪ concessão de crédito a perfis inadequados
▪ perda de clientes com bom histórico financeiro
▪ políticas de crédito excessivamente conservadoras
Nesse contexto, torna-se essencial adotar uma solução data-driven, automatizada e escalável, capaz de equilibrar risco, retorno e eficiência operacional.
Desenvolver um modelo de classificação de score de crédito baseado em Machine Learning
Classificar clientes em categorias multiclasses (Poor, Standard, Good)
Aplicar e comparar algoritmos de aprendizado supervisionado
Avaliar desempenho com métricas robustas de classificação
Apoiar decisões estratégicas em Credit Risk Management
O conjunto de dados é composto por informações cadastrais, demográficas e financeiras, amplamente utilizadas em cenários de Credit Analytics. As variáveis representam:
▪ perfil do cliente
▪ comportamento financeiro
▪ histórico de crédito e endividamento
A variável alvo (target) corresponde ao score de crédito multiclasses, utilizada como base para treinamento e validação dos modelos preditivos.
Fig. 1. Amostra da base de dados original (ABT), contendo variáveis cadastrais e financeiras como id_cliente, idade, profissão, salário anual, número de contas e empréstimos, verificações de crédito, histórico de investimentos e inadimplência, score de crédito final e modalidades de empréstimo (carro, pessoal, estudante), empregada como base inicial para ETL, EDA, feature engineering e modelagem preditiva de risco de crédito
A etapa de ETL e Data Wrangling foi essencial para garantir qualidade, consistência e confiabilidade dos dados. As atividades incluíram:
▪ inspeção de valores ausentes (missing values)
▪ análise e tratamento de outliers
▪ correção de inconsistências
▪ padronização de tipos de dados
▪ seleção de features relevantes ao problema
Essa etapa reduziu vieses, aumentou a robustez analítica e contribuiu diretamente para o desempenho dos modelos.
A EDA teve como objetivo compreender padrões, distribuições e relações entre variáveis:
▪ estatísticas descritivas
▪ análise de distribuições por classe de score
▪ identificação de assimetrias e dispersões
▪ matriz de correlação
▪ visualizações exploratórias orientadas ao negócio
Os insights obtidos orientaram decisões de Feature Engineering, escolha de métricas e seleção de modelos.
Fig. 2. Mapa de calor da matriz de correlação de Pearson entre variáveis da ABT de crédito bancário, destacando associações lineares (vermelho: positiva forte; azul: negativa; branco: neutra), utilizado na EDA para seleção de features, detecção de multicolinearidade e pré-processamento para modelagem de score de crédito.
Fig. 3. Histogramas univariados das variáveis numéricas da ABT de crédito bancário estratificados por classes de score (Standard, Poor, Good), identificando assimetrias, outliers e padrões diferenciais entre classes durante a EDA univariada para feature engineering e validação de premissas de normalidade.
Nesta etapa, os dados foram preparados para maximizar o desempenho dos algoritmos:
▪ codificação de variáveis categóricas (Label Encoding)
▪ preparação do espaço de atributos para classificação
▪ organização das features para modelos baseados em distância e árvore
Um Feature Engineering consistente foi determinante para estabilidade e desempenho preditivo.
Foram aplicados algoritmos de Machine Learning supervisionado para classificação, amplamente utilizados em problemas de Score de Crédito e Risk Modeling, com foco em desempenho preditivo, robustez e interpretabilidade.
Os modelos empregados neste projeto foram:
Regressão Logística Multinomial: modelo linear utilizado como referência para comparação de desempenho e complexidade
Random Forest Classifier: modelo baseado em ensemble learning, utilizado para capturar relações não lineares entre as variáveis, reduzir overfitting e fornecer maior estabilidade preditiva em cenários complexos de risco de crédito
K-Nearest Neighbors (KNN): algoritmo baseado em similaridade a partir da proximidade entre perfis de clientes no espaço de atributos
O pipeline de modelagem incluiu:
divisão dos dados em conjuntos de treino e teste
treinamento e comparação dos modelos
análise de desempenho e capacidade de generalização.
A avaliação dos modelos foi realizada com foco em comparação objetiva de desempenho preditivo, utilizando multiplas métricas, aplicada no conjunto de teste:
▪ Accuracy Score: mede a proporção total de previsões corretas, fornecendo uma visão geral do desempenho.
▪ Matriz de Confusão: permite visualizar os acertos e erros por classe, identificando padrões de confusão entre categorias
▪ Classification Report: fornece métricas de precision, recall e f1-score, essenciais para avaliar o equilíbrio do modelo em cenários multiclasses
O Random Forest foi selecionado como melhor modelo por apresentar:
▪ maior acurácia global
▪ melhor equilíbrio entre classes
▪ maior robustez a ruídos
▪ melhor capacidade de generalização
Essa escolha reflete boas práticas em Risk Modeling e Machine Learning aplicado.
Fig. 4. Matrizes de confusão normalizadas para Regressão Logística, Random Forest e KNN na classificação de score de crédito (Standard, Poor, Good), com Random Forest evidenciando melhor equilíbrio diagonal (~0.70-0.85 acertos principais) e menor confusão entre minorias, enquanto Logística subestima Good (~0.50 recall).
Tabela 1. Relatório de classificação dos modelos Regressão Logística, Random Forest e KNN na predição de score de crédito, evidenciando superioridade do ensemble RF no equilíbrio precision/recall multiclasse.
Regressão Logística
precision recall f1-score support
Good 0.55 0.32 0.40 4218
Poor 0.64 0.50 0.56 6402
Standard 0.64 0.80 0.71 12887
accuracy 0.63 23507
macro avg 0.61 0.54 0.56 23507
weighted avg 0.62 0.63 0.61 23507
Random Forest
precision recall f1-score support
Good 0.79 0.77 0.78 4218
Poor 0.81 0.85 0.83 6402
Standard 0.85 0.84 0.85 12887
accuracy 0.83 23507
macro avg 0.82 0.82 0.82 23507
weighted avg 0.83 0.83 0.83 23507
KNN
precision recall f1-score support
Good 0.63 0.62 0.63 4218
Poor 0.74 0.77 0.75 6402
Standard 0.78 0.77 0.77 12887
accuracy 0.74 23507
macro avg 0.72 0.72 0.72 23507
weighted avg 0.74 0.74 0.74 23507
O modelo final demonstrou capacidade consistente de:
diferenciar perfis de risco de crédito
identificar clientes com maior probabilidade de inadimplência
fornecer uma classificação clara, objetiva e acionável
Os resultados evidenciam a aplicabilidade do Machine Learning aplicado ao Credit Scoring como ferramenta estratégica de apoio à decisão.
A aplicação prática do modelo possibilita:
políticas de crédito mais eficientes e personalizadas
redução do risco de inadimplência
melhor equilíbrio entre risco e retorno financeiro
apoio à tomada de decisão baseada em dados (data-driven decision making).
O projeto evidencia como soluções de Data Science, Analytics e Machine Learning podem gerar impacto concreto ao:
aumentar a segurança e a consistência nos processos de concessão de crédito
automatizar e escalar decisões de risco
reduzir perdas associadas à inadimplência
fortalecer a governança analítica
Dessa forma, a solução proposta reforça o papel estratégico da modelagem preditiva aplicada ao risco de crédito, demonstrando sua aplicabilidade para apoiar decisões mais eficientes, sustentáveis e orientadas por dados no contexto financeiro.
Tabela-Resumo de Pacotes, Subpacotes e suas Funções
Projeto desenvolvido no Visual Studio Code com Python e Jupyter Notebooks.
├── 🧹 Manipulação, Limpeza e Transformação de Dados (ETL / Data Wrangling)
│ └── pandas
│ └── Leitura e manipulação de dados estruturados por meio de DataFrames
├── ⚙️ Pré-processamento de Dados
│ └── scikit-learn
│ └── sklearn.preprocessing
│ └── LabelEncoder
│ └── Codificação de variáveis categóricas em valores numéricos
├── 🔀 Divisão dos Dados em Treino e Teste
│ └── scikit-learn
│ └── sklearn.model_selection
│ └── train_test_split
│ └── Separação dos dados em conjuntos de treino e teste, garantindo avaliação adequada da capacidade de
│ generalização dos modelos
├── 🤖 Machine Learning Supervisionado – Classificação Multiclasse
│ └── scikit-learn
│ └── sklearn.linear_model
│ │ └── LogisticRegression
│ │ └── Modelo linear multinomial
│ └── sklearn.ensemble
│ │ └── RandomForestClassifier
│ │ └── Modelo de ensemble baseado em múltiplas árvores de decisão
│ └── sklearn.neighbors
│ └── KNeighborsClassifier
│ └── Algoritmo baseado em similaridade e distância entre observações
└── 📐 Avaliação de Modelos Preditivos
└── scikit-learn
└── sklearn.metrics
│ └── accuracy_score
│ └── Métrica de desempenho global baseada na proporção de previsões corretas
└── confusion_matrix
│ └── Cálculo da matriz de confusão para análise dos acertos e erros por classe
└── ConfusionMatrixDisplay
│ └── Visualização gráfica da matriz de confusão
└── classification_report
└── Geração de métricas de precision, recall e f1-score
LINK