Phân tích giỏ hàng là gì?

Phân tích giỏ hàng trong R

Christopher Bruffaerts

Statistician

Nhiều giỏ @ siêu thị

Trong cửa hàng có gì?

all_products_emoticons

Giỏ 1: {"Bread", "Cheese"}

Giỏ 2: {"Bread", "Wine" , "Cheese"}

Nhiều giỏ

Nếu 100 khách đến siêu thị, ta có tìm được các mặt hàng thường đi kèm không?

Ví dụ: Bread và Cheese

bread_cheese

Kết quả: “nếu cái này thì cái kia”

Phân tích giỏ hàng trong R

Ứng dụng phân tích giỏ hàng

Học từ nhiều giỏ

baskets

Ứng dụng khác nhau

  • Thương mại điện tử: “khách mua món này cũng mua món kia”
  • Bán lẻ: các mặt hàng “đóng gói/đặt cùng nhau”
  • Mạng xã hội: gợi ý bạn bè/kết nối
  • Gợi ý video và phim
Phân tích giỏ hàng trong R

Nhiều giỏ trong R

Tạo bộ dữ liệu chứa nhiều giỏ hàng!

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

Xem nhanh các giỏ

head(my_baskets)
  Basket Product
1      1   Bread
2      1  Cheese
3      1  Cheese
4      1  Cheese
5      2   Bread
6      2  Butter
Phân tích giỏ hàng trong R

Trong giỏ có gì?

Câu hỏi

  • Có bao nhiêu mặt hàng khác nhau?
n_distinct(my_baskets$Product)
[1] 4
  • Có bao nhiêu giỏ hàng?
n_distinct(my_baskets$Basket)
[1] 7
  • Mỗi giỏ có bao nhiêu mặt hàng?
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
Phân tích giỏ hàng trong R

Giỏ hàng lớn cỡ nào?

Kích thước giỏ trung bình

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

Phân phối kích thước giỏ

# Phân phối số mặt hàng khác nhau
ggplot(df_basket, aes(n_items)) +
  geom_bar()

phân_phối_giỏ

Phân tích giỏ hàng trong R

Sản phẩm cụ thể trong giỏ

Bạn đang xem mặt hàng nào?

  • Sản phẩm xuất hiện bao nhiêu lần trong tất cả giỏ?

  • Có bao nhiêu giỏ chứa sản phẩm đó?

Ví dụ:

phô_mai

Lọc Phô mai trong R

# Số giỏ chứa Phô mai
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
Phân tích giỏ hàng trong R

Khai phá luật kết hợp

Khai phá luật kết hợp: tìm các kết hợp xuất hiện thường xuyên giữa các mặt hàng.

emoticons_arrows

Ví dụ trích xuất luật:

  • {Bread} $\rightarrow$ {Butter}
  • {Bread, Cheese} $\rightarrow$ {Wine}
Phân tích giỏ hàng trong R

Tiếp theo là gì?

Kế hoạch cho phần còn lại của khóa học:

  • Chương 2: Chỉ số & kỹ thuật trong phân tích giỏ hàng
  • Chương 3: Trực quan hóa trong phân tích giỏ hàng
  • Chương 4: Nghiên cứu tình huống: Gợi ý phim @ MovieLens

movie_lens_logo

Phân tích giỏ hàng trong R

Hãy chơi với các giỏ hàng!

Phân tích giỏ hàng trong R

Preparing Video For Download...