Skip to content

A Credit Limit Classification Business Problem. We need to develop a model in 2 days to predict if a bank should concede or not give a higher credit limit to its clients.

Notifications You must be signed in to change notification settings

mbouhid/hackdays3_credit_limit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Credit Limit

Projeto desenvolvido durante o evento 3º Hackday CDS (Comunidade Data Science), utilizando algoritmos de Machine Learning via Python, para solucionar um problema de classificação de clientes.

Objetivos: Simular ambiente de negócio real | Trabalho em equipe | Networking | Aceleração do conhecimento

Getting Started

Table of Content

AboutThe ProblemGoalsAssumptionsToolsStepsSolutionHow to useLessons LearnedNext StepsReferencesAutorTeamLicense

About

O Billion Bank é um banco digital brasileiro, fundado em 2021. Trabalha hoje com contas digitais, e cartões de crédito.

The Problem

Quando um cliente solicita aumento de limite no cartão de crédito, o banco consulta uma empresa de crédito terceira, que retorna uma recomendação: "negar" ou "conceder". Essa resposta é repassada ao cliente. Dado que a empresa de crédito precisa levantar maiores informações de histórico financeiro do cliente com terceiros, o retorno da recomendação ao banco leva até 5 dias úteis!

Tratando-se de um serviço, a cada solicitação de aumento de limite feita por um cliente, o banco tem um custo adicional de consulta. Visando reduzir este custo, em 2022, o banco passou a só aceitar novos pedidos de aumento de limite a cada 3 meses. O banco viu um aumento leve do churn no primeiro semestre, que se acentuou mais no segundo, chegando a um ponto já preocupante. O time de CS fez contato com antigos clientes, e constatou que o principal motivo do churn foi a percepção de burocracia relacionada ao aumento nos limites.

Goals

  • Desburocratizar o processo, permitindo que o cliente possa solicitar um novo limite uma vez por semana, tendo uma resposta instantânea.
  • Desativar as consultas de recomendação de aumento de limites feitas hoje com a empresa terceira, que são demoradas e custosas.
  • O modelo deverá avaliar a solicitaçaõ de aumento de limite de cartão de crédito.
  • O modelo irá informar se o banco deverá conceder ou não o aumento do limite de crédito solicitado pelo cliente.

Planning

Assumptions

  • Registros com idade superiores a 18 anos

Tools

As seguintes ferramentas foram usadas na construção do projeto:

Execution

A solução do problema se dará com base no ciclo CRISP, em alguns passos que foram adaptados a metodologia. Aplicamos um modelo de Machine Learning de classificação:

  • Coletando dados : coleta de dados de um dataset, disponibilizado pela organização do evento, na plataforma Kaggle.
  • Limpeza dos dados : Verificação de tipos de dados e Nan's, renomear colunas, lidar com outliers.
  • Feature Engineering : Criar novos recursos/features a partir dos originais, para que possam ser usados no modelo de ML.
  • Exploratory Data Analysis (EDA) : Em tal etapa, os dados foram explorados para obter experiência de negócios, buscar insights úteis e encontrar recursos importantes para o modelo de ML.
  • Preparação de Dados : Aplicação de Técnicas de Normalização e Reescalonamento nos dados; métodos de Encondagem e Transformação de Variáveis de Resposta.
  • Seleção de features : Selecionando os melhores features para serem usadas no modelo de ML.
  • Machine Learning Modeling :
    • Rodar algoritmos: Naive Bayes (MixedNB), Random Forest (RandomForestClassifier), XGBoost (XGBClassifier).
    • Plotar curva de ganho cumulativo e lift, e calcular o F1 Score de cada modelo.
  • Hyperparameter Fine Tunning :
    • Fazer um ajuste fino de hiperparâmetros em cada modelo, identificando o melhor conjunto de parâmetros para maximizar suas capacidades de aprendizagem.
    • Aplicar validação cruzada em cada modelo, reduzindo o viés de seleção (teoria da amostragem), por utilizar várias amostras diferentes dos dados.
    • Calcular F1 Score dos 3 modelos, e selecionar o de melhor performance.
    • Submeter esse modelo aos dados de teste, e plotar suas curvas de ganho cumulativo e lift.
  • Performance do modelo :
    • XGBoost - Média ponderada com F1 Score (dados validação): 0.86
    • XGBoost - Média ponderada com F1 Score (dados teste): 0.86
    • O modelo apresenta boa capacidade de generalização (classificar dados inéditos)

Solution

  • Criação de novas features
  • A métrica utilizada foi a F1Score (média harmónica entre a precision(tentativas) e a recall(disponibilidade))

How to use

Lessons Learned

  • Em projetos com curto espaço de tempo, importante estruturar e executar um modelo o mais rápido possível, pois o resultado servirá de baseline para os próximos.
  • Planejar, definir e designar bem as atividades de cada participante.
  • Focar em discussões para a criação de novas features.
  • Conhecer sobre o negócio e entender as features do dataset original.

Next Steps

References

Kaggle

Comunidade Data Science

Autor

Linkedin Badge

Team

Marcio Bouhid(https://www.linkedin.com/in/marciobouhid/)

Danillo Barros(https://www.linkedin.com/in/danillo-cordeiro/)

Almir Lopes(https://www.linkedin.com/in/almirmartinslopes/)

License

GNU General Public License v3.0

About

A Credit Limit Classification Business Problem. We need to develop a model in 2 days to predict if a bank should concede or not give a higher credit limit to its clients.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published