Một số khái niệm

Một phần của tài liệu Ứng dụng thuật toán EFIM để khai phá tập mục hữu ích cao từ cơ sở dữ liệu bán hàng tại siêu thị co opmart quảng ngãi (Trang 34 - 42)

7. Bố cục luận văn

2.5.1.Một số khái niệm

- Độ hữu ích giao tác (Transaction Utility)

Độ hữu ích của giao tác Td, ký hiệu tu(Td) là tổng giá trị hữu ích của tất cả các mục chứa trong giao tác đó.

𝑡𝑢(𝑇𝑑) = ∑𝑖𝑗∈𝑇𝑑𝑢(𝑖𝑗, 𝑇𝑑)

Ví dụ: Trong bảng 2.1 và bảng 2.2 tính độ hữu ích của giao tác T1, T2 trong trong CSDL giao tác D.

tu(T1) = u(A, T1) + u(C, T1) + u(D, T1) = 1*5 + 1*1 + 1*2 = 8

tu(T2) = u(A, T2) + u(C, T2) + u(E, T2) + u(G, T2) = 2 * 5 + 6 + 2 * 3 + 5 = 27

Bảng 2.3. Bảng độ hữu ích các giao tác trong CSDL

TID Transactions Transaction Utitily

T1 (A,1) (C,1) (D,1) 8

T2 (A,2) (C,6) (E,2) (G,5) 27

T3 (A,1) (B,2) (C,1) (D,6) (E,1) (F,5) 30

T4 (B,4) (C,3) (D,3) (E,1) 20

T5 (B,2) (C,2) (E,1) (G,2) 11

- Độ hữu ích trọng số giao tác (Transaction Weighted Utilization - TWU)

Độ hữu ích trọng số giao tác của một tập mục X trong CSDL giao tác D, ký hiệu TWU(X) là tổng giá trị hữu ích của tất cả các giao tác chứa X trong D.

TWU(X) = ∑ tu(Td)

Td∈D XTd

Ví dụ: Tính độ hữu ích trọng số của mục A trong bảng 2.1 và bảng 2.2 TWU(A) = tu(T1) + tu(T2) + tu(T3) = 65.

Giá trị TWU của các mục thể hiện bảng 2.4.

Bảng 2.4. TWU của các mục trong CSDL giao tác D

Item A B C D E F G

TWU 65 61 96 58 88 30 38

- Tính chất 1: Cho X là tập mục, TWU(X) lớn hơn hoặc bằng giá trị hữu ích của X và các tập mục chứa X, tức là TWU(X) ≥ u(X) và TWU(X) ≥ u(Y), với (∀Y  X) [8].

- Tính chất 2:Nếu tập mục X có giá trị TWU(X) nhỏ hơn độ hữu ích tối thiểu minutil, thì tất cả các tập mục chứa X là tập mục hữu ích thấp [4].

Ví dụ: Với minutil = 35, trong bảng 2.4 mục F và các tập mục chứa F đều là tập mục hữu ích thấp.

- Giá trị hữu ích còn lại (Remaining utility)

Gọi ≻ là thứ tự sắp xếp bất kỳ các mục của I trong CSDL D (ví dụ theo alpha b hoặc theo giá trị TWU), X là tập mục trong giao tác Td. Giá trị hữu ích còn lại của X trong một giao tác Td, ký hiệu re(X, Td) sau khi sắp xếp theo ≻, được tính như sau:

re(X, Td) = ∑i∈Td ˄ i≻x,∀x∈X u(i, Td)

Ví dụ: Dựa vào bảng 2.1 và bảng 2.2 tính re của {A, E} trong giao tác T2 Gọi ≻ sắp xếp theo thứ tự alpha b ta có: (G ≻ F ≻ E ≻ D ≻ C ≻ B ≻ A) Giao tác T2 = {(A,2)(C,6)(E,2)(G,5)}

Sau khi sắp xếp các mục trong T2 theo ≻, T2= {G, E, C, A} re({A, E}, T2) = u(G, T2) = 5

Gọi ≻ là thứ tự sắp xếp các mục của I, thứ tự sắp xếp tất cả các mục trong không gian tìm kiếm là 2I được biểu diễn dưới dạng cây. Trong không gian tìm kiếm, thuật toán EFIM sử dụng phương pháp tìm kiếm theo chiều sâu: Đầu tiên đào sâu từ gốc (rỗng) tiếp đến là đào sâu các tập mục trên cây con theo thứ tự ≻. (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ: Xét I = {A, B, C, D} và cây tìm kiếm được biểu diễn như sau:

Hình: 2.1. Biểu diễn cây tìm kiếm của I

Một số định nghĩa tìm kiếm các tập mục theo chiều sâu:

- Các mục mở rộng từ tập mục:

Gọi α là tập mục, E(α) là tập hợp tất cả các mục có thể mở rộng từ tập mục α để tìm kiếm theo chiều sâu, tức là:

E(α) = {z | (zI)  (z ≻ x), x α} Ví dụ cho α = C thì E(α) = {D, E, F, G}

- Mục đơn mở rộng của tập mục:

Gọi α là tập mục, Z là mục đơn mở rộng của α nếu Z = α  {z}, z  E(α) Ví dụ: Xét CSDL D, bảng 2.1 bảng 2.2. Gọi ≻ sắp xếp theo thứ tự alpha. Cho α = D, E(α) = {E, F, G} ta có mục đơn mở rộng của α: {D, E}, {D, F}, {D, G}

kỹ thuật mới gọi là CSDL tham chiếu – High utility Database Projection (HDP). Kỹ thuật này sẽ loại bỏ tất cả các mục không phải tập mục mở rộng của α khi quét CSDL để tính giá trị hữu ích của tập mục trên cây con.

- Giao tác tham chiếu – Projected transaction

Tham chiếu của giao tác T lên tập mục α ký hiệu là α – T và được định nghĩa như sau:

α – T = {i | i ∈ T ∧ i ∈ E(α)}

- Cơ sở dữ liệu tham chiếu – Projected database

Tham chiếu của một CSDL D lên tập mục α, ký hiệu α – D và được định nghĩa như sau:

α – D = {α – T | (T D)  α – T  } Ví dụ: Xét CSDL D và bảng 2.1, cho α = {B}, tính α – D, ≻ sắp xếp theo thứ tự alpha b. Ta có: + α – D = {α – T3, α – T4, α – T5} + E(α) = {C, D, E, F, G} + α – T3 = {C, D, E, F} + α – T4 ={C, D, E} + α – T5 ={C, E, G}

Thuật toán EFIM đã đưa một kỹ thuật hiệu quả là hợp nhất giao tác – High utilty Transaction Merging (HTM). HTM sẽ xác định các giao tác giống nhau và thay thế chúng bằng một giao tác trong CSDL tham chiếu.

Một giao tác Ta được gọi là giống giao tác Tb nếu các mục trong Ta giống các mục trong giao tác Tb, tức là Ta = Tb. Hai giao tác giống nhau không nhất thiết phải cùng giá trị hữu ích nội.

- Hợp nhất giao tác – Transaction merging

Hợp nhất giao tác là thay thế một tập các giao tác giống nhau T1, T2, … Tm trong CSDL D bằng một giao tác mới TM = T1 = T2 = … = Tm.

hiệu quả không cao. Vì vậy cần phải hợp nhất các giao tác trong CSDL tham chiếu.

- Hợp nhất giao tác tham chiếu - Projected transaction merging

Hợp nhất giao tác tham chiếu là thay thế một tập các giao tác giống nhau T1, T2, … Tm trong CSDL tham chiếu α – D bằng một giao tác mới TM = T1 = T2 = … = Tm, với số lượng của mỗi mục (iTM) bằng tổng giá trị hữu ích nội trong các giao tác, tức là: 1 ( , ) ( , ) m M k k q i T q i T   

Ví dụ: Xét CSDL D, bảng 2.1, cho α = {C}, ≻ sắp xếp theo thứ tự alpha b. + α – D = {α – T1, α – T2, α – T3, α – T4, α – T5} + E(α) = {D, E, F, G} + α – T1 = {D} + α – T2 = {E, G} + α – T3 = {D, E, F} + α – T4 = {D, E} + α – T5 = {E, G}

Thay giao tác α – T2 và giao tác α – T5 bằng giao tác TM = {E, G}. Với q(E, TM) = 2 + 1 = 3, q(G, TM) = 5 + 2 = 7

- Thứ tự các giao tác - Total order on transactions

Gọi ≻T là tập các giao tác sắp xếp theo thứ tự từ trước ra sau. Xét 2 giao tác: Ta = {i1, i2, ..., im} và Tb = {j1, j2, ..., jk}. Thứ tự sắp xếp các giao tác ≻T được xác định bằng 4 trường hợp:

+ Trường hợp 1: Tb ≻Ta nếu cả hai giao tác Tb, Ta là như nhau và TID của Tb lớn hơn TID của Ta

+ Trường hợp 2: Tb ≻T Ta nếu k > m và im − x = jk − x với 0 ≤ x < m

+ Trường hợp 3: Tb ≻T Ta nếu 0 ≤ x < min(m, k) làm cho jk − x ≻ im − x và im –y = jk – y với x <y < min(m, k)

+ Trường hợp 4: Ta≻T Tb (adsbygoogle = window.adsbygoogle || []).push({});

- Xét Tx = {b, c}, Ty = {a, b, c} thoả mãn trường hợp 2: Ty ≻T Tx nếu: 3 > 2 với 0 ≤ x < 2 + Xét x = 0 thì i2 = j3 tức là c = c

+ Xét x = 1 thì i1 = j2 tức là b = b Vậy Ty≻T Tx

Tính chất 3: Gọi ≻T là thứ tự sắp xếp các giao tác trong CSDL và tập mục α. Các giao tác giống nhau xuất hiện thường xuyên trong CSDL tham chiếu α – D.

Ngoài các kỹ thuật giảm chi phí CSDL, một vấn đề quan trọng khác là thiết kế cơ chế cắt tỉa các tập mục trong không gian tìm kiếm. Thuật toán EFIM đã dựa vào hai giá trị hữu ích mới của tập mục đó là giá trị hữu ích của cây con (Sub-tree utility) và giá trị hữu ích cục bộ (Local utility).

Hai ràng buộc này được tính đối với nhánh của tập mục α trong cây tìm kiếm, một số nhánh của cây sẽ được bỏ qua nếu không thõa hai ràng buộc và tập trung đào sâu các nhánh cây phù hợp hai ràng buộc. Điều này làm giảm quá trình tìm kiếm, tiết kiệm thời gian mà vẫn đảm bảo tính đúng đắn của thuật toán.

- Giá trị hữu ích cục bộ - Local utility

Cho α là tập mục và z là mục, zE(α). Giá trị hữu ích cục bộ z đối với α, ký hiệu lu(α, z) được tính như sau:

( {z}) ( , ) [ ( , ) ( , )] T g lu z u T re T         

Ví dụ: Xét CSDL D, bảng 2.1 và bảng 2.2. Cho α = {A}, tính lu(α, C), lu(α, D) và lu(α, E).

Gọi ≻ thứ tự sắp xếp các mục trong I, α = {A} suy ra E(α) = {B, C, D, E, F, G} lu(α, C) = u(α, T1) + re(α, T1) + u(α, T2) + re(α, T2) + u(α, T3) + re(α, T3) lu(α, D) = u(α, T1) + re(α, T1) + u(α, T3) + re(α, T3)

lu(α, E) = u(α, T2) + re(α, T2) + u(α, T3) + re(α, T3) re(α, T1) = u(C, T1) + u(D, T1) = 3

re(α, T2) = u(C, T2) + u(E, T2) + u(G, T2) = 17

re(α, T3) = u(B, T3) + u(C, T3) + u(D, T3) + u(E, T3) + u(F, T3) + u(G, T3) = 25 Vậy lu(α, C) = 8+ 27+ 30 = 65, lu(α, D) = 38, lu(α, E) = 57.

Định lý 1: Gọi α là tập mục, mục z  E(α). Nếu giá trị hữu ích cục bộ z đối với α nhỏ hơn ngưỡng hữu ích tối thiểu, lu(α, z) < minutil thì tất cả các mục mở rộng của α chứa z là tập mục hữu ích thấp. Nói cách khác z bị loại bỏ ra khỏi tất cả nhánh của tập mục α [14].

Để tiếp tục giảm cắt tỉa, thuật toán sử dụng một ràng buộc có tên sub-tree utility:

- Giá trị hữu ích cây con – Sub-tree utility

Cho α là tập mục và z là mục có thể mở rộng từ tập mục α để tìm kiếm theo chiều sâu với z  E(α). Giá trị hữu ích cây con z đối với α, ký hiệu su(α, z) được định nghĩa như sau:

( {z}) ( {z}) ( , ) [ ( , ) ( , ) ( , )] T g i T i E su z u T u z T u i T               

Ví dụ: Xét CSDL D, bảng 2.1 và bảng 2.2. Cho α = {A}, tính su(α, C), su(α, D) và su(α, E).

su(α, C) = u(α, T1) + u(C, T1) + u(D, T1) + u(α, T2) + u(C, T2) + u(EG, T2) + u(α, T3) + u(C, T2) + u(EG, T3) = (5 + 1+ 2) + (10 + 6 + 11) + (5 + 1 + 20) = 61

Tương tự, su(α, D) = 25 và su(α, E) = 34

Tính chất 4: Gọi α là tập mục, mục z  E(α), giá trị su(α, z) lớn hơn hoặc bằng giá trị hữu ích của mục mở rộng của α, tức là su(α, z) ≥ u(α, z).

Định lý 2: Gọi α là tập mục, mục z  E(α). Nếu giá trị hữu ích cây con z đối với α nhỏ hơn ngưỡng hữu ích thối thiểu, su(α, z) < minutil thì tất cả phần mở rộng α  {z} là tập mục hữu ích thấp [14].

Xét ví dụ trên với minutil = 30 thì α  {D} là tập mục hữu ích thấp.

- Các mục chính và phụ - Primary and secondary items

Gọi α là tập mục, các mục chính của α là tập hợp các mục, ký hiệu Primary(α), tính theo công thức:

Primary(α) = {z | z  E(α)  su(α, z) ≥ minutil}.

Các mục phụ của α là tập hợp các mục, ký hiệu Secondary(α), được tính theo công thức sau:

Vì lu(α, z) ≥ su(α, z) nên Primary(α) ⊆ Secondary(α).

Ví dụ: Cho α = {A}, tính được Primary(α) = {C, E} và Secondary(α) ={C, D, E}, có nghĩa trong hình 2.1 chỉ nên đào sâu nhánh {AC} và {AE} và đào sâu 3 nút C, D, E. (adsbygoogle = window.adsbygoogle || []).push({});

Thuật toán EFIM sử dụng phương pháp khác để tính các ràng buộc có hiệu quả cả về thời gian và không gian gọi là Fast Utility Counting (FUC) bằng cách sử dụng mảng utility-bin.

- Cấu trúc mảng – Utility-bin

Gọi I là tập hợp các mục xuất hiện trong CSDL D, U là một mảng cấu trúc utility-bin, với chiều dài mảng | I |. Mỗi mục trong mảng ký hiệu U[z], z  I, giá trị nhập vào của mỗi mục trong mảng là giá trị hữu ích của mục (giá trị khởi tạo là 0).

Một mảng cấu trúc có thể được sử dụng để tính toán hiệu quả các ràng buộc sau [14]:

- Tính giá trị TWU của tất cả các mục: Cho mảng khởi tạo U, mỗi giao tác T trong mảng U[z], với zT được cập nhật U[z] = U[z] + TU(T). Quét CSDL lần cuối cho mỗi mục kI, các phần tử U[k] sẽ tính giá trị TWU(k).

- Tính giá trị hữu ích cây con đối với tập mục α: Cho mảng cấu trúc utility-bin dùng để tính giá trị hữu ích cây con sub-tree, mảng U được khởi tạo có giá trị 0. Tiếp theo giá trị mảng mỗi giao tác T là U[z] với z = T  E(α) được cập nhập theo công thức sau: ( ) [ ] [ ] ( , ) ( , ) ( , ) i T i z i Secondary U z U z u T u z T u i T           

Giao tác cuối cùng được tính: U[k] = su(α, k), kE(α)

- Tính giá trị hữu ích cục bộ đối với tập mục α: Mảng U được khởi tạo có giá trị 0. Tiếp theo giá trị mảng mỗi giao tác T là U[z], với z = T  E(α) được cập nhập theo công thức sau: U[z] = U[z] + u(α, T) + re(α, T). Giao tác cuối cùng được tính U[k] = lu(α, k), kE(α).

Ví dụ: Dựa vào dữ liệu trong bảng 2.1 và bảng 2.2, tính giá trị TWU bằng Utility-bin.

Bảng 2.5. Giá trị TWU bằng utility-bin

U[A] U[B] U[C] U[D] U[E] U[F] U[G]

Khởi tạo 0 0 0 0 0 0 0 T1 8 0 8 8 0 0 0 T2 35 0 35 8 27 0 27 T3 65 30 65 38 58 30 27 T4 65 50 85 58 77 30 27 T5 65 61 96 58 88 30 38

Một phần của tài liệu Ứng dụng thuật toán EFIM để khai phá tập mục hữu ích cao từ cơ sở dữ liệu bán hàng tại siêu thị co opmart quảng ngãi (Trang 34 - 42)