Blog

Machine Learning e Big Data: Um exemplo prático.

Objetivo deste artigo não é discutir teorias de modelos de Machine Learning e Big Data, mas sim mostrar na prática como um problema pode ser resolvido utilizando diferentes tecnologias de análise de dados, tais como: Spark, Python, R e KNIME.

Foi construída a seguinte arquitetura de Big Data Analytics a fim de processar os modelos de machine learning apresentados neste artigo:

Este conjunto de plataformas permite desenvolver:

– Integração de dados e ETL
– Business intelligence (BI) e Analytics (BA)
– Computação de alto desempenho
– Processamento em Real-time e/ou em fluxo continuo
– Machine learning

Este workflow feito no KNIME contém alguns dos processamentos apresentados neste texto.

O problema da previsão da Perda de cliente (Churn)

O evento churn, por envolver a perda de clientes, traz um impacto direto na receita e imagem da empresa. Por isso é de extrema importância saber com antecedência quais os clientes estão em risco de deixarem a empresa, para desta forma, desenvolver ações proativas de retenção.

Este é um tipo de problema em que modelagem preditiva pode contribuir para gerar ações de retenção de clientes.

Este exemplo utilizou dados provenientes de telecom (Churn Analysis) contendo informações; sócio-demográficas, perfil de utilização dos serviços e etc.

O desenvolvimento do modelo de machine learning contemplou as seguintes etapas:

Obtenção das informações

Os dados foram obtidos através da conexão com o Apache Hive. O Hive é uma infraestrutura de data warehouse alicerçada no Hadoop. Esta infraestrutura permite fazer sumarização e consulta de base dados, útil especialmente para grandes volumes de dados.

Pré-processamento

Nesta etapa foi feita a obtenção dos dados e as devidas manipulações, filtros, transformação de variáveis, retirada dos missings, com o objetivo de preparar os dados para serem consumidos pelos modelos analíticos.

Treinamento dos dados

Os algoritmos de machine learning precisam ser treinados e avaliados. Por isso, para cada processamento dos modelos foram feitas partições do conjunto de dados (80%) para treinamento e o restante (20%) para avaliação.

Avaliação dos modelos

Após o treinamento de um determinado modelo, ainda não há certeza de que este modelo tenha aprendido algo relevante. Por isso é necessário fazer uma avaliação da sua assertividade, antes de aplicá-lo nos dados reais.

O teste da avaliação foi realizado com base nos resultados do modelo obtidos quando aplicado na amostra de 20% da base de dados, amostra esta que foi separada para este fim na etapa de treinamento.

Após aplicado o modelo nesta amostra, o resultados é confrontado com a realidade. Se o modelo predisse que um determinado cliente apresentaria o Churn e de fato o cliente tenha apresentado este evento, então ocorreu um acerto, caso contrário o modelo errou. A precisão foi medidas através da área sob a curva ROC, onde valores mais próximos de 1 indicam maior assertividade do modelo.

Resultados

Os resultados apresentados no dashboard feito no Spotfire, foram obtidos através do processamento do Modelo Random Forests processados no Python.

Processamentos do Spark, R e KNIME, foram muito semelhantes. A escolha de apresentar o Python no dashboard, não foi baseada em nenhum critério técnico.

Observando os resultados obtidos através das curvas ROCs apresentados nodashboard, inota-se que não houveram diferenças importantes entre os modelos processados independentemente da tecnologia.

Se o volume de informações fosse maior e/ou se fossem avaliadas outras características, possivelmente, as tecnologias apresentariam resultados diferentes inclusive em relação a performance, ainda que este post, não tenha discutido esta questão.

Outro resultado interessante foi que o de fato KNIME, possibilitou amigável e eficiente integração com o R, Python, Spark e plataforma de Big Data em MapR.

Em breve promoverei um Webinar a fim de apresentar com um pouco mais de detalhes este processo de analytics em Big Data .

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *