Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
FACULDADE ASSIS GURGACZ - FAG
COORDENAÇÃO DE PÓS-GRADUAÇÃO
ESPECIALIZAÇÃO EM BI E BIG DATA
USO DE MACHINE LEARNING PARA A REDUÇÃO DE CHURN ENTRE
DISCENTES DE EAD
LEANDRO DE SOUZA
CASCAVEL – PR
2018
LEANDRO DE SOUZA
USO DE MACHINE LEARNING PARA A REDUÇÃO DE CHURN ENTRE
DISCENTES DE EAD
Trabalho de Conclusão do Curso de
Especialização em BI e Big Data, Faculdade
Assis Gurgacz - FAG.
Orientador: Wendel Brustolin
CASCAVEL – PR
2018
SUMÁRIO
INTRODUÇÃO ........................................................................................................................ 1
1 IDENTIFICAÇÃO ............................................................................................................... 2
1.1 Nome 2
1.2 Título do projeto 2
1.3 Orientador 2
1.4 Área e sub-área de estudo 2
2 OBJETIVOS ......................................................................................................................... 2
2.1 Objetivo geral 2
2.2 Objetivos específicos 2
3 JUSTIFICATIVA ................................................................................................................ 3
4 FUNDAMENTAÇÃO TEÓRICA ...................................................................................... 3
4.1 Revisão da literatura3
4.2 Identificação do problema de pesquisa 5
5 HIPÓTESES ......................................................................................................................... 5
6 DEFINIÇÃO DAS VARIÁVEIS ........................................................................................ 5
7 METODOLOGIA ................................................................................................................ 5
8 DESENVOLVIMENTO ...................................................................................................... 6
Configuração e extração de dados 6
Análise Exploratória 7
Entendendo as características 7
Preparação dos dados 8
Missing Values e NaNs 10
Transformação dos dados 11
Finalizando os ajustes dos dados 12
Modelagem Preditiva 12
4
Criação e avaliação do Modelo 13
Treinamento do algoritmo 13
Análise de resultados - Validando nosso modelo 13
9 CONCLUSÃO ...................................................................................................................... 15
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 16
INTRODUÇÃO
A retenção de clientes é tão importante quanto recrutar novos, uma vez que mantê-los
é mais barato que conquistar outros. E no universo de Educação à Distância (EAD) isso é cada
vez mais evidente pois a falta de estímulo e as dificuldades para estudo podem desestimular a
persistência e esforço necessários.
Uma das métricas que deve ser mensurada é o churn rate – que é a taxa de
cliente/alunos que deixam de fazer parte da base (taxa de abandono).
Por meio de processos de Machine Learning (Aprendizagem de Máquina) é possível
descobrir padrões e a probabilidade de churn oferecendo assim a possibilidade de tomada de
ações para que a taxa de desistências seja minimizada.
Tendo estes pontos como referência deve-se definir os principais indicadores de
performance (Key Performance Indicators – KPIs) relacionados ao EAD e possuir uma base de
dados com eles para que sejam tratados e estudados por algoritmos de Machine Learning em
uma parte desta base com o intuito de “ensinar” o que leva um aluno à desistência do curso.
Quando estes pontos são analisados e aplicados a uma base nova pode-se ter uma
predição percentual do abandono individualmente e com tempo verificar quais fatores elevam
a taxa de churn.
Obviamente que em se tratando de educação há fatores externos que podem
influenciar, mas estes podem ser tratados em outro momento.
1 IDENTIFICAÇÃO
1.1 Nome
Leandro de Souza
1.2 Título do projeto
USO DE MACHINE LEARNING PARA A REDUÇÃO DE CHURN ENTRE
DISCENTES DE EAD
1.3 Orientador
Wendel Brustolin
1.4 Área e sub-área de estudo
Área: BigData
Sub-área: Machine Learning
2 OBJETIVOS
2.1 Objetivo geral
Este projeto tem por objetivo a análise de tendências a churn usando-se de Machine
Learning. Por meio de modelos aplicados a base de dados, descobrir padrões dos alunos que
desistem de seus cursos e prever quando um aluno tem grandes chances de desistir.
2.2 Objetivos específicos
Formular o problema principal a ser analisado
Definir a ferramenta de Machine Learning
Definir os principais KPIs para análise de Churn
3
Levantar uma base de dados (dataset) para treinamento
Definir uma ferramenta de Machine Learning
Aplicar o algoritmo a amostra para treiná-lo
Aplicar a um novo grupo para comparar os resultados obtidos
Aplicar a novos alunos
Descobrir e apresentar qual o comportamento recorrente e correlacionado dos
alunos que desistem
3 JUSTIFICATIVA
Perder clientes é caro para qualquer negócio, logo a manutenção deste representa
significativa fonte de receita recorrente com menor esforço. Antever quando um cliente está
propenso a desistir dá a chance de realizações de ações para aumentar o engajamento e a
satisfação dele e tratar de suas necessidades por meio de um serviço de concierge, campanhas
de marketing ou fazendo uso de conteúdos especiais.
4 FUNDAMENTAÇÃO TEÓRICA
4.1 Revisão da literatura
Um problema enfrentado desde a criação das instituições de ensino é a evasão escolar.
Com o passar dos anos os índices que eram considerados aceitáveis dentro de um movimento
natural do mercado. Mas para instituições de ensino privadas a evasão causa impactos diretos
na sua receita, logo cria-se o seguinte dilema: Como reter o maior número de alunos, mantendo-
os satisfeitos sem abrir mão da qualidade de ensino?
A desistência de serviços existe em todos os setores e vários mensuram a quantidade
de saída de clientes por meio de uma métrica conhecida como churn rate - termo usado para
descrever a rotatividade da clientela de serviços de uma empresa.
Na área de educação podemos dizer que o churn são as desistências, trancamento de
matrículas ou transferências para outras instituições e geralmente são situações motivadas por
fatores conhecidos como: inadimplência, desgaste no relacionamento com a instituição, falta
de interesse no curso escolhido ou valores diferentes na concorrência.
Também não são apenas clientes insatisfeitos e inadimplentes que evadem, alguns
fatores estão ocultos e são desconhecidos a uma primeira análise. Os alunos buscam, além da
4
qualidade do curso, atendimento personalizado, menores custos o que pode torná-los suscetíveis
à sedução de promoções e ofertas de Marketing de concorrentes.
Por falar em marketing, este historicamente tem atuado de forma a captar novos alunos
enquanto o processo conhecido como marketing defensivo (aquele que visa a manutenção da
base de alunos ativos) tem ficado em segundo ou terceiro plano.
Segundo a American Marketing Association (AMA), o custo para reter um cliente fica
entre cinco a quinze vezes menos que captar um novo cliente.
Há ainda a questão de que quanto mais tempo um aluno permanece na base, mais
propensos a indicar novos alunos eles se tornam.
Para isso, a instituição precisa desenvolver ações de retenção cada vez mais assertivas,
afim de satisfazer os anseios e individualidades dos alunos. É neste ponto que um processo de
aprendizado de máquina (Machine Learning) pode ser útil na orientação e definição de quais
fatores podem reduzir o churn rate.
Para entender melhor o papel do Machine Learning (ML) no processo, veja a definição
do termo segundo a Data Science Brigade:
“Machine Learning da maneira mais básica é a prática
de usar algoritmos para coletar dados, aprender com eles, e
então fazer uma determinação ou predição sobre alguma coisa
no mundo. Então ao invés de implementar as rotinas de software
na mão, com um set específico de instruções para completar uma
tarefa em particular, a máquina é “treinada” usando uma
quantidade grande de dados e algoritmos que dão e ela a
habilidade de aprender como executar a tarefa.”(Brigade, 2018)¹
Com o uso do ML, a maior parte do trabalho deverá se concentrar em três estágios e
seis passos da análise²:
1) Formulação do Problema
a. Reconhecimento do Problema → Evasão
b. Revisão de descobertas anteriores
2) Solução do Problema
a. Modelagem
b. Coleta de dados
c. Análise de dados
3) Resultados: comunicação e ação
5
a. Apresentação de resultados e adoção de providência
Isto posto, passamos para a seleção e preparação dos dados de clientes obtidos de um
sistema de CRM de uma empresa de ensino a distância (EAD) que contém um histórico de ação
de usuários no ano de 2017 para então iniciarmos as etapas posteriores.
4.2 Identificação do problema de pesquisa
Quais fatores levam os alunos a desistirem de seus cursos após já estarem matriculados
e estudando?
5 HIPÓTESES
Frustação com a área escolhida.
Dificuldades de aprendizado.
Optou pela concorrência.
Dificuldade financeiras (inadimplência).
Qualidade do serviço prestado (Materiais e Professores).
Dificuldade de uso da plataforma EAD (Ambiente Virtual de Aprendizagem -
AVA).
Mudança de estilo de vida (casamento, mudança, filhos,…)
6 DEFINIÇÃO DAS VARIÁVEIS
Identificar quais fatores levam os alunos a desistirem do curso
Definir quais as melhores ações preventivas para a redução do churn rate.
7 METODOLOGIA
Obter uma base de dados com histórico de atividades de alunos (desistentes e ativos)
para a criação de um modelo de Machine Learning.
Separar uma amostrar deste modelo e usá-la num processo chamado trainning.
Depois de treinar o modelo, rodar novamente agora com as informações de perfil de
um cliente desistente (a mesma informação de perfil que usamos para treinar o modelo), prever
a tendência de churn desse cliente e comparar o percentual retornado para homologar o
trainning.
6
8 DESENVOLVIMENTO
Para o desenvolvimento, utilizamos a linguagem Python pois ela é simples, de código
aberto e fácil de utilizar, mas isto não a torna pouco eficiente, muito pelo contrário: trata-se de
uma linguagem de alto nível, robusta e poderosa para a criação de aplicações, além de possuir
uma grande comunidade e uma vasta biblioteca de algoritmos, sendo comumente utilizada em:
Processos de efeitos especiais em filmes;
Back-end de sistemas de internet, CRMs e ERPs;
Análise de Dados;
Aprendizado de Máquina.
Fizemos o uso da linguagem em sua versão 3.6.4. Dividimos nosso processo em:
1. Configuração e extração de dados
2. Análise Exploratória e Limpeza dos dados
3. Pré-processamento dos dados
4. Criação e avaliação do Modelo
5. Análise de resultados
6. Aplicação
Configuração e extração de dados
Da base de clientes, extraímos uma parcela de modo aleatório da base por meio de uma
consulta SQL. Definimos quais os principais itens armazenados de log dos clientes seriam mais
úteis e geramos um dataset contendo mais de 7,8K de registros.
Formulação do Problema
Preparação dos dados
Pré-processamento
Criacão e avaliação do
modelo
Análise dos resultados
Aplicação
7
Análise Exploratória
A análise exploratória de dados é o processo inicial de análise em que resumimos
características de dados como padrão, tendências, outliers e testes de hipóteses usando
estatística descritiva e visualização.
Preparamos o nosso dataset, que é composto de informações relacionadas a mais de
78.000 clientes que incluem variáveis independentes como: sexo, tempo de cadastro em dias,
quantidade de eventos assistidos, quantidade de cursos adquiridos, ticket acumulado,
quantidade de minutos de aulas assistidas e se possuem os dois aplicativos da escola instalado.
A variável dependente que nos interessa é se o aluno/cliente desistiu (churned) ou não
do curso, ela será indicada por 1 quando ocorreu a desistência e 0 quando ele permaneceu no
curso.
Para determinar quais são as variáveis responsáveis pelo Churn e se o aluno desistiu
ou não, realizamos testes de análise de Regressão Linear Múltipla com dados para determinar
quais características têm maior influência. Esta análise não será explicada aqui por não ser o
foco deste trabalho, basta dizer que a função utilizada foi: 𝑦 = 𝑏0 + 𝑏1𝑥1 + 𝑏2𝑥2 + ⋯ + 𝑏𝑛𝑥𝑛,
onde y é nossa variável alvo, b nossa constante , bn o coeficiente e xn a característica (feature).
Entendendo as características
Precisamos entender o que significa cada coluna para podermos extrair o máximo de
informações e gerar outras que nos permitam trazer uma assertividade maior de nosso
algoritmo:
id_person: É a chave primária que identifica o aluno no sistema.
sexo: Gênero do aluno.
app_anotacoes: Aplicativo de anotações que o aluno pode instalar e utilizar durante
as aulas para criar marcações e notas.
app_aulas: Aplicativo disponível para assistir às aulas em dispositivos móveis.
cursos_free: Cursos de degustação que o aluno pode se inscrever para ter acesso
gratuitamente.
ticket_acumulado _total: Valor total investido pelo aluno.
qtd_minutos_aulas_assistidas: Somatório de minutos de videoaulas assistidas pelo
player do site.
ultimo_login: Quantidade de dias da realização do último login até a data da coleta
dos dados.
8
Preparação dos dados
De nosso dataset inicial, definimos alguns parâmetros para limpeza e normalização de
nossos dados. Por considerarmos mais interessante determinamos que o considerar apenas
alunos com até 2 anos de cadastro, que tenham assistido a pelo menos uma aula.
Reduzimos assim, de 78K para 38K de registros
Neste ponto é necessária uma normalização dos dados para preparamos para os
trabalhos iniciais.
A primeira coisa que precisamos fazer é importar todas as bibliotecas python
relevantes que precisaremos para nossa análise. Bibliotecas como numpy, pandas, statsmodels
e scikit-learn são frequentemente utilizadas pela comunidade de ciência de dados.
Daremos a seguir um breve resumo sobre as bibliotecas essenciais utilizadas no
processo. As definições foram extraídas do livro Python para Análise de Dados, que tem como
autor o próprio criador da biblioteca pandas: Wes McKinney.
Pandas: “Oferece estrutura de dados de alto nível e funções, projetadas para fazer
com que trabalhar com dados estruturados ou tabulares seja rápido, fácil e expressivo... O
pandas combina as ideias de processamento de alto desempenho de arrays da NumPy com
recursos flexíveis de manipulação de dados das planilhas e dos bancos de dados relacionais
(como o SQL). Ele disponibiliza uma funcionalidade sofisticada de indexação para facilitar a
reformatação, a manipulação, as agregações e a seleção de subconjunto de dados. ”
Matplotlib: “A matplotlib é a biblioteca Python mais popular para fazer plotagens e
gerar outras visualizações de dados bidimensionais”
Scikit-learn: “Transformou-se no principal kit de ferramentas de propósito geral para
aprendizado de máquina... inclui submódulos como: Classificação, regressão, redução de
dimensionalidade, seleção de modelos e pré-processamento. ”
Statsmodels: “É um pacote de análise estatística...contém algoritmos para estatística
clássica e econometria. ”
Para interpretar o Python, vamos utilizar a ferramenta Jupyter Notebook por sua
capacidade de trabalhar com o desenvolvimento de forma interativa.
Criamos um novo arquivo e começamos pela importação das bibliotecas e alguns
módulos:
9
Importamos nosso dataset e solicitamos a visualização das 5 primeiras linhas com a
instrução head().
Neste ponto, é necessário separarmos o dataset em base de treino e base de teste.
Extraímos 25% da base e a reservamos para ver a assertividade de nosso modelo. Os 75%
restantes utilizamos para treiná-lo. Utilizamos uma função do Sklearn chamada ShuffleSplit.
Não iremos nos aprofundar nisto por não ser o core de nosso estudo.
Continuando.
Podemos ter uma visão inicial do total de registros e gerarmos um gráfico que nos dará
uma ideia da quantidade de Churn.
10
Missing Values e NaNs
É comum que haja no dataset informações faltantes. O Pandas os nomeia como Not-
a-Number (NaN). Vamos preencher com as informações que estão faltando.
Vamos localizar os campos com valor NaN:
Vamos ajustar estes valores.
No caso do ultimo_login, como temos apenas um campo vamos atribuir o valor 0
(zero) a ele.
11
O mesmo raciocínio vamos usar para os cursos_free:
No caso da idade, faremos algo diferente, como ela pode ser relevante, nos campos
NaNs vamos atribuir a média do conjunto.
Transformação dos dados
Nesta etapa, vamos transformar o que é variável categórica (texto) em variáveis
numéricas para facilitarmos o trabalho de nosso modelo matemático, pelo fato de que eles são
textos e nossos algoritmos tratam apenas números. Nosso dataset possui apenas 3 colunas não
numéricas: sexo, app_anotacoes e app_aulas.
Vamos começar pela categoria sexo, criando um dicionário com os itens, criando um
mapeamento:
Executando os comandos acima teremos:
E passando para isso:
12
Finalizando os ajustes dos dados
Para terminarmos a preparação de nossos dados e sua preparação para o modelo,
vamos eliminar alguns dados que não são úteis, como é o caso do id_person.
Modelagem Preditiva
Começaremos a implementar nosso algoritmo de Machine Learning para prever o
nosso Churn. Para garantir que não ajustemos nosso modelo aos dados causando um over-
fitting, dividimos os alunos/clientes em um conjunto de treinamento e um conjunto de teste,
este último com 25% do total de nossos registros.
O X terá as características que temos no banco de dados e a partir delas, informamos
ao modelo: é isso que queremos predizer (Y), ou seja, passamos um conjunto de características
é dizemos se houve ou não Churn para que o modelo depois consiga predizer analisando as
características fornecida de outros alunos.
X_train: Base do treinamento com todas as informações com exceção do target
(Churn).
Y_train: O Churn, ou seja, é o valor que buscamos.
X_test: Nossa base de teste que vamos utilizar para saber se a base está acertando
ou não.
Separaramos nossa base para o teste e treino:
13
Criação e avaliação do Modelo
Utilizamos um método de aprendizado denominado Random Forest. Este algoritmo
induz várias árvores de decisão e faz uma avaliação por meio de um processo de votação.
Treinamento do algoritmo
Criamos nosso primeiro modelo usando um random forest classifier
Estamos dizendo que baseado nas características de X_train, temos y_train
Com isso já temos um modelo que podemos utilizar para predizer nossos valores.
Agora podemos pegar dados de nossa base de teste (test_df) e pegaremos nosso modelo
(random_forest) que treinamos com a função fit.
Veja que obtemos uma acurácia de quase 84%.
Análise de resultados - Validando nosso modelo
Utilizamos uma técnica de Matriz de confusão. Existem quatro possibilidades na
avaliação de desempenho do nosso classificador:
Verdadeiros positivos (VP): Alunos que deram Churn quando o modelo previu
(modelo acertou)
Falsos negativos (FN): Alunos que deram Churn quando o modelo previu que não
dariam (modelo errou)
14
Verdadeiros negativos (VN): Alunos que não deram Churn conforme o modelo
previra. (modelo acertou)
Falsos positivos: (FP) Alunos que não deram Churn quando o modelo previu que
dariam (modelo errou).
Simplificando VP e VN são acertos do modelo enquanto FN e FP são erros. A
frequência de erros e acertos colocadas em uma tabela é a nossa matriz de confusão e com esta
informação podemos melhorar nosso modelo.
15
9 CONCLUSÃO
Ao produzir este estudo, notadamente percebe-se a necessidade de acompanhar o
aluno que em sistemas de Ensino à Distância não possui o mesmo contato e ao trabalhar com
ele de forma personalizada, identificando suas necessidades pode melhorar seus resultados e
manter seu interesse no curso Além disso, também nota-se a importância para a empresa em
manter seus alunos, o que reduz suas despesas na geração e captura de novas receitas e a
aplicação de mecanismos automatizados possibilita que setores como o de marketing crie
ações personalizadas para estes grupos, acionando-os no tempo certo e da forma correta.
Os métodos e mecanismos aqui apresentados não foram esgotados, o que permite que
sejam ampliadas as formas e meios de melhorar os processos de anti-churn.
Apesar disso, a situação dos clientes não pode ser analisada friamente apenas no uso
do software. Este é um problema bastante complexo para resolver e requer entender o cliente
por completo, integrando diversos tipos de dados e realizado diferentes análises, que não
necessariamente estão ligadas apenas ao uso da ferramenta.
REFERÊNCIAS BIBLIOGRÁFICAS
²DAVENPORT, Thomas. Dados demais! Como desenvolver habilidades analíticas
para resolver problemas complexos, reduzir riscos e decidir melhor. 1.ed – Rio de Janeiro,
Editora Campus, 2014
AMARAl, Fernando. Introdução à Ciência de Dados: Mineração de Dados e BigData.
1.ed – Rio de Janeiro, AltaBooks, 2016
Cortana Intelligence, Customer Churn Prediction. Disponível em:
<https://gallery.cortanaintelligence.com/Solution/Customer-Churn-Prediction-3 >. Acesso em
17 fevereiro de 2018.
Microsoft Azure, Previsão de rotatividade de clientes usando o Azure Machine
Learning Disponível em: <https://docs.microsoft.com/pt-br/azure/machine-
learning/preview/scenario-churn-prediction>Acesso em 17 fevereiro de 2018.
American Marketing Association, Customer Acquisition and Retention Spending: An
Analytical Model and Empirical Investigation in Wireless Telecommunications Markets.
Disponível em:
<https://www.ama.org/publications/JournalOfMarketingResearch/Pages/customer-
acquisition-and-retention-spending.aspx> Acesso em 17 de fevereiro de 2018.
¹Data Science Brigade, A Diferença Entre Inteligência Artificial, Machine Learning e
Deep Learning. Disponível em: <https://medium.com/data-science-brigade/a-diferença-entre-
inteligência-artificial-machine-learning-e-deep-learning-930b5cc2aa42> Acesso em 17 de
fevereiro de 2018.