Vad är varukorgsanalys?

Kundkorgsanalys i R

Christopher Bruffaerts

Statistician

Flera korgar i matbutiken

Vad finns i butiken?

all_products_emoticons

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

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

Flera korgar

Om 100 kunder besöker en matbutik – kan vi hitta samband mellan varor som förekommer tillsammans?

Exempel: Bröd och ost

bread_cheese

Resultat: "om det här, så det där"

Kundkorgsanalys i R

Tillämpningar av varukorgsanalys

Lär av flera korgar

baskets

Olika tillämpningar

  • E-handel: "kunder som köpte det här köpte även det här"
  • Detaljhandel: varor som "buntas ihop eller placeras tillsammans"
  • Sociala medier: rekommendationer för vänner och kontakter
  • Rekommendationer för video och film
Kundkorgsanalys i R

Flera korgar i R

Skapa en datamängd med flera korgar!

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")
)

En titt på korgarna

head(my_baskets)
  Basket Product
1      1   Bread
2      1  Cheese
3      1  Cheese
4      1  Cheese
5      2   Bread
6      2  Butter
Kundkorgsanalys i R

Vad innehåller korgarna?

Frågor

  • Hur många unika artiklar finns det?
n_distinct(my_baskets$Product)
[1] 4
  • Hur många korgar finns det?
n_distinct(my_baskets$Basket)
[1] 7
  • Hur många artiklar finns det i varje korg?
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
Kundkorgsanalys i R

Hur stora är korgarna?

Genomsnittlig korgstorlek

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

Fördelning av korgstorlek

# Distribution of distinct items
ggplot(df_basket, aes(n_items)) +
  geom_bar()

distribution_basket

Kundkorgsanalys i R

Specifika produkter i korgarna

Vilken artikel tittar du på?

  • Hur många gånger förekommer en artikel i alla korgar?

  • Hur många korgar innehåller den artikeln?

Exempel:

cheese

Filtrera efter ost i R

# Number of baskets containing 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
Kundkorgsanalys i R

Associationsregelutvinning

Associationsregelutvinning: att hitta frekventa samförekomster bland en samling artiklar.

emoticons_arrows

Exempel på regelutvinning:

  • {Bread} $\rightarrow$ {Butter}
  • {Bread, Cheese} $\rightarrow$ {Wine}
Kundkorgsanalys i R

Vad kommer härnäst?

Kursens fortsatta innehåll:

  • Kapitel 2: Mätvärden och tekniker inom varukorgsanalys
  • Kapitel 3: Visualisering inom varukorgsanalys
  • Kapitel 4: Fallstudie: Filmrekommendationer @ movieLens

movie_lens_logo

Kundkorgsanalys i R

Nu kör vi en övning!

Kundkorgsanalys i R

Preparing Video For Download...