Projeto voltado para solução e compartilhamento do Challenge Alura de Data Science 01, realizado no mẽs de maio de 2022!
Python foi a linguagem utilizada no desenvolvimento, utilizando Jupyer Notebooks para apresentar os resultados. Os principais pacotes utilizados foram:
- pandas
- numpy
- plotly
- seaborn
- scikit-learn
- imbalanced-learn
Você foi contratado(a) como cientista de dados pela operadora de telecomunicações Alura Voz. Na reunião inicial com as pessoas responsáveis pela área de vendas da empresa, foi explicada a importância de se reduzir a Taxa de Evasão de Clientes, conhecido como Churn Rate. Basicamente, o Churn Rate indica o quanto a empresa perdeu de receita ou clientes em um período de tempo. Com sua experiência, você sugere, como passo inicial, a identificação de clientes que teriam uma maior chance de deixar a empresa.
Assim, o desafio tem como objetivo utilizar conceitos de Data Science para explorar, tratar e modelar uma base de dados de clientes da Alura Voz. Com isso, serão testadas hipóteses para dscrever o padrão de ocorrência de Churn com relação às outras variáveis disponíveis. No total serão 4 semanas de desafio.
Após obtenção do dataset disponibilizado via API em formato JSON, foi realizado uma exploração preliminar para compreendê-los, assim como um tratamento dos dados originais para as futuras análises.
Um dicionário das colunas foi disponibilizado:
customerID
: número de identificação único de cada clienteChurn
: se o cliente deixou ou não a empresagender
: gênero (masculino e feminino)SeniorCitizen
: informação sobre um cliente ter ou não idade igual ou maior que 65 anosPartner
: se o cliente possui ou não um parceiro ou parceiraDependents
: se o cliente possui ou não dependentestenure
: meses de contrato do clientePhoneService
: assinatura de serviço telefônicoMultipleLines
: assisnatura de mais de uma linha de telefoneInternetService
: assinatura de um provedor internetOnlineSecurity
: assinatura adicional de segurança onlineOnlineBackup
: assinatura adicional de backup onlineDeviceProtection
: assinatura adicional de proteção no dispositivoTechSupport
: assinatura adicional de suporte técnico, menos tempo de esperaStreamingTV
: assinatura de TV a caboStreamingMovies
: assinatura de streaming de filmesContract
: tipo de contratoPaperlessBilling
: se o cliente prefere receber online a faturaPaymentMethod
: forma de pagamentoCharges.Monthly
: total de todos os serviços do cliente por mêsCharges.Total
: total gasto pelo cliente
A maioria das colunas são variáveis categóricas, mas também ocorrem variáveis numéricas. Alguns dos processamentos aplicados estão listados abaixo:
- Todas os nomes de colunas e valores de variáveis foram traduzidos para o português;
- Análise de inconsistências em todos os atributos (ex: valores nulos, tipo de dado incorreto, etc.);
- Correções de inconsistências em três colunas do dataset (churn, idoso e cobranca_total);
- Nova coluna criada para representar o gasto diário de cada cliente (cobranca_diaria).
Com a finalização do pré-processamento da base de dados, a análise se voltou à exploração dos dados e geração de gráficos para obter insights.
-
Distribuição da variável target (churn): a taxa de churn está em patamar bastante elevado, cerca de 26% dos usuários.
- Relação entre taxa de churn e meses de contrato: um padrão bastante interessante foi percebido nesta análise: a maioria dos clientes que cancelaram os serviços da Alura Voz o fizeram logo nos primeiros meses de contrato com a empresa. Portanta há uma dificuldade em fidelizar os clientes.
Ao detalhar essa análise incluindo variáveis categóricas como idade, gênero e existência de dependentes, pode-se traçar um perfil genérico dos clientes que cancelam a assinatura da Alura Voz nos primeiros meses de serviço: pessoas mais jovens e sem dependentes, provavelmente jovens solteiros, sem distinção de gênero.
- Relação entre taxa de churn, gênero e idade: o gênero dos clientes está distribuído em duas partes praticamente perfeitas e, aleḿ disso, a taxa de churn não varia conforme o gênero dos clientes. Por outro lado, clientes com mais de 65 anos são minoria no total de clientes, porém representam a maioria dos clientes que cancelaram os serviços da Alura Voz.
- Relação entre taxa de churn, dependentes e parceiro: no geral, foi verificado uma tendência da taxa de churn ser maior em consumidores sem dependentes e sem parceiros. Uma interpretação possível é que pessoas solteiras tendem a ser mais jovens e não possuem grande estabilidade financeira, desta forma pequenas variações nos preços e qualidade dos serviços prestados já são suficientes para aumentar a taxa de churn nesse grupo de pessoas.
-
Relação entre taxa de churn e o tipo de internet contratado: ficou evidente que a taxa de churn é maior em clientes que contrataram fibra ótica, possivelmente esta modalidade de seviço não esta agradando os clientes
-
Relação entre taxa de churn e a contratação de serviços adicionais de segurança: nesta etapa foi analisado como a contratação de serviços adicionais está impactando a taxa de churn. Em todos os casos os serviços parecem agradar os cleintes contratantes, já que a taxa de churn é relativamente maior nos clientes que não contrataram estes servços.
-
Relação entre taxa de churn e variáveis contratuais: com relação às variáveis contratuais e de forma de pagamento, alguns padrões bem claros foram identificados: a taxa de churn é proporcionalmente maior em clientes que optaram por receber a fatura online, que firmaram contratos mensais e que tem o cheque eletrônico como forma de pagamento.
A partir das análises realizadas nas semanas anteriores, foi possível entender minuciosamente o dataset do desafio e formular algumas hipóteses sobre os fatores que condicionam a ocorrência de um caso de churn. Na semana 3, para reforçar ou contradizer as hipóteses iniciais, o objetivo foi criar modelos de machine learning capazes de predizer casos de churn.
Os algoritmos classificadores de machine learning, apesar de muito potentes, necessitam que os dados de input estejam o mais simplificado possível, como por exemplo a substituição de atributos categóricos por atributos de lógica binária. Para isso, novos processamentos foram aplicados na base de dados:
- Linhas com valor 'indefinido' na variável target foram descartadas;
- Atributos categóricos do tipo string foram convertidos para inteiro, seguindo lógica binária (ex: 'Não' = 0, 'Sim' = 1);
- Técnica de One-Hot Encoding em colunas categóricas com mais de 2 categorias possíveis (ex: servico_internet);
- Balanceamento dos dados com relação à coluna target aplicando oversampling com algoritmo SMOTE.
model | accuracy | precision | recall | f1_score |
---|---|---|---|---|
LinearSVC | 0.834171 | 0.829771 | 0.840681 | 0.835190 |
DecisionTree | 0.824507 | 0.817562 | 0.835267 | 0.826320 |
RandomForest | 0.838423 | 0.813620 | 0.877804 | 0.84449 |
Por conta do melhor desempenho do modelo RandomForest, foi realizada ainda uma etapa de otimização utilizando o algoritmo RandomizedSearchCV.
Nesta etapa, os melhores hiperparâmetros encontrados foram os seguintes:
{'n_estimators': 250, 'min_samples_split': 2, 'min_samples_leaf': 1, 'max_features': 'auto', 'max_depth': 6, 'criterion': 'entropy'}
A perfomance do modelo foi otimizada com sucesso, como é possível perceber nos novos valores das métricas de classificação e na matriz de confusão:
metric | value |
---|---|
Acurácia | 0.8218013142636258 |
Precisão | 0.786896551724138 |
Recall | 0.8824439288476411 |
F1 score | 0.8319358366751732 |
Com essa análise, é possível perceber que as variáveis mais importantes estão relacionadas ao tempo e tipo de contrato de contrato, ao preço dos serviços e também variáveis relacionadas ao serviço de internet.
Ao fim do desafio, os resultados obtidos permitem traçar um perfil característico dos clientes que tendem a cancelar os serviços da Alura Voz. Eles tendem a ser clientes novos, que fecham contratos mensais, utilizam cheque eletrônico como forma de pagamento e tem valor de cobrança mensal geralmente superior a 60. Além disso, há proporcionalmente mais casos de churn entre os clientes idosos e clientes sem dependentes ou parceiros. Outro ponto relevante é que os serviços adicionais oferecidos da Alura Voz estão tendo sucesso em fidelizar os clientes.