Um case de Clusterização em Venda Direta

Carlos Fonseca
tecnologia no Grupo Boticário
6 min readJul 30, 2021
Várias peças retangulares convergindo para o centro da tela com setas e “x”
Várias peças retangulares convergindo para o centro da tela com setas e “x” | Foto de DeepMind na Unsplash

A disciplina de CRM é quase que um efeito colateral da era "Big Data". Desde o advento do "toyotismo", na década de 60, a personalização é entendida como uma vantagem competitiva importante na maioria das indústrias, e mais informações equivalem a mais oportunidades de entender os desejos de cada cliente.

No entanto, a criação de produtos e campanhas efetivamente 1:1 é um grande desafio e, portanto, o primeiro passo nessa direção costuma ser a segmentação dos consumidores em grandes grupos (ou no inglês, clusters) de pessoas com comportamentos mais similar entre si.

Qual a utilidade disso?

Bem, imagine que eu tenha um cinema. Com o tempo, eu noto que o tipo de filme que mais enche minhas salas são os grandes blockblusters. Então eu resolvo tratar meus clientes seguindo essa tendência média, e coloco todas as minhas 5 salas passando o blockbuster do verão. Mas, na verdade, se eu parar e analisar de fato meus consumidores, posso perceber que, apesar de muitos assistirem os grandes filmes, tem um pessoal que vai duas vezes mais pra assistir romances, outros ação, e existe ainda um grupinho que curte mesmo comédia e, na verdade, só vai assistir esse gênero e vai acabar parando de ir de vez no meu cinema. Minhas salas, então, estariam melhor ocupadas se eu aumentasse minha oferta de filmes de acordo com cada grupo, concorda?

Michael Jackson comendo pipoca, em cena do seu icônico videoclipe "Thriller
John Landis, and. MICHAEL JACKSON’S THRILLER. USA, 1983.

Escopo

A essa altura, você já deve saber que o Grupo Boticário abraça várias marcas em diferentes canais de venda. Minha missão inicial era de atacar o problema da segmentação para as nossas representantes de venda direta (as revendedoras).

Para essa segmentação, além da homogeneidade de pessoas nos grupos, um segundo critério essencial para a entrega do modelo final era a facilidade de interpretação do resultado. Por esse motivo, muitas vezes optamos pela simplicidade em detrimento de mais complexidade.

Após uma série de discussões, chegamos à conclusão de as features de nossa segmentação precisavam se apoiar em 4 pilares:

  1. Desconto
  2. Ticket
  3. Categoria de produto
  4. Canal de venda

Você pode estar sentido falta aqui de variáveis demográficas ou cadastrais (como cidade/estado e idade, por exemplo). Optamos por deixá-las de fora por entender que, nas aplicações pretendidas para o modelo, o perfil transacional era mais importante, e não queríamos correr o risco de separar, por exemplo, revendedoras de regiões diferentes que tivessem o mesmo padrão de compras.

Estudo de variáveis

A partir dos nossos pilares, chegamos a um total de 38 features entre variáveis puras e combinadas, o que é bastante, tanto para os algoritmos lidarem, quanto para a interpretação do resultado final.

O primeiro passo para reduzir esse número foi eliminar as variáveis que possuíam alta correlação entre si — nosso ponto de corte foi coeficiente de correlação > 0,8 — , já que essas variáveis essencialmente trazem a mesma informação para o modelo.

Por escalabilidade, decidimos testar 2 modelos: k-means e Gaussian Mixtures. Para definição do número de clusters (parâmetro necessário os algoritmos escolhidos), utilizamos o método da silhueta em conjunto com o k-means. Por esse método, quanto mais alto o coeficiente da silhueta, que tenta representar a separação entre os clusters, melhor a segmentação.

Código da aplicação do método da silhueta em conjunto com o k-means. Fonte: autor.
Um gráfico com 3 curvas diferentes, mostrando para cada uma o resultado do cálculo do coeficiente da silhueta para cada quantidade de clusters.
Gráfico com coeficientes da silhueta. Fonte: autor.

Devido ao tamanho da base, o cálculo da silhueta é muito demorado e, por isso, foi feito em 3 amostras diferentes da base (por isso 3 curvas no gráfico). Pela escala do gráfico, vemos que existe pouca diferença na escolha de 3–6 ou 9 clusters. Por isso, a decisão acabou sendo com base no uso pretendido, e se optou por 6 clusters.

A seguir, os modelos foram treinados nos dados, após a padronização dos mesmos. Esse processo é importante para evitar que variáveis tenham maior influência no modelo simplesmente por existirem em uma escala maior do que outras.

Código para realização da padronização dos dados. Fonte: autor.

Por conta das suas lógicas de funcionamento, nenhum desses algoritmos consegue nos passar a importância que cada variável teve para a construção dos segmentos. Por isso, a escolha de remoção de variáveis para simplificação do modelo foi feito de modo qualitativo e através de treinos subsequentes dos modelos.

Definição do Modelo

Após algumas iterações desse processo de eliminação, chegamos a um número de 7 variáveis essenciais para o resultado final.

Mas e como medir a qualidade da segmentação? Os modelos de clusterização entram na classe de algoritmos de machine learning não supervisionados, já que não existe um valor alvo que se deseja classificar ou prever; está se pedindo ao algoritmo a identificação de uma estrutura desconhecida.

Sendo assim, não existe um score absoluto que podemos usar, como acurácia ou coeficiente de correlação, nos quais o valor 1 equivale à nossa referência de um modelo perfeito. O primeiro ponto de validação aqui foi, novamente, qualitativo, e tratou de avaliar o quão bem os clusters estavam separados, com base nos valores médios de cada um.

Durante essa validação, foi identificada a necessidade de criar 2 segmentos via regras previamente ao treinamento do modelo. Um contendo revendedoras que, por falta de informação, acabam precisando serem separadas para evitar ruído nos clusters mais específicos, e outro, com aquelas tratadas como outliers segundo diferentes critérios. O modelo final ficou com a estrutura como a ilustrada na imagem:

Temos uma estrutura de árvore partindo de caixa escrito TOTAL 100%. No nível abaixo, a caixa se quebra entre uma caixa com Sem Informação e outra caixa com Restante. A caixa Restante segue para o nível mais abaixo, onde novamente se divide, agora entre Outliers e Restante. Finalmente, a caixa restante desce ao último nível, onde se abre em 4 caixas, nomeadas com os números de 0 a 3, representando 4 clusters.
Quadro do modelo final. Fonte: autor.

Foi nessa etapa que optamos seguir no final das contas com o modelo de Gaussian Mixtures. Dos 3 algoritmos, ele foi o que gerou os segmentos com melhor interpretabilidade.

Foram feitas ainda, validações de consistência do modelo. Basicamente, foram verificados se os resultados eram reproduzíveis a partir da variação do inicializador aleatório dos algoritmos ou através da utilização de uma base 3 meses defasada no tempo.

Resultados

Os 4 clusters finais, definidos pelo modelo, ficaram com os indicadores a seguir, em números relativos:

Uma tabela contendo o valor médio de cada variável utilizada para cada cluster
Tabela do valor médio de cada variável utilizada para cada cluster. Fonte: autor.

A partir desses dados, é possível identificar comportamentos distintos. O Cluster 0, por exemplo, contém pessoas que tem um valor médio 50% maior na variável de Canal 1. Já o Cluster 1 agrupa revendedoras que se destacam pela feature de Ticket 1, e por aí vai.

De posse dos clusters, só faltava mesmo confirmar se os clientes separados de fato têm comportamentos diferentes ao longo de um ciclo de compras. Para essa comparação, utilizamos a venda média de cada representante e a sua taxa de conversão. Os dados estão normalizados pela média.

Temos uma tabela com os valores de venda e conversão para cada cluster, normalizados pela média
Tabela com os valores de venda e conversão para cada cluster, normalizados pela média. Fonte: autor.

Aqui fica claro a eficácia da segmentação. Todos os grupos tem comportamentos bastante diferentes e, inclusive, muito distantes da média da base, que acaba muito poluída pelas revendedoras outliers. De posse desses dados, um time comercial pode, por exemplo, investir esforço em aumentar a frequência de compras dos clientes do cluster 3 e reservar ações de reconhecimento para os outliers.

Com esses grupos formados, iniciamos nossa longa jornada rumo a um tratamento, de fato, personalizado.

--

--