Kết hợp mặt hàng

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

Christopher Bruffaerts

Statistician

Quay lại cửa hàng tạp hóa

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

tất_cả_sản_phẩm_biểu_tượng

Hôm nay quý vị muốn gì?

bánh_mì_3phô_mai

{"Bread", "Cheese", "Cheese", "Cheese"}

Trọng tâm của phân tích giỏ hàng

bánh_mì_phô_mai

{"Bread", "Cheese"}

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

Tập con và siêu tập

Cửa hàng của tôi - tập

X = {"Bread", "Butter", "Cheese", "Wine"}

tất_cả_sản_phẩm_biểu_tượng

Tập con của X - itemset

  • Kích thước 0: { ${ \emptyset }$ }
  • Kích thước 1: {"Bread"}, {"Wine"}, ...
  • Kích thước 2: {"Bread", "Wine"}, ...

Siêu tập (superset)

  • {"Bread", "Butter"} là siêu tập của {"Bread"}
  • {"Bread", "Butter", "Cheese", "Wine"} là siêu tập của {"Bread", "Butter"}
Phân tích giỏ hàng trong R

Đồ thị itemset

Câu hỏi:

Tập tất cả các tập con có thể của X là gì?

X = {A, B, C, D}

đồ_thị_itemset

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

Giao và hợp

  • Giao

{"Bread"} $\cap$ {"Butter"} = $\emptyset$

{"Bread", "Butter"} $\cap$ {"Butter", "Wine"} = {"Butter"}

library(dplyr)
A = c("Bread", "Butter")
B = c("Bread", "Wine")
intersect(A,B)
[1] "Bread"
  • Hợp

{"Bread"} $\cup$ {"Butter"} = {"Bread", "Butter"}

union(A,B)
[1] "Bread"  "Butter" "Wine"
Phân tích giỏ hàng trong R

Có bao nhiêu giỏ kích thước k?

Câu hỏi:

Có bao nhiêu tập con kích thước k từ một tập kích thước n?

“n chọn k”

$${n \choose k} = \dfrac{n!}{(n-k)! k!},$$ trong đó

$n! = n \times (n-1) \times (n-2) \times ...\times 2 \times 1$

Ví dụ:

Số giỏ có 2 mặt hàng khác nhau từ cửa hàng:

tất_cả_sản_phẩm_biểu_tượng

$${4 \choose 2} = \dfrac{4!}{(4-2)! 2!} = 6$$

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

Có bao nhiêu giỏ có thể?

Câu hỏi

Có bao nhiêu giỏ có thể tạo từ một tập kích thước n?

Nhị thức Newton

$$\sum_{k=0}^n{n \choose k} = 2^n$$

2^(n_items)

Ví dụ

Tổng số giỏ:

$$2^4 = 16$$

tất_cả_sản_phẩm_biểu_tượng

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

Có bao nhiêu giỏ trong R?

Tổ hợp trong R

n_items = 4
basket_size = 2
choose(n_items, basket_size)
[1] 6
# Lặp qua mọi giá trị có thể
store = matrix(NA, nrow=5, ncol=2)
for (i in 0:n_items){
  store[i+1,] = c(i, choose(n_items,i))}

Kết quả

colnames(store)=c("size", "nb_combi")
store
     size nb_combi
[1,]    0        1
[2,]    1        4
[3,]    2        6
[4,]    3        4
[5,]    4        1
Phân tích giỏ hàng trong R

Vẽ số lượng tổ hợp

Hình dung tốc độ tăng của số tổ hợp

n_items = 50
fun_nk = function(x) choose(n_items, x)
# Vẽ biểu đồ
ggplot(data = data.frame(x = 0),
    mapping = aes(x=x))+
  stat_function(fun = fun_nk)+
  xlim(0, n_items)+
  xlab("Kích thước tập con")+
  ylab("Số tập con")

phân_phối_tổ_hợp

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

Sẵn sàng đếm chưa?

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

Preparing Video For Download...