Apa itu market basket analysis?

Analisis Keranjang Belanja di R

Christopher Bruffaerts

Statistician

Banyak keranjang di toko bahan makanan

Apa saja di toko?

all_products_emoticons

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

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

Banyak keranjang

Jika 100 pelanggan mengunjungi toko bahan makanan, dapatkah kita menemukan asosiasi item yang muncul bersama?

Contoh: Bread dan Cheese

bread_cheese

Hasil: “jika ini, maka itu”

Analisis Keranjang Belanja di R

Aplikasi market basket

Belajar dari banyak keranjang

baskets

Beragam aplikasi

  • E-commerce: “pelanggan yang membeli ini juga membeli ini”
  • Ritel: item yang “dibundel atau ditempatkan berdampingan”
  • Media sosial: rekomendasi teman dan koneksi
  • Rekomendasi video dan film
Analisis Keranjang Belanja di R

Banyak keranjang di R

Buat dataset yang berisi banyak keranjang!

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

Sekilas keranjang saya

head(my_baskets)
  Basket Product
1      1   Bread
2      1  Cheese
3      1  Cheese
4      1  Cheese
5      2   Bread
6      2  Butter
Analisis Keranjang Belanja di R

Apa isi keranjang kita?

Pertanyaan

  • Ada berapa item unik?
n_distinct(my_baskets$Product)
[1] 4
  • Ada berapa keranjang?
n_distinct(my_baskets$Basket)
[1] 7
  • Ada berapa item di tiap keranjang?
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
Analisis Keranjang Belanja di R

Seberapa besar keranjang?

Rata-rata ukuran keranjang

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

Distribusi ukuran keranjang

# Distribusi item unik
ggplot(df_basket, aes(n_items)) +
  geom_bar()

distribusi_keranjang

Analisis Keranjang Belanja di R

Produk spesifik dalam keranjang

Item mana yang ditinjau?

  • Berapa kali item muncul di semua keranjang?

  • Ada di berapa keranjang item tersebut?

Contoh:

keju

Menyaring Cheese di R

# Jumlah keranjang yang berisi 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
Analisis Keranjang Belanja di R

Association rule mining

Association rule mining: menemukan asosiasi yang sering muncul bersama dalam sekumpulan item.

emoticons_arrows

Contoh ekstraksi aturan:

  • {Bread} $\rightarrow$ {Butter}
  • {Bread, Cheese} $\rightarrow$ {Wine}
Analisis Keranjang Belanja di R

Apa selanjutnya?

Agenda untuk sisa kursus:

  • Bab 2: Metrik & teknik dalam market basket analysis
  • Bab 3: Visualisasi dalam market basket analysis
  • Bab 4: Studi kasus: Rekomendasi film di MovieLens

movie_lens_logo

Analisis Keranjang Belanja di R

Ayo bermain dengan keranjang!

Analisis Keranjang Belanja di R

Preparing Video For Download...