Bài viết này đề xuất thuật toán nhanh khai thác tập hiếm tối thiểu với ngưỡng phổ biến tối thiểu động. Kết quả thực nghiệm trên bộ dữ liệu thực và giả lập, cho thấy thuật toán đề xuất nhanh hơn so với thuật toán hiện hành.
Phan Thành Huấn 191 DYN-mRI: Thuật toán khai thác nhanh tập tối thiểu với ngưỡng phổ biến động Phan Thành Huấn1,2 Bộ môn Tin học, Đại học Khoa học Xã hội Nhân văn, Đại học Quốc gia, Tp Hồ Chí Minh Khoa Tốn -Tin học, Đại học Khoa học Tự nhiên, Đại học Quốc gia, Tp Hồ Chí Minh huanphan@hcmussh.edu.vn Tóm tắt Trong khai thác liệu, khai thác tập kỹ thuật khai thác quan trọng với ứng dụng tiềm phát cơng máy tính, giao dịch gian lận tổ chức tài chính, tin sinh học, y tế Trong viết này, đề xuất thuật toán nhanh khai thác tập tối thiểu với ngưỡng phổ biến tối thiểu động Kết thực nghiệm liệu thực giả lập, cho thấy thuật toán đề xuất nhanh so với thuật tốn hành Từ khóa: Luật Kết Hợp, Tập Hiếm Tối Thiểu, Ngưỡng Phổ Biến Động Giới thiệu Thuật toán khai thác luật kết hợp truyền thống [1-3] dùng giá trị ngưỡng phổ biến tối thiểu minsup với ngầm định mặt hàng có tính chất tần số liệu, điều không thực tế Trong kinh doanh bán lẻ, thường mặt hàng thiết yếu, hàng tiêu dùng sản phẩm giá rẻ mua nhiều hơn, mặt hàng xa xỉ sản phẩm giá trị cao lại mua (tập hiếm) Nếu chọn minsup q cao mặt hàng khai thác thơng thường có giá thành thấp mang lại lợi nhuận không cao cho doanh nghiệp Ngược lại, chọn minsup thấp mặt hàng khai thác lớn, điều làm cho doanh nghiệp khó khăn định kinh doanh Từ đó, có nhiều thuật toán khai thác tập đề xuất Apriori-Inverse, ARIMA, Rarity, Walky-G Các thuật toán dựa Apriori [46], Eclat [7] có nhiều hạn chế quét liệu nhiều lần, sử dụng nhiều nhớ, chiến lược cắt tỉa (không tái sử dụng cho lần khai thác tiếp theo) Thuật tốn NOV-mRI [8] nhóm tác giả đề xuất hiệu thuật toán [5-7] Tuy nhiên, thuật toán chưa đáp ứng thực tế - cần khai thác tập người dùng yêu cầu thực khai thác tập thỏa ngưỡng minsup nhiều chuỗi thao tác liên tiếp khác Để đáp ứng thực tế, tác giả cải tiến thuật toán NOV-mRI khai thác nhanh tập tối thiểu thay đổi minsup gọi thuật tốn DYN-mRI khơng đọc lại liệu cho nhiều lần khai thác Trong phần 2, trình bày khái niệm khai thác tập phổ biến, tập tập tối thiểu Phần 3, xây dựng thuật toán liên quan thuật toán DYN-mRI khai thác tập tối thiểu với ngưỡng minsup động Kết thực nghiệm trình bày phần kết luận phần 192 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC Các vấn đề liên quan 2.1 Khai thác tập phổ biến Cho 𝐼 = {𝑖1 , 𝑖2 , … 𝑖𝑚 } tập gồm m mục hàng riêng biệt, mục hàng gọi item Tập mục 𝑋 = {𝑖1 , 𝑖2 , … 𝑖𝑘 }, ∀𝑖𝑗 ∈ 𝐼(1 ≤ 𝑗 ≤ 𝑘) gọi itemset, tập mục có k mục gọi k-itemset Ɗ liệu giao dịch, gồm n ghi phân biệt gọi tập giao dịch 𝑇 = {𝑡1 , 𝑡2 , … 𝑡𝑛 }, giao dịch 𝑡𝑗 = {𝑖𝑘1 , 𝑖𝑘2 , … 𝑖𝑘𝑙 }, ∀𝑖𝑘𝑙 ∈ 𝐼(1 ≤ 𝑘𝑙 ≤ 𝑚) Định nghĩa 1: Độ phổ biến (support) itemset 𝑋 ⊆ 𝐼, ký hiệu 𝑠𝑢𝑝(𝑋) số giao dịch Ɗ có chứa X Định nghĩa 2: Cho 𝑋 ⊆ 𝐼, X gọi itemset phổ biến 𝑠𝑢𝑝(𝑋) ≥ 𝑚𝑖𝑛𝑠𝑢𝑝, minsup ngưỡng phổ biến tối thiểu Cho liệu giao dịch Ɗ Bảng Bảng Dữ liệu giao dịch 𝒟 cho Ví dụ Mã Tập mục hàng t1 t2 t3 t4 t5 A A C C A A C C E F G E D H F E G G t6 t7 t8 t9 10 A A A A B B C C C C E E D E E F G G Dữ liệu giao dịch Ɗ Bảng 1, có item riêng biệt I = {A, B, C, D, E, F, G, H} 10 giao dịch T = {t1, t2, t3, t4, t5, t6, t7, t8, t9, t10} 2.2 Khai thác tập tập tối thiểu Trong thực tế, nhiều ứng dụng tiềm cần khai thác tập ứng dụng phát cơng máy tính, giao dịch gian lận tổ chức tài chính, tin sinh học, y tế,… Dưới khái niệm liên quan đến tập hiếm: Định nghĩa 3: Cho X I, X gọi itemset – sup(X) < minsup Ký hiệu RI tập hợp chứa itemset Định nghĩa 4: Cho X I, X gọi itemset tối thiểu – X RI tất tập thực X phổ biến Ký hiệu mRI tập chứa itemset tối thiểu Tính chất 1: ik I, sup(ik) < minsup ik mRI Bảng Tập RI mRI liệu giao dịch 𝒟 với minsup = k-itemset Tập RI #RI = 26 H HE, DF, DG, BG BGE, BGA, BGC, DFG, DFA, DFC, DGA, DGC, GGE BGAC, BGEA, BGEC, DFAC, DGAC, DGEA, DGEC, FGEA, FGEC BGEAC, DFGAC, FGEAC Tập mRI #mRI = H, B, D FG, FE Phan Thành Huấn 193 Bảng 2, cho thấy tập RI mRI chứa k-itemset với minsup = Số lượng |RI| = 26 |mRI| = Tỷ suất mRI RI 26 100% 19% (mRI RI) Thuật toán đề xuất 3.1 Tập chiếu item xuất giao dịch Tập chiếu mục hàng 𝑖𝑘 liệu giao dịch Ɗ: 𝜋(𝑖𝑘 ) = {𝑡 ∈ 𝒟|𝑖𝑘 ∈ 𝑡} tập giao dịch có chứa mục hàng 𝑖𝑘 ( - đơn điệu giảm) 𝑠𝑢𝑝(𝑖𝑘 ) = |𝜋(𝑖𝑘 )| (1) Tập chiếu tập 𝑋 = {𝑖1 , 𝑖2 , … 𝑖𝑘 }, ∀𝑖𝑗=1,𝑘 ̅̅̅̅ ∈ 𝐼, 𝜋(𝑋) = 𝜋(𝑖1 ) ∩ 𝜋(𝑖2 ) … ∩ 𝜋(𝑖𝑘 ) 𝑠𝑢𝑝(𝑋) = |𝜋(𝑋)| (2) Để tránh trùng lặp không gian sinh, đưa Định nghĩa 5: Định nghĩa 5: Cho ik I (i1 i2 … im) thứ tự theo độ phổ biến, ta gọi ik item hạt nhân Tập Xlexlooc I chứa item xuất có thứ tự với ik giao dịch, khơng đồng xuất hiện: 1| ( ikxlexlooc) | < | ( ik)| , xlexlooc Ƥ 1(Xlexlooc), i j Xlexlooc, i k ij Ký hiệu, lexlooc(ik) = Xlexlooc 3.2 Thuật tốn sinh item xuất giao dịch có thứ tự Trong phần này, chúng tơi trình bày thuật tốn sinh item xuất giao dịch với item hạt nhân, lưu trữ vào mảng Index_LOOC Mỗi phần tử Index_LOOC gồm có thành phần thơng tin sau: - Index_LOOC[k].item: item hạt nhân thứ k; - Index_LOOC[k].sup: độ phổ biến item hạt nhân thứ k; - Index_LOOC[k].looc: item xuất item hạt nhân thứ k giao dịch; Mã giả thuật toán Xây dựng bảng Index_LOOC Đầu vào: Dữ liệu giao dịch Ɗ Đầu ra: Mảng Index_LOOC, ma trận dataset BiM//ma trận bit Với phần tử k mảng Index_LOOC thực hiện: Index_LOOC[k].item = ik Index_LOOC[k].sup = Index_LOOC[k].looc= Với giao dịch ti thực hiện: Lưu giao dịch ti vào ma trận BiM Với item k có giao dịch ti thực hiện: Index_LOOC[k].looc = Index_LOOC[k].looc vectorbit(ti) Index_LOOC[k].sup = Index_LOOC[k].sup + 10 Sắp xếp mảng Index_LOOC tăng dần theo sup 11 Với phần tử j mảng Index_COOC: // định nghĩa OR 194 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC 12 13 Index_COOC[k].looc= lexlooc(ik) Trả mảng Index_LOOC, ma trận dataset BiM Minh họa thuật toán 1: thực từ dòng đến Khởi tạo mảng Index_LOOC: (looc biểu diễn dạng bit) số item m = item sup looc A B C 00000000 D E 00000000 F 00000000 G 00000000 00000000 H 00000000 00000000 00000000 Đọc giao dịch t1: {A, C, E, F} có biểu diễn dạng bit 10101100 item sup looc A B C D E F G H 1 1 0 10101100 00000000 10101100 00000000 10101100 10101100 00000000 00000000 Tương tự, đọc giao dịch t10: {A, C, E, F, G} có biểu diễn dạng bit 10101110 item sup looc A B C D E F G H 8 11111110 11101010 11111110 10110110 11101111 10111110 11111110 00001001 Dòng 10, xếp theo độ phổ biến item, ta có Index_LOOC sau: Item sup looc H B D F G G F, G E A D, E, G B, D, E, F C A,B,C,F,G,H B,D,E,F,G B,D,E,F,G Thực rút gọn dịng 11 12, ta có bảng sau: Bảng Mảng Index_LOOC có thứ tự tăng theo độ phổ biến item looc có thứ tự Item sup looc H B D G F F, G G G, E E E A A, C C Các bổ đề dùng loại bỏ item không sinh itemset tối thiểu: Bổ đề 1: ik ij, ij lexlooc(ik) sup(ik ij) < sup(ik) Chứng minh: sup(ik ij) < sup(ik), theo (1) (2) (ik ij) = (ik) (ij) (ik) ■ Bổ đề 2: ik I, sup(ik) minsup, lexlooc(ik) = Xlexlooc sup(ik xsub) < minsup {ik xsub } RI, xsub Ƥ 1(Xlexlooc) Chứng minh: theo bổ đề 1, ta có sup(ik xsub) < sup(ik) minsup, nên {ik xsub } RI, xsub Ƥ1(Xlexlooc) ■ Bổ đề 3: ik I, sup(ik) minsup, lexlooc(ik) = Xlexlooc sup(ik xsub) < minsup {ik xsub } mRI, xsub Ƥ 2(Xlexlooc) Chứng minh: theo bổ đề 2, ta có {ik xsub } RI theo bổ đề 1, ij xsub mà sup(ik ij) < minsup nên {ik xsub } mRI, xsub Ƥ 2(Xlexlooc) ■ 3.3 Thuật toán sinh nLOOC-Tree Từ Index_LOOC xây dựng chứa mẫu xuất giao dịch với item hạt nhân Mỗi có nút gốc item hạt nhân nút items xuất giao dịch với item hạt nhân Mỗi nút có thành phần: Phan Thành Huấn 195 - nLOOC_Tree[k].item: item xuất với item hạt nhân (nút gốc); - nLOOC_Tree[k].sup: độ phổ biến item xuất với item hạt nhân; Mã giả thuật toán Xây dựng danh sách nLOOC-Tree Đầu vào: Ma trận BiM, Mảng Index_LOOC Đầu ra: Danh sách nLOOC-Tree Với phần tử k mảng Index_LOOC: nLOOC_Tree[k].item = Index_LOOC[k].item nLOOC_Tree[k].sup = Index_LOOC[k].sup Với item ik giao dịch tℓ : Với item ij Index_LOOC[k].looc: Nếu ij nút nút gốc nLOOC-Tree[k] Thêm nút ij vào nút gốc nLOOC-Tree[k] Ngược lại Thêm nút ij vào nút gốc nLOOC-Tree[k] 10 Cập nhật sup nút ij nút gốc nLOOCTree[k] 11 Trả danh sách nLOOC-Tree Hình Cây nLOOC-Tree theo mảng Index_LOOC Bảng Cây nLOOC-Tree có đặc trưng sau: - Chiều cao nhỏ số lượng item xuất giao dịch với item hạt nhân (các item có thứ tự theo độ phổ biến) - Mỗi đường đơn (single-path) mẫu có thứ tự từ nút gốc (item hạt nhân) đến nút độ phổ biến mẫu độ phổ biến nút (ikik+1…iℓ) - Mỗi phân đoạn đường đơn (sub-single-path) từ nút gốc đến nút đường đơn mẫu thứ tự độ phổ biến mẫu độ phổ biến nút cuối phân đoạn đường đơn Ví dụ 1: Xét item hạt nhân F, có đường đơn {F G E} sup(FGE) = 1; phân đoạn đường đơn {F G} sup(FG) = độ phổ biến nút G Thuật toán khai thác tập tối thiểu mRI từ nLOOC-Tree: Mã giả thuật toán Khai thác tập tối thiểu mRI Đầu vào: Mảng Dataset, Index_LOOC minsup Đầu ra: Tập tối thiểu mRI Với Index_LOOC[k].sup < minsup 196 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC mRI[k] = mRI[k] Index_LOOC[k].item//theo tính chất Với (Index_LOOC[k].sup ≥ minsup) (Index_LOOC[k].looc {})//bổ đề nLOOC_Tree(Index_LOOC[k].item) SSP GenPath(Index_LOOC[k].item)//sinh sub-single-path Với sspj SSP Nếu (sup(sspj) < minsup) (sup(sspj \{iℓ}) minsup) mRI[k] = mRI[k]{(sspj \{iℓ})} Trả tập tối thiểu mRI Ví dụ 2: Cho liệu giao dịch Ɗ Bảng minsup = Dòng 2: item tối thiểu theo tính chất – có item H, B D (sup(H) = 1, sup(B) = sup(D) = < minsup); Dòng 3: loại bỏ item A C khỏi danh sách item khai thác; (Bổ đề 3) Xây dựng nLOOC-Tree cho item cần khai thác: F, G E; Xét item F, xem nLOOC-Tree(F): có đường đơn {F G E}, {F E} sup(FE) = < minsup, mRI[F] = {(FE, 2)} sup(FGE) = < minsup có phân đoạn đường đơn {F G} sup(FG) = < minsup , nên {FGE} mRI[F] Vì vậy, mRI[F] = {(FG, 2), (FE, 2)} Xét item G, xem nLOOC-Tree(G): có đường đơn {G E} sup(GE) = minsup Ta có, mRI[G] = {} Xét item E, xem nLOOC-Tree(E): có đường đơn {E A C} sup(EAC) = minsup Ta có, mRI[E] = {} Tập tối thiểu mRI liệu giao dịch Ɗ Bảng với minsup = 3: Item hạt nhân H B D F 3.4 Tập tối thiểu mRI (minsup = 3) (H, 1) (B, 2) (D, 2) (FG, 2) (FE, 2) Thuật toán khai thác nhanh tập tối thiểu với ngưỡng minsup động Thực tế, cần khai thác luật kết hợp người dùng u cầu thực khai thác luật kết hợp thỏa ngưỡng minsup minconf nhiều chuỗi thao tác liên tiếp Vì vậy, tác giả đề xuất thuật toán DYN-mRI khai thác hiệu cập nhật nhanh tập tối thiểu thay đổi ngưỡng minsup, có trường hợp sau: Trường hợp 1: minsupNext < minsupPrev – yêu cầu trước khai thác tập mRI với ngưỡng minsupPrev lớn ngưỡng minsupNext yêu cầu khai thác tập mRI Cập nhật mRI[item] với sup(item) ≥ minsupNext Ví dụ 3: minsupNext = < minsupPrev = Cập nhật khai thác tập tối thiểu từ item có sup(item) ≥ minsupNext = 2, nghĩa cập nhật từ item B trở sau Phan Thành Huấn 197 Item hạt nhân H B D F Tập tối thiểu mRI (minsup = 2) (H, 1) (BG, 1) (DF, 1) (FGE, 1) (DG, 1) Trường hợp 2: minsupNext > minsupPrev – yêu cầu trước khai thác tập mRI với ngưỡng minsupPrev nhỏ ngưỡng minsupNext yêu cầu khai thác tập mRI Cập nhật mRI[item] với sup(item) ≥ minsupPrev Ví dụ 4: minsupNext = > minsupPrev = Cập nhật khai thác tập tối thiểu từ item có sup(item) ≥ minsupPrev = 3, nghĩa cập nhật từ item F trở sau Item hạt nhân H B D F G Tập tối thiểu mRI (minsup = 5) (H, 1) (B, 2) (D, 2) (F, 3) (GE, 3) Kết thực nghiệm Thực nghiệm máy tính CF-74, Core Duo 2.0 GHz, 4GB RAM, thuật toán cài đặt C#, Microsoft Visual Studio 2010 Nghiên cứu thực nghiệm hai nhóm liệu: Nhóm liệu thực có mật độ dày: tập liệu Chess Mushroom [http://archive.ics.uci.edu/ml] Nhóm liệu giả lập có mật độ thưa: tập liệu giả lập T10I4D100K T40I10D100K [http://www.almaden.ibm.com] Bảng Dữ liệu thực nghiệm Dữ liệu Chess Mushroom T10I4D100K T40I10D100K Số giao dịch 3.196 8.142 100.000 100.000 Số item 75 119 870 942 Số item trung bình/giao dịch 37 23 10 40 Mật độ (%) 49,3 19,3 1,1 4,2 Trong phần thực nghiệm, sử dụng tập liệu mô tả Bảng so sánh thuật toán đề xuất DYN-mRI với thuật toán AprioriRare [5], thuật toán Walky-G [7] thuật toán NOV-mRI [8] Để so sánh thời gian thực thuật toán đề xuất với thuật toán AprioriRare, Walky-G NOV-mRI, tiến hành so sánh theo ngưỡng minsup Riêng thuật toán DYN-mRI, chúng tối tính thời gian trung bình cho trường hợp nêu 198 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA 2018 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC Hình Thời gian thực thuật tốn Chess, Mushroom Hình Thời gian thực thuật toán T10I4D100K, T40I10D100K Hình 2a 2b: kết thực nghiệm nhóm liệu có mật độ dày, ta thấy thuật toán DYN-mRI nhanh thuật toán NOV-mRI, Walky-G AprioriRare Hiệu suất thuật tốn DYN-mRI trung bình cao so với NOV-mRI 2a=47%, độ lệch chuẩn 2a=2,1% 2b=38,6%, độ lệch chuẩn 2b=3,3% Hình 3a 3b: kết thực nghiệm nhóm liệu giả lập có mật độ thưa, ta thấy thuật tốn DYN-mRI nhanh thuật toán NOV-mRI, Walky-G AprioriRare Hiệu suất thuật toán DYN-mRI, NOV-mRI cao so với Walky-G AprioriRare liệu thưa Hiệu suất trung bình DYN-mRI cao so với NOV-mRI 3a=55,7%, độ lệch chuẩn 3a=1,3% 3b=52,8%, 3b=3,6% Kết cho thấy thuật toán khai thác tập tối thiểu DYN-mRI tốt thuật toán NOV-mRI, Walky-G AprioriRare ngưỡng minsup thay đổi Kết luận Tác giả cải tiến thuật toán NOV-mRI khai thác nhanh tập tối thiểu với ngưỡng minsup động gọi thuật toán DYN-mRI Thuật toán hiệu người dùng khai thác tập tối thiểu với ngưỡng minsup động thuật tốn DYN-mRI thực khai thác tập tối thiểu nLOOC-Tree tập tối thiểu theo item hạt nhân tính lần khai thác trước làm giảm thời gian xử lý đáng kể Từ kết đạt được, tác giả mở rộng thuật tốn để khai thác tập tối thiểu liệu giao dịch có trọng số item, hướng nghiên cứu quan tâm nhiều lĩnh vực, đặc biệt kinh doanh, y khoa Phan Thành Huấn 199 Lời cảm ơn Tác giả cảm ơn hỗ trợ từ Trường Đại học Khoa học Xã hội Nhân văn; Trường Đại học Tự nhiên, Đại học Quốc gia Tp.HCM, Việt Nam Tài liệu tham khảo Agrawal R., Imilienski T., Swami A.: Mining association rules between sets of large databases Proc of the ACM SIGMOD Int Conf on Management of Data, 207-216 (1993) Zaki M J., Parthasarathy S., Ogihara M., Li W.: New Algorithms for Fast Discovery of Association Rules In: Proc of the 3rd International Conference on Knowledge Discovery in Databases, 283-286 (1997) Han J., Pei J., Yin Y., Mao R.: Mining frequent patterns without candidate generation: A frequent pattern tree approach Data Mining and K Discovery, 8(1), 53–87 (2004) Koh Y S., Rountree N.: Finding sporadic rules using apriori-inverse In PAKDD’05, 3518, Springer, 97–106 (2005) Szathmary L., Napoli A., Valtchev P.: Towards rare itemset mining Proc of the 19th IEEE Int Conf on Tools with AI, IEEE Computer Society, 305–312 (2007) Troiano L., Birtolo C.: A fast algorithm for mining rare itemsets IEEE 19th International Conference on Intelligent Systems Design and Applications, 1149-1155 (2009) Szathmary L., Valtchev P., Napoli A., Godin R.: Efficient vertical mining of mRI Proc of the 19th Int Conf on Concept Lattices and Their Applications, 269–280 (2012) Phan Thành Huấn, Lê Hồi Bắc: Thuật tốn hiệu khai thác tập tối thiểu Hội nghị Khoa học Quốc gia FAIR lần thứ XI (2018) ... ngưỡng minsup động gọi thuật toán DYN-mRI Thuật toán hiệu người dùng khai thác tập tối thiểu với ngưỡng minsup động thuật tốn DYN-mRI thực khai thác tập tối thiểu nLOOC-Tree tập tối thiểu theo item... thấy thuật toán khai thác tập tối thiểu DYN-mRI tốt thuật toán NOV-mRI, Walky-G AprioriRare ngưỡng minsup thay đổi Kết luận Tác giả cải tiến thuật toán NOV-mRI khai thác nhanh tập tối thiểu với ngưỡng. .. nút G Thuật toán khai thác tập tối thiểu mRI từ nLOOC-Tree: Mã giả thuật toán Khai thác tập tối thiểu mRI Đầu vào: Mảng Dataset, Index_LOOC minsup Đầu ra: Tập tối thiểu mRI Với Index_LOOC[k].sup