O que é análise de cesta de compras?

Análise de Cesta de Compras em R

Christopher Bruffaerts

Statistician

Várias cestas no supermercado

O que tem na loja?

all_products_emoticons

Cesta 1: {"Bread", "Cheese"}

Cesta 2: {"Bread", "Wine" , "Cheese"}

Várias cestas

Se 100 clientes visitam o supermercado, dá para encontrar associações de itens que ocorrem juntos?

Exemplo: Bread e Cheese

bread_cheese

Resultado: "se isso, então aquilo"

Análise de Cesta de Compras em R

Aplicações da cesta de compras

Aprendendo com várias cestas

baskets

Aplicações diversas

  • E-commerce: "clientes que compraram isto também compraram aquilo"
  • Varejo: itens "vendidos em conjunto ou posicionados juntos"
  • Redes sociais: recomendação de amigos e conexões
  • Recomendação de vídeos e filmes
Análise de Cesta de Compras em R

Várias cestas em R

Crie um conjunto de dados com várias cestas!

my_baskets = data.frame(
  "Basket" = c(1,1,1,1, 2,2,2, 3,3, 4,4,4, 5,5, 6,6, 7,7),
  "Product" = c("Bread", "Cheese", "Cheese", "Cheese",
                "Bread", "Butter", "Wine",
                "Butter", "Butter",
                "Butter", "Wine", "Wine",
                "Butter", "Cheese",
                "Cheese", "Wine",
                "Wine", "Wine")
)

Um olhar nas minhas cestas

head(my_baskets)
  Basket Product
1      1   Bread
2      1  Cheese
3      1  Cheese
4      1  Cheese
5      2   Bread
6      2  Butter
Análise de Cesta de Compras em R

O que há nas nossas cestas?

Perguntas

  • Quantos itens distintos existem?
n_distinct(my_baskets$Product)
[1] 4
  • Quantas cestas existem?
n_distinct(my_baskets$Basket)
[1] 7
  • Quantos itens há em cada cesta?
df_basket =
  my_baskets %>%
  group_by(Basket) %>%
  summarize(
    n_total = n(),
    n_items = n_distinct(Product))
  Basket n_total n_items
   <dbl>   <int>   <int>
1      1       4       2
2      2       3       3
Análise de Cesta de Compras em R

Qual o tamanho das cestas?

Tamanhos médios das cestas

basket_size %>% 
  summarize(
    avg_total_items = mean(n_total), 
    avg_dist_items = mean(n_items))
# A tibble: 1 x 2
  avg_total_items avg_dist_items
            <dbl>          <dbl>
1            2.57           1.86

Distribuição do tamanho das cestas

# Distribuição de itens distintos
ggplot(df_basket, aes(n_items)) +
  geom_bar()

distribution_basket

Análise de Cesta de Compras em R

Produtos específicos nas cestas

Qual item você está analisando?

  • Quantas vezes um item aparece em todas as cestas?

  • Quantas cestas contêm esse item?

Exemplo:

cheese

Filtrando por Cheese no R

# Número de cestas contendo Cheese
my_baskets %>%
  filter(Product == "Cheese")  %>%
  summarize(
    n_tot_items = n(),
    n_basket_item = n_distinct(Basket))
  n_tot_items n_basket_item
1           5             3
Análise de Cesta de Compras em R

Mineração de regras de associação

Mineração de regras de associação: encontrar associações frequentes de coocorrência em um conjunto de itens.

emoticons_arrows

Exemplo de extração de regras:

  • {Bread} $\rightarrow$ {Butter}
  • {Bread, Cheese} $\rightarrow$ {Wine}
Análise de Cesta de Compras em R

O que vem a seguir?

Agenda para o restante do curso:

  • Capítulo 2: Métricas e técnicas na análise de cesta de compras
  • Capítulo 3: Visualização na análise de cesta de compras
  • Capítulo 4: Estudo de caso: recomendações de filmes no MovieLens

movie_lens_logo

Análise de Cesta de Compras em R

Vamos brincar com cestas!

Análise de Cesta de Compras em R

Preparing Video For Download...