• Diego Santos

Descobrindo padrões de comportamento em seus dados

Hoje gostaria de explorar com vocês uma técnica de mineração de dados que possibilita obtermos insights interessantes para o nosso negócio a partir dos dados da nossa empresa, trata-se do bom e eficiente: Algoritmo apriori, um tipo de regra de associação (método proeminente e bem explorado para determinar relações entre variáveis ​​em grandes bancos de dados).


Padrões frequentes


Ao analisar nossos dados, estamos interessados em verificar se existe algum padrão frequente de comportamento que está oculto e utilizá-lo para melhorar nosso negócio.


"E o que podemos descobrir nesses padrões? "

A resposta é depende dos dados. Os padrões ocultos nos dados podem ser utilizados de diversas maneiras, por exemplo: No caso de supermercados, dada uma quantidade de registros de transações (vendas), podemos descobrir padrões de compra interessantes que podem ser explorados na loja, como criação de ofertas e modificação do layout que teriam como objetivo aumentar as vendas de determinados produtos. No caso de aplicações comercializadas no modelo SaaS (software como serviço), podemos estar interessados em descobrir os padrões de comportamento que indicam a conversão de contas gratuitas em contas pagas. De maneira geral, também podemos usar essa técnica para descobrir o padrão de comportamento que leva um cliente a cancelar um serviço, ajudando a prever e controlar o CHURN nas empresas.


Como funciona?


Peguemos o exemplo hipotético abaixo:

Aqui temos representado as transações de venda de um comércio qualquer. Cada transação (linha) especifica os produtos que foram adquiridos naquela ocasião (transação).


Queremos descobrir se existe algum padrão frequente oculto nesses dados (transações de compra) que possamos utilizar para aumentar nossas vendas.


Para tanto precisamos estabelecer um limite mínimo de suporte e um limite mínimo de confiança para extrair as regras mais relevantes. Vamos entender cada um deles.


Definimos Suporte como a proporção de transações da base de dados que contém o conjunto desejado. Exemplificando:

Existem 4 transações (vendas) que o produto tomate aparece, num total de 8 transações em nossa base de dados. Temos no caso do tomate, um suporte de 50%.


A Confiança é a relação entre os produtos e tem por definição a regra: confiança(X->Y) = suporte(X U Y) / suporte(X). Exemplificando, vamos calcular a confiança da relação entre os produtos tomate (X) e cerveja (Y). Utilizando a fórmula definida acima, teremos:

  • Suporte (tomate, cerveja) = 3 (transações onde os dois produtos aparecem) / 8 transações em nosso banco de dados, logo, Suporte (tomate, cerveja) = 3/8 = 0,375

  • Suporte (tomate) = 4 (transações que aparece o tomate) / 8 transações em nosso banco de dados, logo, Suporte (tomate) = 4/8 = 0,5 (50%)

Logo a Confiança (tomate -> cerveja) = 0,375 / 0,5 = 0,75 (75%).


Como seria humanamente inviável calcular o suporte e confiança da combinação de todos os produtos, deixamos essa tarefa para o computador ao estabelecermos os limite mínimo de suporte e o limite mínimo de confiança.


Em resumo, com esses parâmetros, dizemos ao computador que estamos interessados em descobrir os padrões ocultos nas compras cujos produtos representem XX% (limite mínimo de suporte) da base total e que a relação entre os produtos apareça no mínimo para YY% (limite mínimo de confiança) das transações envolvendo os produtos em questão.


A definição desses parâmetros de limite mínimo de suporte e confiança é que determinarão as regras a serem encontradas. Faz parte do trabalho de mineração de dados, testar várias combinações desses parâmetros e analisar seu resultado para identificarmos os insights mais relevantes para o negócio.


Estudo de caso real


Agora que já entendemos os conceitos envolvidos através do nosso caso hipotético, vamos utilizar uma pequena base de dados real. Para efeitos de preservar os recursos computacionais do meu singelo notebook :-) vamos fazer um corte nessa base de dados e utilizar apenas 4.627 registros de compra.


O algoritmo utilizado para a regra de associação foi o Apriori com os seguintes parâmetros informados:


  • Limite mínimo de suporte: 10%

  • Métrica: Confiança

  • Limite mínimo de confiança: 90%


A quantidade de regras a serem descobertas foram limitadas a 10 regras.



Após definir os parâmetros e rodar o algoritmo, obtivemos o seguinte resultado:

Você pode ver que as regras são apresentadas no formato antecedente => consequente.

  • O número associado ao antecedente é a cobertura absoluta no conjunto de dados (neste caso, um número de um total possível de 4.627).

  • O número próximo ao consequente é o número absoluto de instâncias que correspondem ao antecedente e ao consequente.

  • O número entre parênteses no final é o suporte para a regra (número do antecedente dividido pelo número de consequentes correspondentes).

Você pode observar que um corte de 91% foi usado na seleção das regras (conforme definimos o parâmetro de limite mínimo de confiança), isso indica que nenhuma regra tem uma confiança inferior a 0,91.


Aqui estão algumas observações:


Podemos ver que todas as regras apresentadas têm como consequência “pão e bolo” e que todas as regras apresentadas indicam um alto valor total de transação. “Biscoitos” e “alimentos congelados” aparecem em muitas das regras apresentadas.


"Então quer dizer que a compra desses produtos do lado esquerdo ao símbolo => causam a compra de "pão e bolo"?

Atenção


A relação estabelecida é de ASSOCIAÇÃO e NÃO necessariamente de CAUSA E EFEITO. Você deve ter muito cuidado ao interpretar as regras de associação. São associações (pense em correlações), não necessariamente relacionadas causalmente.


Outro ponto que você deve ter atenção é que quanto maior for o antecedente (mais produtos) maior a probabilidade da regra ser frágil, embora seja frequente. Nesses casos prefira as regras em que o antecedente é curto, pois provavelmente o mesmo será mais robusto do que o antecedente longo, que tem maior probabilidade de ser frágil.


Nesse caso do supermercado, a variável "caminho" também é interessante de ser investigada para se determinar sua influência sobre a regra. Pode ser interessante testar e modelar o caminho através da loja necessário para coletar os itens associados e ver se as alterações nesse caminho (mais curto, mais longo, ofertas exibidas, etc.) têm um efeito no tamanho da transação ou no tamanho da cesta.


Como dito no início do artigo, podemos utilizar as regras de associação em diversos cenários de negócio, tais como: cálculo e previsão do cancelamento de clientes, upgrade de serviços, mudança de conta gratuita para paga, associação de produtos ou serviços, entre muitos outros exemplos que envolva determinar o comportamento do seu cliente.


Espero que tenham gostado do artigo e caso tenham qualquer dúvida ou sugestão podem comentar ou entrar em contato para trocarmos uma ideia.

5 visualizações0 comentário

Posts recentes

Ver tudo