Clusterização de produtos de um supermercado com Python
Exemplo utilizando Python para agrupar produtos considerando apenas duas features
No cenário dinâmico do varejo, a capacidade de compreender e responder eficientemente aos padrões de compra dos clientes é crucial para o sucesso de um supermercado. A clusterização emerge como uma ferramenta poderosa nesse contexto, permitindo a segmentação inteligente de clientes com base em seus comportamentos de compra.
Neste artigo, exploraremos a aplicação prática da clusterização de vendas em supermercados, utilizando a linguagem de programação Python.
A escolha do Python não é apenas uma preferência popular na comunidade de ciência de dados, mas também uma opção robusta e versátil para análise de dados. Demonstraremos como utilizar a biblioteca scikit-learn
para aplicar o algoritmo K-Means, uma técnica comum de clusterização, e apresentaremos um exemplo envolvendo duas características para ilustrar o processo.
Dados dos Produtos
Criamos um dataset fictício com alguns produtos que são vendidos em supermercados. As features que utilizaremos serão Preço e Quantidade. Agrupando produtos por essas features conseguimos realizar uma gestão de estoque mais eficiente.
Nesse exemplo serão utilizadas as bibliotecas pandas, sklearn e para plotar os clusters vamos utilizar a matplotlib.
Carregando o dataset e features
Para carregar o nosso dataset usamos a função read_csv do pandas para a variável vendas
. Depois filtramos somente as features desejadas, ‘preco’ e ‘quantidade’.
Agrupando os produtos
Para agrupar os produtos vamos utilizar a função KMeans com 3 clusters.
A função KMeans
do pacote scikit-learn
em Python é uma implementação do algoritmo de agrupamento K-Means. O K-Means é um algoritmo popular de clusterização que divide um conjunto de dados em k grupos (clusters) com base nas características dos dados.
Na Figura 4 a função fit_predict
da classe KMeans
no pacote scikit-learn
combina duas etapas principais do processo de clusterização: ela treina o modelo com os dados de entrada e retorna os rótulos dos clusters atribuídos a cada ponto de dados no conjunto de treinamento. Isso é útil quando você está interessado apenas nos rótulos dos clusters e não precisa dos centróides ou outras informações após o treinamento.
Com a execução da célula da Fig 4 criamos uma nova coluna no nosso dataframe vendas, indicando a qual cluster aquele produto pertence.
Novo dataframe na Figura 5:
Plotar os Clusters
Para plotar os cluster, utilizaremos um gráfico de dispersão, o Scatter Plot.
O código abaixo constrói a imagem do plot que desejamos.
Uma outra maneira de visualizar a mesma informação é utilizando o laço for abaixo. Onde mostramos na tela cada item do dataframe que está em um determinado cluster:
Para melhorar a visualização do gráfico, sugiro incluir a legenda dos itens. Quando temos gráficos com muitos itens a leitura dos dados pode ficar muito poluída, mas como o nosso caso é de poucos itens, a legenda ajuda a identificar cada um dos clusters.
Utilizando as duas váriaveis preço e quantidade de vendas conseguimos ter três clusters de produtos
Isso pode ajudar o supermercado a entender melhor seu mix de produtos e ajustar suas estratégias de precificação e estoque de acordo com os diferentes grupos de produtos.
Utilize outros datasets com mais features ou com números diferentes de clusters e pratique um pouco de Python.
Para mais conteúdo acesso https://aprendadatacience.com ou no instagram @aprendatadascience