{"id":22084908,"url":"https://github.com/tnleite/loan-approval-prediction","last_synced_at":"2026-04-13T12:01:15.503Z","repository":{"id":261457540,"uuid":"883900451","full_name":"tnleite/loan-approval-prediction","owner":"tnleite","description":"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.","archived":false,"fork":false,"pushed_at":"2024-11-30T12:39:09.000Z","size":20728,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T21:46:48.712Z","etag":null,"topics":["classification-algorithm","data-science","exploratory-data-analysis","machine-learning-algorithms","machine-learning-models","matplotlib","numpy","scikit-learn","scipy","seaborn","xgboost-classifier"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tnleite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-05T19:18:02.000Z","updated_at":"2024-11-30T12:39:12.000Z","dependencies_parsed_at":"2024-12-01T16:49:45.181Z","dependency_job_id":null,"html_url":"https://github.com/tnleite/loan-approval-prediction","commit_stats":null,"previous_names":["tnleite/loan-approval-prediction"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tnleite/loan-approval-prediction","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tnleite%2Floan-approval-prediction","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tnleite%2Floan-approval-prediction/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tnleite%2Floan-approval-prediction/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tnleite%2Floan-approval-prediction/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tnleite","download_url":"https://codeload.github.com/tnleite/loan-approval-prediction/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tnleite%2Floan-approval-prediction/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31751705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification-algorithm","data-science","exploratory-data-analysis","machine-learning-algorithms","machine-learning-models","matplotlib","numpy","scikit-learn","scipy","seaborn","xgboost-classifier"],"created_at":"2024-12-01T01:08:19.459Z","updated_at":"2026-04-13T12:01:15.481Z","avatar_url":"https://github.com/tnleite.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💳 Previsão de Aprovação de Empréstimos: Análise e Modelagem\n\n\u003cimg src=\"03-Recursos/imagem_capa.png\"\u003e\n\n[![Python Version](https://img.shields.io/badge/Python-3.11.10-blue?logo=python\u0026logoColor=white)](https://www.python.org/)\n[![Jupyter Version](https://img.shields.io/badge/Jupyter-Notebook-orange?logo=jupyter)](https://jupyter.org/)\n[![Pandas](https://img.shields.io/badge/Pandas-1.5.3-green?logo=pandas)](https://pandas.pydata.org/)\n[![NumPy](https://img.shields.io/badge/NumPy-1.24.3-blue?logo=numpy\u0026logoColor=white)](https://numpy.org/)\n[![Matplotlib](https://img.shields.io/badge/Matplotlib-3.7.1-blue?logo=matplotlib)](https://matplotlib.org/)\n[![Seaborn](https://img.shields.io/badge/Seaborn-0.12.2-blue?logo=seaborn)](https://seaborn.pydata.org/)\n[![SciPy](https://img.shields.io/badge/SciPy-1.10.1-blue?logo=scipy\u0026logoColor=white)](https://scipy.org/)\n[![Scikit-Learn](https://img.shields.io/badge/Scikit--Learn-1.5.1-orange?logo=scikit-learn\u0026logoColor=white)](https://scikit-learn.org/)\n[![XGBoost](https://img.shields.io/badge/XGBoost-2.1.2-blue?logo=xgboost)](https://xgboost.readthedocs.io/)\n[![Project Status](https://img.shields.io/badge/Status-Completed-green)]()\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\n\n## 📝 Descrição do Projeto  \nEste 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.\n\nAs principais etapas deste projeto incluem:\n\n1. **Análise Exploratória de Dados (EDA)**:  \n   - 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.\n\n2. **Modelagem Preditiva**:  \n   - 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.\n\n3. **Ajuste de Threshold**:  \n   - 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.\n\nEssas 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.\n\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"03-Recursos/analise_video.gif\" alt=\"GIF Análise\"\u003e\n\u003c/p\u003e\n\n## 🗂️ Estrutura do Repositório\nEste repositório está organizado da seguinte forma:\n- **01_Base_de_Dados**: Contém os arquivos de dados brutos utilizados para análise.\n- **02_Analise**: Contém o arquivo Jupyter com a análise e modelagem.\n- **03_Recursos**: Contém recursos visuais utilizados no projeto.\n\n## 🔍 Estrutura do Projeto\n\n### Parte 1: Análise Exploratória de Dados (EDA)\n- **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.\n- **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.\n- **Análise de Outliers**: Exploração dos dados para identificar valores extremos que possam influenciar os resultados da modelagem.\n\n### Parte 2: Modelagem Preditiva\n- **Seleção de Modelos**: Teste de vários algoritmos de classificação, incluindo Random Forest, Decision Tree, e XGBoost.\n- **Ajuste de Hiperparâmetros**: Otimização dos modelos para maximizar o desempenho, com foco no recall da classe de inadimplentes.\n- **Ajuste de Threshold**: Modificação do threshold de decisão para melhorar a sensibilidade na detecção de inadimplentes.\n\n## 💾 Demonstração e Uso\nPara explorar a análise e a modelagem, você pode seguir uma das opções abaixo:\n\n1. **Visualização Direta no GitHub**:\n   - Vá até a pasta **02-Analise** e abra o arquivo **Jupyter Notebook** diretamente no GitHub para visualizar a análise sem precisar baixar.\n   - [Clique aqui para acessar a pasta de análise](02-Analise/loan-approval-prediction.ipynb).\n\n2. **Download do Notebook**:\n   - Caso a visualização no GitHub não funcione adequadamente ou prefira trabalhar localmente, você pode baixar o arquivo que está no caminho anterior.\n\n3. **Instruções de Uso Local**:\n   - Após baixar, abra o notebook no Jupyter ou em uma plataforma que suporte notebooks IPython.\n   - Execute as células sequencialmente para visualizar as análises e gráficos.\n\n## 🛠️ Tecnologias Utilizadas\n- [Python](https://www.python.org/)\n- [Jupyter Notebook](https://jupyter.org/)\n- [Pandas](https://pandas.pydata.org/)\n- [Matplotlib](https://matplotlib.org/)\n- [Seaborn](https://seaborn.pydata.org/)\n- [Scikit-Learn](https://scikit-learn.org/)\n- [XGBoost](https://xgboost.readthedocs.io/)\n\n## 🏗️ Arquitetura e Fluxo de Análise\n\u003cimg src=\"03-Recursos/arquitetura_dados.png\"\u003e\n\nO fluxo de análise do projeto segue a estrutura abaixo:\n\n1. **Coleta de Dados**: Importação do dataset com informações sobre os solicitantes de empréstimo.\n2. **Manipulação e Limpeza de Dados**: Uso da biblioteca **Pandas** para preparar os dados, tratar valores ausentes e remover inconsistências.\n3. **Visualização Gráfica**: Criação de visualizações com **Matplotlib** e **Seaborn** para entender a distribuição e os padrões dos dados.\n4. **EDA**: Análise exploratória para compreender melhor as características e padrões do dataset.\n5. **Modelagem e Ajustes**: Uso do Scikit-Learn e XGBoost para construir modelos preditivos e ajustar hiperparâmetros, visando otimizar a detecção de inadimplentes.\n6. **Insights**: Interpretação dos resultados para gerar insights úteis para a tomada de decisão sobre a aprovação de empréstimos.\n\n## 📈 Impacto e Resultados\n\n- **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.\n\n- **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.\n\n- **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.\n\n- **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.\n\nEsses 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.\n\n\n## 🖼️ Screenshots\nAqui estão algumas capturas de tela das análises:\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"03-Recursos/img_analise_01.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"03-Recursos/img_analise_02.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"03-Recursos/img_analise_03.png\"\u003e\n\u003c/p\u003e\n\n## 📞 Contato\n- 📫 Você pode entrar em contato comigo pelo meu [e-mail](mailto:thiago.leit@hotmail.com).\n- 💼 Meu perfil no [LinkedIn](https://www.linkedin.com/in/tnleite/) para acompanhar meu progresso e projetos.\n- ✍🏻 Meu perfil no [Medium](https://medium.com/@thiago.leit) para ver artigos publicados.\n- 🌐 Meu [Portfólio](https://thiagoleitedata.com.br) para visualizar outros projetos.\n\n\u003cp align=\"left\"\u003e\n\u003ca href=\"mailto:thiago.leit@hotmail.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/Email-DF0000?style=for-the-badge\u0026labelColor=212121\u0026logo=maildotru\u0026logoColor=DF0000\" target=\"_blank\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/in/tnleite/\"\u003e\u003cimg src=\"https://img.shields.io/badge/LINKEDIN-0A66C2?style=for-the-badge\u0026labelColor=212121\u0026logo=linkedin\u0026logoColor=0A66C2\" target=\"_blank\"\u003e\u003c/a\u003e\n\u003ca href=\"https://wa.me/+5521964105121\"\u003e\u003cimg src=\"https://img.shields.io/badge/WHATSAPP-25D366?style=for-the-badge\u0026labelColor=212121\u0026logo=whatsapp\u0026logoColor=25D366\" target=\"_blank\"\u003e\u003c/a\u003e\n\u003ca href=\"https://medium.com/@thiago.leit\"\u003e\u003cimg src=\"https://img.shields.io/badge/MEDIUM-000000?style=for-the-badge\u0026labelColor=FFFFFF\u0026logo=medium\u0026logoColor=000000\" target=\"_blank\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftnleite%2Floan-approval-prediction","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftnleite%2Floan-approval-prediction","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftnleite%2Floan-approval-prediction/lists"}