O propósito principal deste projeto de análise de dados é prever a evasão (churn) de clientes com base em seus dados de serviço e perfil.
O objetivo é identificar os clientes com maior probabilidade de cancelar seus serviços, permitindo à empresa implementar estratégias de retenção proativas e direcionadas.
Este projeto é conduzido em um ambiente Jupyter Notebook, seguindo uma pipeline de análise de dados que inclui:
- ETL (Extração, Transformação e Carga): O arquivo
ETL.ipynbfoi utilizado para processar os dados brutos de um arquivo JSON. - Dados Tratados: O resultado do processo de ETL, o arquivo
dados_telecom_tratados.csv, é a base para a análise preditiva. - Análise Exploratória e Modelagem: O código para análise exploratória de dados (EDA) e a criação dos modelos preditivos são realizados sequencialmente.
A preparação dos dados foi uma etapa fundamental para garantir a qualidade do modelo. Etapas executadas:
- Limpeza e Tratamento:
- Remoção da coluna
ID_Cliente(sem valor preditivo). - Remoção de
Custo_Diario(derivada deCusto_Mensale causaria multicolinearidade).
- Remoção da coluna
- Codificação de Variáveis Categóricas:
Aplicado One-Hot Encoding para variáveis comoContrato,Metodo_Pagamento, etc. - Balanceamento de Classes:
- Proporção inicial: 26% evasão vs. 74% permanência.
- Utilizado SMOTE para criar exemplos sintéticos da classe minoritária, resultando em dados balanceados.
- Separação de Conjuntos:
- 80% treino (
X_train,y_train) - 20% teste (
X_test,y_test) - Com estratificação para manter a proporção de evasão.
- 80% treino (
Dois modelos de machine learning foram selecionados:
-
Regressão Logística
- Modelo linear sensível à escala dos dados.
- Utilizou
StandardScalerpara padronizar. - Escolha inicial pela interpretabilidade.
-
Random Forest
- Baseado em árvores de decisão.
- Não exige padronização.
- Captura relações não lineares complexas.
Principais descobertas:
-
Relação com o Tempo de Serviço:
Clientes que evadem tendem a ter tempo de serviço curto.
Boxplot deMeses_Servicomostrou mediana menor nos evadidos. -
Impacto do Tipo de Contrato:
Contratos mensais têm maior taxa de evasão do que anuais/bianuais. -
Relação com Custo:
Clientes com baixoCusto_Totale poucos meses de serviço são mais propensos à evasão.
Identificados via importância de variáveis (Random Forest) e correlação:
- Tipo de Contrato: Mais relevante; mensal → maior probabilidade de evasão.
- Tempo de Serviço (
Meses_Servico): Negativamente correlacionado; clientes antigos são mais leais. - Serviço de Internet: Fibra óptica → mais propensos a evadir; ausência de internet → forte indicador de permanência.
- Método de Pagamento: Cheque eletrônico → maior probabilidade de evasão; pagamentos automáticos → menor evasão.
Sugestões com base nos insights:
- Plano de Fidelização para Contrato Mensal: Descontos ou upgrades para migração para contratos longos.
- Campanhas para Clientes Recentes: Suporte mais próximo e benefícios adicionais.
- Melhoria no Serviço de Fibra Óptica: Pesquisas de satisfação e resolução de reclamações.
- Incentivar Pagamentos Automáticos: Benefícios para clientes que aderirem.
pip install pandas numpy scikit-learn matplotlib seaborn imblearnCertifique-se de que dados_telecom_tratados.csv está no diretório correto e rode:
import pandas as pd
df_telecom = pd.read_csv('dados_tratados/dados_telecom_tratados.csv')Rode as células do notebook sequencialmente para replicar todas as etapas.