- Telecom Customer Churn
Uma empresa de telecom que fornece serviços está preocupada em reduzir a taxa de retenção de seus clientes. Portanto, o gerente de CRM te contratou para que você desenvolva um modelo de predição de clientes que provavelmente irão parar de utilizar os serviços da empresa. A ideia é alcançar o máximo de clientes que possivelmente irão entrar em churn pois a empresa quer manter o máximo de clientes com seus serviços ativos. Para executar esse projeto, a empresa te forneceu uma base de dados histórica de 7043 clientes com 21 colunas que estão listadas abaixo.
A análise foi realizada utilizando o modelo CRISP-DM, o CRISP-DM (Cross Industry Standard Process for Data Mining) é um modelo padrão de processo para projetos de mineração de dados que define um conjunto de fases e tarefas que devem ser executadas para desenvolver soluções de mineração de dados efetivas.
O modelo CRISP-DM é uma abordagem sistemática e estruturada para a mineração de dados que ajuda as empresas a desenvolver soluções de mineração de dados de maneira eficiente e eficaz, reduzindo o tempo e os custos do projeto.
Utilize um modelo de classificação para mapear qual o perfil de usuários tem mais chance parar de utilizar os serviços da empresa. Compreender quem é o perfil que está aumentando o churn do seu negócio é essencial para tomar ações que reduzam essas perdas, seja alterando critérios na venda ou modificando o produto.
Coluna | Descrição |
---|---|
customerID | Id do cliente |
gender | Sexo do cliente |
SeniorCitizen | Se o cliente é idoso ou não |
Partner | Se o cliente faz parte de algum relacionamento ou não |
Dependents | Se o cliente possui dependentes ou não |
tenure | Número de meses que o cliente permaneceu c/ a empresa |
PhoneService | Se o cliente tem atendimento telefônico ou não |
MultipleLines | Se o cliente tem várias linhas ou não |
InternetService | Provedor de serviços de internet do cliente |
OnlineSecurity | Se o cliente tem segurança online ou não |
OnlineBackup | Se o cliente tem backup online ou não |
DeviceProtection | Se o cliente tem proteção de dispositivo ou não |
TechSupport | Se o cliente tem suporte técnico ou não |
StreamingTV | Se o cliente tem streaming de TV ou não |
StreamingMovies | Se o cliente tem streaming de filmes ou não |
Contract | O prazo do contrato do cliente |
PaperlessBilling | Se o cliente tem recebe conta em papel ou não |
PaymentMethod | A forma de pagamento do cliente |
MonthlyCharges | O valor cobrado mensalmente do cliente |
TotalCharges | O valor total cobrado do cliente |
Churn | Indicador se o cliente deu churn (1) ou não (0) |
Nosso objetivo é reduzir a taxa de cancelamento (churn), portanto, testamos vários modelos de classificação para prever o perfil dos clientes propensos a cancelar ou não. Também utilizamos técnicas de balanceamento de dados, como Random Oversampling, SMOTE, ADASYN e Random Undersampling.
Criamos um pipeline de pré-processamento e um pipeline para cada modelo e técnica de balanceamento. No final, o pipeline de regressão logística em conjunto com a técnica de oversampling aleatório apresentou o melhor desempenho, com um F1 de 0.64.
No entanto, esta é a versão 0.1.0 do projeto, e há vários pontos que serão atualizados em versões futuras. Com isso em mente, listamos algumas possíveis atualizações que podem ser feitas no futuro:
-
Exploração dos dados: Analisar os dados com mais detalhes para entender melhor as características dos clientes churn e identificar padrões ou insights relevantes. Isso pode ajudar a identificar variáveis-chave que afetam o churn e a orientar a seleção de recursos e técnicas de pré-processamento mais adequadas.
-
Engenharia de recursos: Considerar a possibilidade de criar novas variáveis ou transformar as existentes para capturar melhor a informação relevante para a previsão do churn. Isso pode envolver a criação de variáveis agregadas, razões ou categorizações mais refinadas.
-
Seleção de recursos: Utilizar técnicas de seleção de recursos para identificar as variáveis mais relevantes para o problema de churn. Isso pode ajudar a simplificar o modelo, reduzir o ruído e melhorar a generalização.
-
Experimentação com diferentes modelos: Embora a regressão logística tenha apresentado bom desempenho, vale a pena explorar outros algoritmos de classificação, como árvores de decisão, random forest, gradient boosting, SVM, entre outros. Cada algoritmo tem suas próprias características e pode se adaptar melhor ao seu conjunto de dados específico.
-
Ajuste de hiperparâmetros: Experimentar ajustar os hiperparâmetros do seu modelo para otimizar o desempenho. O ajuste correto dos hiperparâmetros pode melhorar significativamente o desempenho do modelo.
-
Validação cruzada: Utilizar técnicas de validação cruzada para avaliar o desempenho do modelo de forma mais robusta. Isso envolve dividir o conjunto de dados em conjuntos de treinamento e teste em várias iterações para obter estimativas mais confiáveis do desempenho do modelo.
-
Outras métricas de avaliação: Além do F1-score, considerar outras métricas de avaliação, como precisão, recall, matriz de confusão, curva ROC e área sob a curva (AUC-ROC). Essas métricas podem fornecer uma visão mais completa do desempenho do modelo em diferentes aspectos.
-
Validação externa: Se possível, validar o desempenho do seu modelo em um conjunto de dados externo ou em um ambiente de produção. Isso ajuda a verificar se o desempenho observado é generalizável e se o modelo está realmente fornecendo insights úteis para a empresa.
Iniciando a etapa de implementação do modelo em produção.
Abaixo, listarei os requisitos necessários para que o projeto funcione corretamente.
Você pode baixá-lo em: https://www.anaconda.com/download/
Criando ambiente virtual:
conda create -n .tcc python=3.10.6
Entrando no ambiente virtual:
conda activate .tcc
Instale as dependências:
pip install -r core/requirements.txt
Linkedin: https://www.linkedin.com/in/samuel-barbosa-dev/
E-mail: samueloficial@protonmail.com