Este projeto realiza uma Análise de Cesta de Compras utilizando dados transacionais (itens de notas fiscais), com manipulação de dados performática via Polars e mineração de itemsets frequentes usando o algoritmo FP-Growth. O objetivo principal é identificar regras de associação do tipo "SE compra Produto X, ENTÃO compra Produto Y", descobrindo quais produtos são frequentemente comprados juntos e a força dessas associações para insights de negócio.
- Python 3.9.13 (ou a versão que estiver usando)
- Polars: Para manipulação e preparação de dados de alta performance.
- Mlxtend: Para implementação do algoritmo FP-Growth e geração das regras de associação.
- Matplotlib & Seaborn: Para visualização de dados (gráficos de barras, dispersão, heatmaps).
- NetworkX: Para criação e visualização do grafo de associação de produtos (se utilizado).
- Pandas: Utilizado pontualmente para interface com
mlxtende agrupamento específico. - Openpyxl: Para exportar os resultados para formato Excel (.xlsx) (ou
xlsxwriter).
- Clone o repositório:
git clone [URL_DO_SEU_REPOSITORIO_AQUI] cd [NOME_DA_PASTA_DO_PROJETO] - (Recomendado) Crie um Ambiente Virtual:
python -m venv venv # No Windows: venv\Scripts\activate # No macOS/Linux: source venv/bin/activate
- Instale as dependências:
Certifique-se de ter um arquivo
requirements.txtno seu projeto que incluapolars,mlxtend,matplotlib,seaborn,networkx,pandas,openpyxl(ouxlsxwriter), etc. Se não tiver, você pode gerá-lo compip freeze > requirements.txt. Para instalar os pacotes necessários, execute:pip install -r requirements.txt
- Dados de Entrada: Coloque os arquivos de dados Olist (ou outro) na pasta
/data/(ou conforme configurado no script/notebook). - Execute o Script/Notebook: Execute o arquivo Python principal (ex:
analise_cesta_olist.py) ou as células do Jupyter Notebook (src/). O código utiliza Polars para pré-processamento, Pandas para um passo de agrupamento específico, emlxtendcom FP-Growth para a análise de cesta. - Resultados: O processo irá gerar:
- Logs de execução no console/notebook.
- Visualizações (se incluídas no código para execução direta).
- Um arquivo Excel (ex:
regras_fpgrowth_olist_final.xlsx) contendo a tabela final com as regras de associação, métricas e categorias/nomes dos produtos.
-
Análise de Cesta (Market Basket Analysis): 🧺 É uma técnica de mineração de dados usada para descobrir associações entre itens frequentemente comprados juntos. Ajuda a entender o comportamento de compra e embasar decisões de marketing, layout e recomendação.
-
Algoritmo FP-Growth: 🌳 Escolhido para este projeto por sua eficiência e robustez em encontrar "itemsets frequentes" (conjuntos de itens que aparecem juntos acima de um
min_support). Diferente do Apriori, o FP-Growth:- Evita Geração de Candidatos: Não precisa gerar e testar um número potencialmente enorme de combinações de itens intermediários, que é um gargalo do Apriori.
- Usa a FP-Tree: Constrói uma estrutura de dados em árvore compacta (FP-Tree) que armazena os padrões frequentes com apenas duas varreduras nos dados.
- Minera a Árvore: Extrai os itemsets frequentes diretamente da FP-Tree, geralmente resultando em melhor desempenho (velocidade e uso de memória), especialmente em datasets maiores ou mais densos.
-
Biblioteca
mlxtend: 🐍 É uma biblioteca Python essencial para esta análise, fornecendo as implementações:mlxtend.frequent_patterns.fpgrowth: Função utilizada neste projeto para encontrar os itemsets frequentes de forma eficiente.mlxtend.frequent_patterns.association_rules: Função usada para gerar as regras de associação (calculando suporte, confiança, lift, etc.) a partir dos itemsets frequentes encontrados pelofpgrowth.- (Ela também contém a implementação do
apriori, que foi considerado mas substituído pelofpgrowth).
- Tabela de Regras de Associação (com métricas e nomes/categorias).
- Gráficos de Barras (Top N regras por Lift/Confiança).
- Gráfico de Dispersão (Suporte vs. Confiança, colorido/dimensionado por Lift).
- Heatmap (Matriz de Confiança ou Lift).
- Grafo de Rede (visualizando conexões entre produtos/categorias).