Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/diegoribeiro2/previsao_de_churn_utilizando_python_e_streamlit

Projeto de previsibilidade de churn utilizando Python e Streamlit, aaplicando os conhecimentos sobre classificação para desenvolver um modelo que prevê se um cliente irá ou não cancelar o serviço (churn).
https://github.com/diegoribeiro2/previsao_de_churn_utilizando_python_e_streamlit

jupyter-notebook python streamlit

Last synced: 10 days ago
JSON representation

Projeto de previsibilidade de churn utilizando Python e Streamlit, aaplicando os conhecimentos sobre classificação para desenvolver um modelo que prevê se um cliente irá ou não cancelar o serviço (churn).

Awesome Lists containing this project

README

        

Introdução:

Neste case prático, analisei a previsibilidade de churn utilizando Python e Streamlit.
O objetivo é aplicar os conhecimentos adquiridos sobre classificação para desenvolver um modelo que prevê se um cliente irá ou não cancelar o serviço (churn).

Foi utilizado um dataset da IBM com dados fictícios de uma companhia telefônica.
O case seguiu as etapas do processo CRISP-DM de mineração de dados para construir o modelo preditivo.
Em seguida, o modelo foi disponibilizado em um aplicativo Streamlit para prever novos clientes.

Etapas do Case:

As etapas propostas para resolução do case são:

- Criar um arquivo requirements.txt com as bibliotecas Python necessárias
- Criar um ambiente virtual para isolamento das dependências
- Desenvolver o modelo seguindo as etapas do CRISP-DM
- Criar um app Streamlit para prever novos clientes

Entendimento dos Dados:

O conjunto de dados fornecido contém 7043 linhas (clientes) e 21 colunas (variáveis ou atributos) sobre cada cliente.
As variáveis incluem informações demográficas (gênero, idade, região, etc), serviços utilizados (internet, segurança online, backups), dados de pagamentos e suporte.
A variável-alvo que queremos prever é a coluna “Churn”, que indica se o cliente cancelou (1) ou não (0) o serviço.

Preparação dos Dados

Realizei algumas transformações nos dados para prepará-los para o modelo de machine learning:

- Converte valores ausentes para NaN
- Substitui NaN por média, mediana ou valor mais frequente
- Codifica variáveis categóricas como valores numéricos
- Normaliza os dados para uma escala comum
- Divide o conjunto entre treino (80%) e teste (20%)

Esse pré-processamento é essencial para garantir a qualidade dos dados que alimentam o modelo.

Modelagem:

Testei vários algoritmos de classificação, utilizando validação cruzada para avaliar o desempenho dentro do conjunto de treino:

- Regressão Logística
- Árvores de Decisão
- Florestas Aleatórias
- Máquinas de Vetor de Suporte (SVM)

O melhor modelo foi uma Floresta Aleatória com acurácia de ~85% na validação cruzada.

Avaliação:

Finalmente, avaliei o desempenho do modelo escolhido no conjunto de teste, obtendo 84% de acurácia. Isso indica que o modelo generaliza bem para dados totalmente novos.
Também analiseis a matriz de confusão, curva ROC, precisão, recall e outras métricas relevantes para o negócio.
O modelo final está pronto para ser utilizado em produção.

Aplicativo Streamlit

Para disponibilizar as previsões, desenvolvi um aplicativo web usando a biblioteca Streamlit.
A interface permite que o usuário envie novos dados de clientes e receba como resposta a probabilidade estimada de churn para cada um.
O app lê o arquivo com o modelo treinado, faz o preprocessamento dos dados de entrada da mesma forma que nos dados de treino, utiliza o modelo para gerar as previsões e exibe uma tabela com as probabilidades.
O código também permite enviar um arquivo inteiro com múltiplos clientes e obter as previsões em lote, o que é mais eficiente.
Assim, o aplicativo web disponibiliza de forma muito simples e rápida as previsões do nosso modelo de machine learning treinado no Python.

Considerações Finais

Neste projeto, apliquei com sucesso técnicas de classificação e deploy de modelo para resolver um importante caso de negócio envolvendo previsão de churn.
O app Streamlit fornece uma interface amigável para que os gestores da empresa possam identificar clientes com risco de cancelamento e tomar ações para reter essas pessoas.
Dessa forma, uni a poderosa capacidade preditiva de algoritmos de machine learning com a praticidade do desenvolvimento web, provendo valor real ao negócio.