Este projeto tem como objetivo desenvolver um modelo de aprendizado de máquina para prever a probabilidade de inadimplência de clientes com base em diferentes fontes de dados fornecidos pela Home Credit.
- Visão Geral
- Objetivos
- Etapas do Desenvolvimento
- Dados Utilizados
- Metodologia
- Resultados Obtidos
- Conclusão
- Como Executar
O projeto aborda a previsão de risco de crédito utilizando dados históricos e estatísticos dos clientes. Foram utilizadas diversas técnicas de pré-processamento, análise exploratória de dados (EDA) e modelagem preditiva para identificar os fatores que influenciam a inadimplência.
- Análise Exploratória dos Dados (EDA): Entender a estrutura dos dados, identificar relationships e detectar possíveis outliers ou inconsistências.
- Pré-processamento: Limpeza, tratamento de valores faltantes e transformação das variáveis.
- Engenharia de Features: Seleção e criação de novas variáveis a partir dos dados brutos.
- Modelagem: Treinamento e avaliação de vários modelos de classificação, incluindo RandomForest, XGBoost, LightGBM e CatBoost.
- Otimização: Uso de técnicas de otimização, como o Optuna, para ajuste dos hiperparâmetros.
- Avaliação: Medição do desempenho dos modelos por meio de métricas como acurácia, precisão, recall, F1 e AUC-ROC.
-
Importação e Configuração:
- Importação das bibliotecas necessárias, como
pandas
,numpy
,matplotlib
,seaborn
e bibliotecas de machine learning doscikit-learn
,xgboost
,lightgbm
ecatboost
. - Configuração das opções de visualização no
pandas
.
- Importação das bibliotecas necessárias, como
-
Análise Exploratória dos Dados (EDA):
- Investigação dos diferentes conjuntos de dados disponíveis.
- Visualização de distribuições e correlações entre variáveis.
- Identificação de inconsistências e outliers para ações de limpeza.
-
Pré-processamento e Engenharia de Features:
- Tratamento de valores ausentes utilizando
SimpleImputer
e técnicas similares. - Codificação de variáveis categóricas com
OneHotEncoder
eOrdinalEncoder
. - Escalonamento das variáveis contínuas com
StandardScaler
ouMinMaxScaler
. - Combinação e criação de novas features a partir dos dados brutos.
- Tratamento de valores ausentes utilizando
-
Modelagem Preditiva:
- Construção de pipelines de pré-processamento e modelagem.
- Treinamento de diferentes algoritmos de classificação.
- Utilização de técnicas de validação cruzada para garantir a robustez dos modelos.
-
Otimização de Hiperparâmetros:
- Emprego do
optuna
para encontrar a melhor configuração de hiperparâmetros para cada modelo. - Comparação dos resultados dos modelos otimizados.
- Emprego do
-
Avaliação dos Modelos:
- Cálculo de métricas como acurácia, precisão, recall, F1-score e AUC-ROC.
- Geração de gráficos de curvas ROC e matrizes de confusão para visualizar a performance dos modelos.
A estrutura de dados do projeto está organizada da seguinte forma:
- application_{train|test}.csv: Dados estáticos dos empréstimos, onde o conjunto de treino contém a variável alvo (
TARGET
). - bureau.csv & bureau_balance.csv: Informações de históricos de crédito dos clientes.
- installments_payments.csv: Dados de aplicações anteriores e registros de pagamentos.
Os dados estão na pasta data/01_raw.
A abordagem metodológica do projeto seguiu os seguintes passos:
- Importação dos Dados: Leitura e verificação da integridade dos arquivos de dados.
- Exploração Inicial: Geração de resumos estatísticos e gráficos informativos para entendimento do cenário.
- Preparação dos Dados: Limpeza e preparação através de técnicas de imputação, codificação e escalonamento.
- Construção dos Modelos: Desenvolvimento de pipelines que encapsulam pré-processamento e modelagem.
- Validação e Otimização: Uso de validação cruzada e técnicas de otimização para selecionar os melhores parâmetros.
- Análise Final e Interpretação: Comparação e interpretação dos resultados para definição do melhor modelo.
Os experimentos demonstraram que:
- A combinação de técnicas de engenharia de features com otimização de hiperparâmetros melhorou significativamente a performance dos modelos.
- Modelos como o XGBoost e o LightGBM se destacaram na previsão do risco de crédito, apresentando elevados valores de AUC-ROC e F1-score.
- A análise das métricas e das curvas ROC permitiu a identificação dos trade-offs entre diferentes modelos, auxiliando na escolha do modelo mais balanceado para o problema.
Este projeto evidenciou a importância de uma abordagem estruturada, desde a exploração de dados até a otimização dos modelos preditivos. Através das etapas realizadas, foi possível desenvolver um sistema robusto para avaliação do risco de crédito, com potencial para aplicação em cenários reais de análise financeira. As análises e os resultados obtidos servem como base para aprimoramentos futuros, inclusive a integração de novas fontes de dados e técnicas de explicabilidade dos modelos.
- Pré-requisitos:
- Python 3.11
- Instalar as dependências com:
pip install -r requirements.txt
- Execução do Notebook:
- Abra o arquivo credit-risk.ipynb no Jupyter Notebook ou JupyterLab e execute as células na ordem para reproduzir a análise.
- Interpretação dos Resultados:
- A visualização dos gráficos e a saída das métricas possibilitam a avaliação do desempenho dos modelos.
Desenvolvido com dedicação e foco na clareza, este projeto busca contribuir para a melhoria das estratégias de análise de crédito no cenário financeiro.