Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tnleite/loan-approval-prediction
Este repositório apresenta um modelo preditivo de aprovação de empréstimos, focado em minimizar o risco de inadimplência. Utilizando EDA e algoritmos de machine learning (Random Forest, XGBoost), ajustamos o threshold para maximizar o recall de inadimplentes, contribuindo para uma gestão de riscos eficiente.
https://github.com/tnleite/loan-approval-prediction
classification-algorithm data-science exploratory-data-analysis machine-learning-algorithms machine-learning-models matplotlib numpy scikit-learn scipy seaborn xgboost-classifier
Last synced: about 2 months ago
JSON representation
Este repositório apresenta um modelo preditivo de aprovação de empréstimos, focado em minimizar o risco de inadimplência. Utilizando EDA e algoritmos de machine learning (Random Forest, XGBoost), ajustamos o threshold para maximizar o recall de inadimplentes, contribuindo para uma gestão de riscos eficiente.
- Host: GitHub
- URL: https://github.com/tnleite/loan-approval-prediction
- Owner: tnleite
- License: mit
- Created: 2024-11-05T19:18:02.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-30T12:39:09.000Z (about 2 months ago)
- Last Synced: 2024-11-30T13:33:06.117Z (about 2 months ago)
- Topics: classification-algorithm, data-science, exploratory-data-analysis, machine-learning-algorithms, machine-learning-models, matplotlib, numpy, scikit-learn, scipy, seaborn, xgboost-classifier
- Language: Jupyter Notebook
- Homepage:
- Size: 19.8 MB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 💳 Previsão de Aprovação de Empréstimos: Análise e Modelagem
[![Python Version](https://img.shields.io/badge/Python-3.11.10-blue?logo=python&logoColor=white)](https://www.python.org/)
[![Jupyter Version](https://img.shields.io/badge/Jupyter-Notebook-orange?logo=jupyter)](https://jupyter.org/)
[![Pandas](https://img.shields.io/badge/Pandas-1.5.3-green?logo=pandas)](https://pandas.pydata.org/)
[![NumPy](https://img.shields.io/badge/NumPy-1.24.3-blue?logo=numpy&logoColor=white)](https://numpy.org/)
[![Matplotlib](https://img.shields.io/badge/Matplotlib-3.7.1-blue?logo=matplotlib)](https://matplotlib.org/)
[![Seaborn](https://img.shields.io/badge/Seaborn-0.12.2-blue?logo=seaborn)](https://seaborn.pydata.org/)
[![SciPy](https://img.shields.io/badge/SciPy-1.10.1-blue?logo=scipy&logoColor=white)](https://scipy.org/)
[![Scikit-Learn](https://img.shields.io/badge/Scikit--Learn-1.5.1-orange?logo=scikit-learn&logoColor=white)](https://scikit-learn.org/)
[![XGBoost](https://img.shields.io/badge/XGBoost-2.1.2-blue?logo=xgboost)](https://xgboost.readthedocs.io/)
[![Project Status](https://img.shields.io/badge/Status-Completed-green)]()
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)## 📝 Descrição do Projeto
Este projeto, desenvolvido no âmbito do módulo de **Machine Learning** do **Santander Coders 2024**, tem como objetivo aplicar técnicas de **análise exploratória de dados (EDA)** e **modelagem preditiva** para prever a aprovação ou negação de solicitações de empréstimo. Através de algoritmos de classificação, buscamos entender os fatores que influenciam a aprovação e identificar possíveis inadimplentes, ajudando instituições financeiras na gestão de risco.As principais etapas deste projeto incluem:
1. **Análise Exploratória de Dados (EDA)**:
- Realizamos uma exploração aprofundada das variáveis no dataset para entender as distribuições, identificar padrões e descobrir correlações relevantes que pudessem influenciar na aprovação de empréstimos. Utilizamos visualizações e análises estatísticas para detectar outliers e variáveis significativas, o que ajudou a traçar um perfil dos solicitantes. A EDA foi essencial para estabelecer uma base sólida, garantindo que as escolhas de modelagem e pré-processamento fossem fundamentadas em uma compreensão completa dos dados. Essa etapa revelou insights valiosos, como fatores relacionados ao risco de inadimplência e características que poderiam influenciar a decisão de crédito.2. **Modelagem Preditiva**:
- Com base na EDA, desenvolvemos e testamos uma gama de modelos de machine learning, incluindo **Random Forest** e **XGBoost**, focando em alcançar o melhor desempenho na previsão de aprovação e negação de empréstimos. Cada modelo foi cuidadosamente otimizado por meio de **GridSearchCV** e **RandomizedSearchCV**, com o objetivo de maximizar a precisão e o recall, especialmente para a classe de inadimplentes, que representa um risco para a instituição financeira. Esta etapa envolveu uma análise comparativa detalhada, permitindo-nos selecionar o modelo mais robusto, que equilibrou adequadamente a precisão com o recall, assegurando uma resposta confiável na classificação dos candidatos.3. **Ajuste de Threshold**:
- Para maximizar a detecção de inadimplentes e reduzir o risco de falsos negativos, implementamos uma estratégia de ajuste de threshold no modelo final. Em vez de confiar no threshold padrão de 0.5, testamos valores menores, visando aumentar o recall da classe de inadimplentes sem comprometer significativamente a precisão. Esse ajuste foi essencial para tornar o modelo mais sensível a sinais de inadimplência, permitindo uma identificação mais eficaz de solicitantes com maior risco. O impacto do novo threshold foi monitorado de perto para garantir um equilíbrio ideal entre recall e o custo de potenciais falsos positivos, proporcionando uma solução que atende tanto à necessidade de segurança na detecção quanto à eficiência operacional.Essas etapas foram cuidadosamente planejadas e executadas para criar um modelo preditivo que vai além da simples classificação. Com uma taxa de recall próxima a 90% para inadimplentes, o projeto oferece uma solução robusta para gestão de riscos e uma base confiável para decisões estratégicas na concessão de crédito. A abordagem detalhada e os ajustes de threshold mostraram-se fundamentais para atingir os resultados desejados, solidificando a eficácia do modelo em ambientes reais.
## 🗂️ Estrutura do Repositório
Este repositório está organizado da seguinte forma:
- **01_Base_de_Dados**: Contém os arquivos de dados brutos utilizados para análise.
- **02_Analise**: Contém o arquivo Jupyter com a análise e modelagem.
- **03_Recursos**: Contém recursos visuais utilizados no projeto.## 🔍 Estrutura do Projeto
### Parte 1: Análise Exploratória de Dados (EDA)
- **Distribuição de Variáveis**: Análise da distribuição das principais variáveis do dataset, com foco na identificação de outliers e padrões de dados.
- **Correlação Entre Variáveis**: Identificação de correlações entre características que podem impactar na decisão de aprovação do empréstimo.
- **Análise de Outliers**: Exploração dos dados para identificar valores extremos que possam influenciar os resultados da modelagem.### Parte 2: Modelagem Preditiva
- **Seleção de Modelos**: Teste de vários algoritmos de classificação, incluindo Random Forest, Decision Tree, e XGBoost.
- **Ajuste de Hiperparâmetros**: Otimização dos modelos para maximizar o desempenho, com foco no recall da classe de inadimplentes.
- **Ajuste de Threshold**: Modificação do threshold de decisão para melhorar a sensibilidade na detecção de inadimplentes.## 💾 Demonstração e Uso
Para explorar a análise e a modelagem, você pode seguir uma das opções abaixo:1. **Visualização Direta no GitHub**:
- Vá até a pasta **02-Analise** e abra o arquivo **Jupyter Notebook** diretamente no GitHub para visualizar a análise sem precisar baixar.
- [Clique aqui para acessar a pasta de análise](02-Analise/loan-approval-prediction.ipynb).2. **Download do Notebook**:
- Caso a visualização no GitHub não funcione adequadamente ou prefira trabalhar localmente, você pode baixar o arquivo que está no caminho anterior.3. **Instruções de Uso Local**:
- Após baixar, abra o notebook no Jupyter ou em uma plataforma que suporte notebooks IPython.
- Execute as células sequencialmente para visualizar as análises e gráficos.## 🛠️ Tecnologias Utilizadas
- [Python](https://www.python.org/)
- [Jupyter Notebook](https://jupyter.org/)
- [Pandas](https://pandas.pydata.org/)
- [Matplotlib](https://matplotlib.org/)
- [Seaborn](https://seaborn.pydata.org/)
- [Scikit-Learn](https://scikit-learn.org/)
- [XGBoost](https://xgboost.readthedocs.io/)## 🏗️ Arquitetura e Fluxo de Análise
O fluxo de análise do projeto segue a estrutura abaixo:
1. **Coleta de Dados**: Importação do dataset com informações sobre os solicitantes de empréstimo.
2. **Manipulação e Limpeza de Dados**: Uso da biblioteca **Pandas** para preparar os dados, tratar valores ausentes e remover inconsistências.
3. **Visualização Gráfica**: Criação de visualizações com **Matplotlib** e **Seaborn** para entender a distribuição e os padrões dos dados.
4. **EDA**: Análise exploratória para compreender melhor as características e padrões do dataset.
5. **Modelagem e Ajustes**: Uso do Scikit-Learn e XGBoost para construir modelos preditivos e ajustar hiperparâmetros, visando otimizar a detecção de inadimplentes.
6. **Insights**: Interpretação dos resultados para gerar insights úteis para a tomada de decisão sobre a aprovação de empréstimos.## 📈 Impacto e Resultados
- **Previsão Precisa de Inadimplência**: O projeto alcançou uma taxa de recall próxima de **90%** para a classe de inadimplentes, garantindo uma alta sensibilidade na detecção de clientes com potencial de inadimplência. Essa precisão minimiza significativamente o risco de falsos negativos, ajudando a instituição a tomar decisões mais seguras ao avaliar solicitações de crédito.
- **Aprimoramento na Gestão de Riscos**: Através da modelagem preditiva e da análise cuidadosa dos dados históricos, desenvolvemos uma ferramenta que fornece uma visão robusta sobre o risco de inadimplência dos candidatos. Com esse modelo, as instituições financeiras podem identificar, de forma mais eficiente, candidatos com maior propensão a inadimplência, otimizando a gestão de riscos e mitigando possíveis perdas financeiras.
- **Implementação de Técnicas Avançadas de Machine Learning**: O uso do ajuste de threshold no modelo **XGBoost** foi essencial para maximizar o recall da classe 1 (inadimplentes), sem comprometer a estabilidade do modelo. Essa abordagem sofisticada elevou o desempenho do modelo além dos métodos convencionais, garantindo uma maior segurança na identificação de inadimplentes e oferecendo um diferencial competitivo ao integrar uma estratégia de machine learning avançada na análise de crédito.
- **Contribuição para a Tomada de Decisões**: Ao oferecer uma solução preditiva com alta precisão e recall, o modelo proporciona às equipes de crédito uma ferramenta eficaz para apoio na tomada de decisões, permitindo a personalização de estratégias de concessão e, assim, promovendo uma maior estabilidade financeira. Esse projeto reflete o potencial transformador da ciência de dados no setor financeiro, onde a capacidade de prever e antecipar comportamentos de inadimplência é um ativo valioso.
Esses resultados reforçam o sucesso do projeto e demonstram que a combinação de técnicas avançadas de machine learning com a adaptação criteriosa dos thresholds de classificação pode atender, de forma eficaz, aos objetivos de redução de riscos e otimização de decisões em concessão de crédito.
## 🖼️ Screenshots
Aqui estão algumas capturas de tela das análises:
## 📞 Contato
- 📫 Você pode entrar em contato comigo pelo meu [e-mail](mailto:[email protected]).
- 💼 Meu perfil no [LinkedIn](https://www.linkedin.com/in/tnleite/) para acompanhar meu progresso e projetos.
- ✍🏻 Meu perfil no [Medium](https://medium.com/@thiago.leit) para ver artigos publicados.
- 🌐 Meu [Portfólio](https://thiagoleitedata.com.br) para visualizar outros projetos.