- Link para o notebook através do nbviewer (Recomendado para uma melhor visualização):
Disclaimer: O Contexto a seguir, é completamente fictício, a empresa, o contexto, as perguntas de negócio foram criadas apenas para o desenvolvimento do projeto, e se baseiam em um projeto do site https://sejaumdatascientist.com/.
A TopBank é uma grande empresa de serviços bancários. Ela atua principalmente nos países da Europa oferecendo produtos financeiros, desde contas bancárias até investimentos, passando por alguns tipos de seguros e produto de investimento.
O modelo de negócio da empresa é do tipo serviço, ou seja, ela comercializa serviços bancários para seus clientes através de agências físicas e um portal online.
O principal produto da empresa é uma conta bancária, na qual o cliente pode depositar seu salário, fazer saques, depósitos e transferência para outras contas. Essa conta bancária não tem custo para o cliente e tem uma vigência de 12 meses, ou seja, o cliente precisa renovar o contrato dessa conta para continuar utilizando pelos próximos 12 meses.
Segundo o time de Analytics da TopBank, cada cliente que possui essa conta bancária retorna um valor monetário de 15% do valor do seu salário estimado, se esse for menor que a média e 20% se esse salário for maior que a média, durante o período vigente de sua conta. Esse valor é calculado anualmente.
Por exemplo, se o salário mensal de um cliente é de R$1.000,00 e a média de todos os salários do banco é de R$800. A empresa, portanto, fatura R$ 200 anualmente com esse cliente. Se esse cliente está no banco há 10 anos, a empresa já faturou R$2.000,00 com suas transações e utilização da conta.
Nos últimos meses, o time de Analytics percebeu que a taxa de clientes cancelando suas contas e deixando o banco, atingiu números inéditos na empresa. Preocupados com o aumento dessa taxa, o time planejou um plano de ação para diminuir taxa de evasão de clientes.
Preocupados com a queda dessa métrica, o time de Analytics da TopBank, contratou você como consultor de Data Science para criar um plano de ação, com o objetivo de reduzir a evasão de clientes, ou seja, impedir que o cliente cancele seu contrato e não o renove por mais 12 meses. Essa evasão, nas métricas de negócio, é conhecida como Churn.
Como um Consultor de Ciência de Dados, você precisa criar um plano de ação para diminuir o número de clientes em churn e mostrar o retorno financeiro da sua solução.
Ao final da sua consultoria, você precisa entregar ao CEO da TopBank um modelo em produção, que receberá uma base de clientes via API e retornará essa mesma base “scorada”, ou seja, um coluna à mais com a probabilidade de cada cliente entrar em churn.
Além disso, você precisará fornecer um relatório reportando a performance do seu modelo e o impacto financeiro da sua solução. Questões que o CEO e o time de Analytics gostariam de ver em seu relatório:
- Qual a taxa atual de Churn da TopBank? Como ela varia mensalmente?
- Qual a Performance do modelo em classificar os clientes como churns?
- Qual o retorno esperado, em termos de faturamento, se a empresa utilizar seu modelo para evitar o churn dos clientes?
Uma possível ação para evitar que o cliente entre em churn é oferecer um cupom de desconto, ou alguma outro incentivo financeiro para ele renovar seu contrato por mais 12 meses.
Para quais clientes você daria o incentivo financeiro e qual seria esse valor, de modo a maximizar o ROI (Retorno sobre o investimento). Lembrando que a soma dos incentivos não pode ultrapassar os R$10.000,00
O conjunto de dados que será utilizado para criar a solução para a TopBank, está disponível na plataforma do Kaggle. Esse é o link: https://www.kaggle.com/mervetorkan/churndataset
Cada linha representa um cliente e cada coluna contém alguns atributos que descrevem esse cliente. O conjunto de dados inclui informações sobre:
-
RowNumber: O número da coluna
-
CustomerID: Identificador único do cliente
-
Surname: Sobrenome do cliente.
-
CreditScore: A pontuação de Crédito do cliente para o mercado de consumo.
-
Geography: O país onde o cliente reside.
-
Gender: O gênero do cliente.
-
Age: A idade do cliente.
-
Tenure: Número de anos que o cliente permaneceu ativo.
-
Balance: Valor monetário que o cliente tem em sua conta bancária.
-
NumOfProducts: O número de produtos comprado pelo cliente no banco.
-
HasCrCard: Indica se o cliente possui ou não cartão de crédito.
-
IsActiveMember: Indica se o cliente fez pelo menos uma movimentação na conta bancário dentro de 12 meses.
-
EstimateSalary: Estimativa do salário mensal do cliente.
-
Exited: Indica se o cliente está ou não em Churn.
1. Entendimento do negócio e problemas e serem resolvidos - Buscar entender os reais motivos da necessidade da previsão de churn e como o probelma pode ser resolvido através de machine learning, quais aspectos serão considerados na hora da predição e quão melhor a solução proposta pode ser considerando os modelos de predição utilizados atualmente na empresa.
2. Coleta de dados - Acesso a plataforma do Kaggle para download dos arquivos que serão usados.
3. Limpeza dos dados - Os dados são analisados usando diferentes técnicas para verificar a existência de dados faltantes, outliers (valor discrepantes) , ou qualquer tipo de inconsistências para que assim possam ser tratados devidamente e não impactar nas análises futuras.
4. Exploração dos dados - Busca um melhor entendimento do negócio através da geração de insights e das variáveis mais importantes na modelagem do modelo de Machine Learning. Diversas hipóteses foram levantadas e validadas para obtenção de um conhecimento de negócio mais profundo, verificando também a correlação entre os atributos para que se possa ter uma ideia da importância de cada um para o modelo de machine learning.
5. Preparação dos dados - Os dados foram transformados, balanceados e regularizados para que atendam as premissas de funcionamento dos algoritmos de machine learning, nesta etapa é importante deixar os dados preparados para que os algoritmos possam ter o melhor desempenho possível, e possíveis inconsistencias no dataset não interfiram no resultado final.
6. Seleção de features - Após a preparação dos dados nesta seção algoritmos, como o Boruta e o feature importance, selecionarão as melhores colunas a serem utilizadas para o treinamento do modelo de machine learning. Elas serão analisadas e selecionadas de acordo com descobertas feitas na análise exploratória e levando em conta o contexto de nagócio.
7. Aplicação dos algoritmos de machine learning - Nesta etapa foram escolhidos os algoritmos de machine learning que seriam usados e então os mesmos foram treinados com os dados já preparados e prontos, cada algoritmo foi testado usando seus devidos parâmetros e posteriormente estratégias de cross validation foram usadas para verificar o real resultado do medelo, bem como tecnicas de hyperparameter fine tunning para encontrar os melhores parâmetros para o modelo escolhido.
8. Avaliação do algoritmo - O algoritmo é avaliado com base em algumas métricas e nesse ponto verifica-se ou não a necessidade de realizar mais um ciclo para melhorar o desempenho final.
9. Tradução do erro em métricas de negócio - Com o melhor modelo escolhido, treinado e otimizado a taxa de erro encontrada é trasnformada em mátricas de negócio para que se saiba concretamente quanto de retorno financeiro aquela solução trouxe para a empresa.
10. Deploy do modelo em produção - O modelo foi colocado em produção no ambiente cloud Heroku para que as predições possam ser utilizadas através de requisições a uma API.
- Pesosas que possuem cartão de crédito e são ativas entram mais em churn
- Mulheres entram 27% a mais em churn do que homens
- Pessoas com salário maior do que a média entram mais em churn
Os algoritmos utilizados para fazer a predição foram:
- Modelo Dummy Clisifier para que fosse possível ter um modelo base de comparação,
- Logistic Regression;
- KNN;
- Naive Bayes;
- SVC;
- Random Forest Classifier;
- XGBoost Classifier.
Após a realização dos testes com todos os algoritmos e verificação das métricas de performnace, verificou-se um melhor desempenho nos algoritmos baseados em árvores ( Random Forest e XBBoost) e então a decisão foi usar o algoritmo XGBoost pois é um algoritmo mais leve do que o Random Forest quando exportado e colocado em produção.
Através da interpretação do erro do modelo de machine learning e guiado pelas perguntas de negócio foi possível avalia-lo de meneira a agregar valor para o cliete, com os resultados financeiros apresentados a seguir. Os resultados serão exibidos de acordo com as perguntas de negócio propostas no começo do projeto.
1. Qual a taxa atual de Churn da TopBank?
A taxa atual de churn do TopBank é de 20.4%
2. Qual a Performance do modelo em classificar os clientes como churns?
O modelo possuou uma acurácia de 76%, conseguindo identificar os clientes que de fato entraram em churn em 67% dos casos (métrica Recall).
3. Qual o retorno esperado, em termos de faturamento, se a empresa utilizar seu modelo para evitar o churn dos clientes?
- Para realização do cálculo de retorno financeiro foi utilizado uma amostra de 1000 clientes (10% do dataset).
- Para comparação com os dados reais foram utlizados os valores da predição final do modelo.
**O retorno total de todos os clientes que entraram em churn é de $3.658.649,98 **O retorno total dos clientes que o modelo previu que entrariam em churn é de $2.540.855,07
- Se fosse possível evitar que todos os clientes entrassem em churn seria possível recuperar aproximadamente 70% do valor total.
4. Incentivo Financeiro
Uma possível ação para evitar que o cliente entre em churn é oferecer um cupom de desconto, ou algum outro incentivo financeiro para ele renovar seu contrato por mais 12 meses.
Para quais clientes você daria o incentivo financeiro e qual seria esse valor, de modo a maximizar o ROI (Retorno sobre o investimento). Lembrando que a soma dos incentivos não pode ultrapassar os $10.000,00
Ainda levando em conta a amostra de 1000 clientes, foi possível analisar a probabilidade de cada cliente entrar em churn segundo o algoritmo e decidir de qual forma o incentivo finaceiro seria oferecido. Após algumas análises foram definidas as seguintes estratágias (foram considerados apenas clientes que o algoritmo previu como "positivos" para o churn):
Foi definido um ponto de corte (threshold) de 0.95, ou seja, a probabilidade dos clientes entrarem em churn foi comparada com esse ponto de corte e a partir disso foram definidos "grupos" que receberiam o incentivo.
- Clientes com uma probabilidade de mais de 95% não receberiam o incentivo, pois foi considerado que possuem uma probabilidade muito grande a entrarem em churn e seria muito difícil convence-los a renovar o contrato mesmo com um incentivo finaceiro.
- Clientes com uma probabilidade maior do que 90% e menor do que 95% receberiam um incentivo de 250.
- Clientes com uma probabilidade entre 90% e 70% receberiam um incentivo de 200.
- Clientes com uma probabilidade menor do que 70% receberiam um incentivo de 100.
Supondo que fosse possível evitar que todos os clientes que receberam o incentivo entrassem em churn, e então consequentemente renovassem seus contratos, seria possível obter um retorno finaceiro de $ 938.235,39, a partir de um investimento de $9.800 que foi o budget máximo definido.
Após todo o estudo, análise e testes com diferentes modelos de machine learning foi possível responder as perguntas do CEO e entregar uma solução que pode ser utilizada como uma plano de ação para tentar evitar que os clientes entrem em churn. Com os restultados do modelos e também com os insights gerados pelos dados é possível otimizar a tomada de decisão do time de negócio fazendo com que cada decisão seja mais acertiva e tenha uma probabilidade de retorno maior. O algoritmo pode ser aperfeiçoado com análises mais profundas ou até mesmo com uma possível coleta de mais dados que ajudariam a modelar e entender ainda mais o problema, com a possibilidade de geração de novas hipóteses de negócio que poderiam se tornar novos insights acionáveis.
De uma forma geral os resultados obtidos e o projeto como um todo poderiam ser utilizados de diversas maneiras para agregar valor para a empresa, tendo em vista que o custo para menter o cliente é menor do que o de conquistar um cliente novo, poder prever com uma boa acertividade quais clientes entrariam em churn e assim tomar alguma medida que pudesse evitar isso se mostra uma estratégia muito inteligente em tempos onde a competição nos mais variados setores cresce quase que de forma exponecial, e empresas que não perceberem a importância dos dados ficarão obsoletas rapidamente.