Skip to main content
31 maio 2021
Follow Us

Até que ponto conhece os seus clientes?

O clustering é um modelo de extração de conhecimento de dados que agrupa uma determinada dimensão, seja uma lista de clientes, em clusters. Cada cluster agrupa os clientes de acordo com o seu comportamento e características. Não se trata de criar segmentos de mercado com base em regras definidas “a priori”, mas antes de pedir ao algoritmo que crie esses segmentos com base nos dados. Assim, conseguem-se estratégias de marketing mais eficazes e clientes mais satisfeitos. Já não precisa de desenvolver uma campanha de marketing geral e indiferenciada para todos os seus clientes, como se fossem todos iguais. Agora, poderá compreendê-los melhor, satisfazer e exceder as suas expectativas.

Os dados

Como sempre acontece nestas demonstrações, vamos usar dados reais, mas devidamente anonimizados e com um pouco de “sal” para que não seja possível identificar as empresas aqui analisadas.

Começámos por extrair todos os dados transacionais com as vendas do último ano e resumir por cada cliente as suas principais características. Na tabela seguinte, vemos por cada linha uma coluna “Customer ID”, que identifica cada cliente e, nas colunas seguintes, as variáveis que o caracterizam.

cluster1

Analisámos a frequência de compras, volume de vendas, quais os produtos preferidos, a localização, os mais atualizados, e outras características que achamos relevantes nos dados pretendidos.

A escolha de atributos (“features”) de clientes é um processo que combina o conhecimento do negócio com a análise de dados. O que é relevante para caracterizar cada cliente no nosso negócio e de que dados dispomos? Como se caracterizam os dados?

Por exemplo, alguns atributos são redundantes e estão fortemente correlacionados, como por exemplo, as vendas, o custo e a margem. Se a margem é a diferença entre as vendas e o custo, e se pretendemos avaliar para cada cliente o seu volume de vendas e rentabilidade, talvez seja preferível escolher vendas e margem percentual. Isso ajudará o algoritmo a conceber os clusters de forma mais homogénea evitando ruído e redundância.

Na tabela acima, podemos verificar que algumas variáveis são categóricas. É o caso do “TopProductType” que indica qual o produto que o cliente mais compra e a variável “Country” com o país em que este se encontra.

O algoritmo que vamos utilizar não consegue lidar diretamente com este tipo de variáveis, pelo que é necessário convertê-las em variáveis numéricas através de uma técnica de “one hot encoding”. Em resumo, com esta técnica, vamos converter o produto favorito de cada cliente (de A a D) em zeros e uns. Por exemplo, os clientes abaixo têm como produto favorito o produto D, e por isso, a coluna “TopProductType_D” é igual a 1, enquanto as restantes são iguais a zero.

cluster2

Note-se que precisamos apenas de 3 colunas para caracterizar 4 produtos. Se o cliente prefere o produto A, então teremos as colunas “TopProductType_B”, “TopProductType_C” e “TopProductType_D” com zeros. O resultado não é tão fácil de analisar por humanos, mas para o algoritmo é essencial.

Há uma outra transformação importante: a normalização dos dados. Se repararmos bem, as variáveis numéricas que estamos a analisar encontram-se em escalas diferentes. Por exemplo, a variável “Recencia”, que mede o número de dias desde que o cliente comprou pela última vez até a uma data de referência, pode variar entre 0 (se o cliente comprou pela última vez na data de referência) até algumas centenas de dias. Mas a variável “Sales” pode variar entre 1 e vários milhões, no caso de se tratar de um cliente de grande dimensão.

Ora, como o algoritmo vai usar distâncias para avaliar e comparar cada um dos clientes, é possível que a variável “Sales”, que está numa escala maior, seja favorecida em termos de importância em relação à variável “Recencia”, mas em termos absolutos, se um cliente compra 10 ou 11 milhões isso representa uma diferença de um milhão, que não pode ser comparada com uma diferença de um milhão de dias quando nos referimos à data da última compra.

Não nos interessa atribuir mais importância a umas variáveis em relação às outras e não queremos que aquelas variáveis que se encontram em escalas maiores tenham mais peso na construção do modelo, pelo que uma solução será normalizar estas variáveis, de forma que se possam comparar numa escala comum.

Assim, recorremos à normalização dos dados subtraindo o valor de cada observação pela sua média e dividindo o resultado pelo desvio-padrão.

Como vemos, os valores estão agora mais próximos entre si. Cada observação é agora medida em número de desvios-padrão em relação à média. Os valores negativos indicam que o valor se encontra n desvios-padrão abaixo da média dos valores da variável em causa.

cluster3

O algoritmo HDBSCAN

Para resolver este problema vamos recorrer ao algoritmo HDBSCAN (Hierarchical Density-Based Clustering of Applications with Noise) cuja documentação pode ser encontrada aqui.

Uma das características que mais aprecio neste algoritmo é a sua robustez. Também é muito fácil de utilizar pois requer apenas um único parâmetro: o número mínimo de instâncias que cada cluster deve conter. Todo o processo é muito rápido e o algoritmo lida bem com grandes conjuntos de dados.

Outra característica interessante é a de conceber um cluster especial para outliers. Quando o algoritmo não é capaz de associar uma instância a um cluster específico, automaticamente passa a considerá-lo um outlier, o que nos ajuda também a compreender melhor que clientes são verdadeiramente especiais e porquê. Por outro lado, os clusters mantêm-se mais homogéneos e distantes entre si.

A visualização dos resultados em Power BI

Apesar do HDBSCAN vir equipado com uma ferramenta de visualização dos clusters, nada bate o Power BI em termos de visualização e interação com os dados! Vamos tentar usar o melhor de dois mundos e integrar o Python no Power BI e extrair algum conhecimento destes dados!

cluster4

Aqui estão os nossos 4 clusters. Por defeito, o algoritmo vai nomeá-los de 0 e 4. No entanto, após análise dos resultados, é interessante criar uma narrativa para cada um e atribuir uma designação que ajude a compreender melhor o significado de cada cluster.

O primeiro cluster “0- High value German machines” é composto por 82 clientes e é o cluster com maior margem percentual, que compra com muita frequência e cujos clientes estão, principalmente, interessados em máquinas. Na sua maioria estes clientes estão localizados na Alemanha. É necessário tratar bem estes clientes fazendo tudo o que é possível para não os perder. Uma possível estratégia de marketing seria a de concentrar os esforços em desenvolver e divulgar novas máquinas, talvez optando por uma presença geográfica forte na Alemanha. Também podemos observar de que se trata de um grupo pequeno de clientes (82) e que compraram pela última vez em média há 57 dias, o que é bastante tempo - então, porque é que não lhes recordamos desta nova máquina que acabámos de lançar?

Cluster "1- Low frequency, new customers" é o grupo de clientes que compra maioritariamente produtos de engenharia. A maioria deles são novos clientes e efetuam apenas algumas encomendas por ano. A sua margem percentual é a mais baixa, por isso, talvez haja espaço para melhorar na otimização de preços ou de custos diretos?

Cluster “2- High frequency materials” estão presentes em Itália e em França, compram frequentemente e são clientes leais. A margem está acima da média, por isso vamos mantê-los felizes!

Cluster “3- Large volumes décor” é o maior grupo com 152 clientes. Compram grandes quantidades, mas não tão frequentemente. Compram na sua maioria produtos de decoração. Estão presentes na Alemanha, França e Itália e representam a maior quota de vendas de todos os grupos. 

Representar graficamente um conjunto de dados multidimensional não é fácil porque só conseguimos analisar dados sem dificuldade quando lidamos com duas dimensões (ou três, no máximo). No entanto, como é muito fácil criar visualizações no Power BI, temos sempre a possibilidade de combinar as variáveis duas a duas com gráficos de dispersão ou boxplots.

Por exemplo, representando cada um dos quatro clusters através de cores num gráfico que compara a margem percentual com a frequência de compra, é fácil de distinguir à direita do gráfico os clientes do cluster 0 e a sua alta margem, dos clientes à esquerda do cluster 1. Também é fácil distinguir os clientes do cluster 2 com a sua elevada frequência de compra dos clientes do cluster 3 com os seus elevados volumes de compra.

cluster5

Não é tão fácil distinguir (nem visualizar sequer) os outros atributos que utilizámos para construir os clusters. Uma sugestão seria criar outros gráficos idênticos a este, mas recorrendo à comparação de outras variáveis.

Outra visualização que nos ajudará a comparar clusters e a analisar a dispersão de uma variável apenas por cluster são os boxplots. Veja-se no gráfico abaixo a diferença em termos de margem percentual dos clientes do cluster 0 quando comparada com a dos clientes do cluster 1. E a grande dispersão de margens que encontramos nos clientes do cluster 3:

cluster6

Espero que este tipo de análise avançada tenha contribuído para o ajudar a descobrir novas ideias de desenvolvimento de estratégias de marketing. Aguardo os seus comentários!

Ficheiros em anexo


Assine a nossa newsletter e receba o nosso conteúdo diretamente no seu email