Pós-Graduação em Machine Learning, Deep Learning e Inteligência Artificial
Disciplina: Fundamentos de Machine Learning com Scikit-Learn
Professor: Icaro Augusto Maccari Zelioli
Alunos: Fabio Ferreira Figueiredo
Felipe Moreira Szczpanski
Lauro Camilo Barbosa Marques da Rocha
Este projeto avalia o risco de inadimplência de tomadores de crédito utilizando o dataset Give Me Some Credit (Kaggle). A modelagem preditiva foi desenvolvida do zero empregando algoritmos como Perceptron, Árvores de Decisão e Random Forest da biblioteca scikit-learn.
O projeto aplica aprendizado de máquina para capturar correlações não lineares. A abordagem segue uma progressão lógica de complexidade: desde um baseline linear interpretável até ensembles de alta performance, sempre priorizando a explicabilidade exigida pelo contexto regulatório financeiro (LGPD e BACEN).
O objetivo principal é prever se um cliente incorrerá em uma inadimplência grave (atraso nas obrigações financeiras por 90 dias ou mais) nos próximos dois anos, utilizando variáveis demográficas, financeiras e comportamentais.
A base de dados utilizada provém de uma competição do Kaggle (brycecf/give-me-some-credit-dataset) elaborada para construir algoritmos que definem quem pode ou não sofrer dificuldades financeiras no curto/médio prazo. O problema é formulado como uma classificação binária sobre o dataset de aproximadamente 150.000 registros.
Os dados financeiros reais trazem características que tornam a modelagem mais complexa:
- Desbalanceamento Extremo: Apenas cerca de 6,7% dos registros representam clientes inadimplentes (classe positiva), foi utilizado F1-Score e class_weight="balanced" para mitigar o viés da maioria.
- Valores Ausentes: Volumes de dados faltantes acentuados, especialmente nas features
MonthlyIncome(~20%) eNumberOfDependents(~2,5%). - Outliers: Presença de exceções em dados financeiros (ex: utilização de cartão acima de 100%, ou taxas de endividamento fora do comum, tratados via pipelines de pré-processamento estatístico.
O projeto aplica técnicas robustas de engenharia de features, preenchimento estatístico via Pipeline (SimpleImputer com medianas), e hiperparametrização via GridSearchCV focada na métrica estrutural de F1-Score, balanceando Recall e Precision frente à minoria de casos positivos.
O arquivo projeto_credito_supervisionado.ipynb cobre todo o ciclo de vida do pipeline de Machine Learning:
- Setup e EDA (Exploratory Data Analysis):
- Configura o Python e pacotes. Valida a infraestrutura através de virtualenvs.
- Analisa e trata assimetrias multivariadas, correlações e a distribuição do atributo alvo (
SeriousDlqin2yrs).
- Pré-Processamento Linear:
- Desenvolve Pipelines do
scikitusando transformadores comoStandardScaler.
- Desenvolve Pipelines do
- Modelagem Baseline:
- Treinamento e análise direcional com o classificador linear determinístico (
Perceptron), expondo os pesos das features e mostrando a limitação das fronteiras lineares.
- Treinamento e análise direcional com o classificador linear determinístico (
- Árvores de Decisão:
- Treinamentos não lineares, validando caminhos explicáveis.
- Aplicação de
StratifiedKFoldeGridSearchCVcontrolando max_depth e variâncias do modelo para evitar overfitting severo.
- Ensambles e Otimização Final:
- Modelagem de complexidade superior usando agrupamento via
RandomForestClassifier.
- Modelagem de complexidade superior usando agrupamento via
- Desfecho Analítico:
- Produção de um framework comparador interativo (Precision-Recall / AUC-ROC).
- Levantamento de um racional conclusivo: os impactos de aprovar maus pagadores (Falso Negativo) vs negar bons tomadores (Falso Positivo).
Ao final do processo de triagem e cross validation, o Random Forest figura como o melhor detentor da métrica F1, estabilizando e diminuindo as altas variações intrínsecas ao modelo unitário (Árvore Convencional), destacando featuers financeiras chave no balanço final antes das recomendações aos gestores de carteira.
Para o cenário de BB Asset / Contexto BACEN:
-
O Random Forest é recomendado para o motor de scoring de alta precisão.
-
A Árvore Otimizada serve como ferramenta de auditoria para o Art. 20 da LGPD, permitindo explicar negativas de crédito de forma clara.
Siga o passo a passo rigoroso abaixo para replicar o ambiente perfeitamente compatível a esta versão avaliativa do modelo (utilizando Python 3.13 e o provedor nativo pip):
Certifique-se de possuir o Python versão 3.13, e que o arquivo zip ou a interface do Kaggle CLI esteja provisionada se desejar forçar a regressão do dataset da nuvem.
No terminal, dentro da pasta do projeto aberto, declare as entidades atômicas definindo o nome credito:
# Cria o ambiente isolado
python3.13 -m venv credito
# Ativa o ambiente (macOS/Linux)
source credito/bin/activate
# Ativa o ambiente (Windows)
credito\Scripts\activateGaranta que a infraestrutura se comunique limpa com os repos base:
# Opcional mas recomendado: Upgrade no pip core
pip install --upgrade pip
# Instala as bibliotecas exatas e requeridas
pip install numpy pandas scikit-learn matplotlib seaborn kaggle ipykernelGere um manifesto congelado do projeto para pareamento com as docstrings.
# Salva as assinaturas exatas localmente
pip freeze > requirements.txtAgora que o repositório base suporta o core analítico, inicialize-o:
jupyter notebook projeto_credito_supervisionado.ipynb(Se o seu Jupyter não encontrar o abiente nativo ou global, certifique-se de registrar o ipykernel instalado previamente dentro deste env com: python -m ipykernel install --user --name=credito).
Março / 2026
