Trong khai thác dữ liệu, khai thác tập hiếm là một kỹ thuật khai thác rất quan trọng với các ứng dụng tiềm năng như phát hiện các cuộc tấn công máy tính, giao dịch gian lận trong các tổ chức tài chính, tin sinh học, y tế. Trong bài viết này, chúng tôi đề xuất thuật toán hiệu quả khai thác tập hiếm tối thiểu. 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 hiệu quả hơn so với thuật toán hiện hành.
Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XI Nghiên cứu ứng dụng Công nghệ thông tin (FAIR); Hà Nội, ngày 09-10/8/2018 DOI: 10.15625/vap.2018.00065 THUẬT TOÁN HIỆU QUẢ KHAI THÁC TẬP HIẾM TỐI THIỂU Phan Thành Huấn1,2, Lê Hồi Bắc3 Bộ mơn Tin học, Trường Đại học Khoa học Xã hội Nhân văn, Đại học Quốc gia Tp Hồ Chí Minh Khoa Toán - Tin học, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Tp Hồ Chí Minh Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Tp Hồ Chí Minh huanphan@hcmussh.edu.vn, lhbac@fithcmus.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 hiệu khai thác tập tối thiểu Kết thực nghiệm liệu thực giả lập, cho thấy thuật toán đề xuất hiệu so với thuật tốn hành Từ khóa: khai thác liệu, tập hiếm, tập tối thiểu I GIỚI THIỆU Khai thác luật kết hợp kỹ thuật quan trọng lĩnh vực khai thác liệu Mục tiêu khai thác phát mối liên hệ giá trị liệu liệu giao dịch Mơ hình tốn khai thác luật kết hợp mơ hình nhị phân hay cịn gọi mơ hình Agrawal đồng đề xuất vào năm 1993 [1], phân tích liệu giao dịch, phát mối liên hệ tập mục hàng hoá bán siêu thị Từ có kế hoạch bố trí, xếp, kinh doanh hợp lý, đồng thời tổ chức xếp quầy gần để có doanh thu phiên giao dịch lớn Bài toán khai thác luật kết hợp khai phá luật kết hợp có độ phổ biến (support) độ tin cậy (confidence) lớn ngưỡng phổ biến tối thiểu (minsup) ngưỡng tin cậy tối thiểu (minconf) Các thuật toán đề xuất để khai thác luật kết hợp chia thành giai đoạn [1-5]: Giai đoạn 1: Tìm tất tập mục phổ biến từ liệu giao dịch thoả mãn minsup; Giai đoạn 2: Sinh luật tin cậy kết hợp từ tập mục phổ biến tìm thấy giai đoạn thứ Giai đoạn thứ chiếm hầu hết thời gian cho tồn q trình khai thác luật kết hợp [1-5] Giá trị ngưỡng phổ biến tối thiểu minsup yếu tố quan trọng trình rút gọn khơng gian tìm kiếm giới hạn luật sinh giai đoạn thứ hai Các thuật toán khai thác luật kết hợp truyền thống 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 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 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 Năm 1999, Liu đồng [6] mở rộng toán khai thác luật kết hợp với nhiều ngưỡng phổ biến tối thiểu (mỗi mặt hàng có ngưỡng phổ biến tối thiểu riêng) tương ứng mặt hàng khác có tính chất khác tần số giao dịch khác Nhóm tác giả đề xuất thuật toán MSApriori - khai thác luật kết hợp khác thỏa ngưỡng phổ biến tối thiểu khác phụ thuộc vào mặt hàng có luật Từ đó, thấy tầm quan trọng tập hiếm, số tác giả đề xuất thuật toán khai thác tập [7-10]: Thuật toán Apriori-Inverse: Koh đồng [7] đề xuất hướng tiếp cận ngược theo thuật toán Apriori khai thác tập tối thiểu Thuật toán sử dụng hai ngưỡng minsup maxsup Thuật toán cho kết gồm itemset có độ phổ biến itemset khơng có liệu giao dịch Ngồi ra, thuật tốn cịn qt liệu nhiều lần Thuật tốn ARIMA: Szathmary đồng [8] đề xuất hướng tiếp cận tựa thuật toán Apriori khai thác tập tối thiểu Thuật toán sử dụng cấu trúc dàn để lưu trữ liệu giao dịch Thuật toán khai thác tập tối thiểu theo hướng tiếp cận từ lên - không hiệu mẫu tập trung phần đỉnh Thuật toán cho kết gồm itemset có độ phổ biến itemset khơng có liệu giao dịch Ngồi ra, thuật tốn cịn qt liệu nhiều lần Thuật toán Rarity: Troiano đồng [9] đề xuất dựa hạn chế thuật toán ARIMA Thuật toán Rarity thực chiến lược duyệt từ xuống cấu trúc dàn để khai thác itemset tập trung đỉnh Ngồi ra, thuật tốn Rarity khai thác tập tối thiểu khơng gồm itemset có độ phổ biến Tuy nhiên, thuật toán sử dụng nhiều nhớ so với ARIMA Thuật toán Walky-G: Szathmary đồng [10] đề xuất hướng tiếp cận tựa thuật toán Eclat [2] khai thác tập tối thiểu Thuật toán sử dụng cấu trúc IT-Tree để lưu trữ liệu giao dịch Thuật toán cho kết THUẬT TOÁN HIỆU QUẢ KHAI THÁC TẬP HIẾM TỐI THIỂU 498 khơng gồm itemset có độ phổ biến Thuật toán hiệu so với ARIMA Thuật toán sử dụng nhiều nhớ không hiệu ngưỡng minsup nhỏ (duyệt theo chiều sâu) Các thuật toán [7-10] chưa đáp ứng thực tế cần khai thác luật kết hợp người dùng yêu cầu thực khai thác luật kết hợp thỏa ngưỡng minsup nhiều chuỗi thao tác liên tiếp khác Để đáp ứng thực tế, nhóm tác giả đề xuất thuật toán NOV-mRI khai thác nhanh tập tối thiểu từ mảng chứa itemset đồng xuất không đọc lại liệu cho lần khai thác tiếp theo, bao gồm thuật toán sau: - Xây dựng mảng Index_LOOC chứa item xuất giao dịch item hạt nhân; - Thuật toán NOV-mRI khai thác hiệu tập tối thiểu dựa mảng Index_LOOC Trong phần II, báo 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 III, xây dựng thuật toán xác định mảng chứa itemset đồng xuất itemset xuất giao dịch item hạt nhân thuật toán NOV-mRI khai thác tập tối thiểu Kết thực nghiệm trình bày phần IV kết luận phần V II CÁC VẤN ĐỀ LIÊN QUAN 2.1 Khai thác tập phổ biến Khai thác tập phổ biến truyền thống thuật toán [1-5] 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 độ phổ biến liệu Các hạn chế khai thác tập phổ biến: giá trị minsup cao tập mục bị bỏ qua giá trị minsup thấp sinh tập mục phổ biến lớn Sau khái niệm liên quan: X Cho I = {i1, i2, , im} tập gồm m mục hàng riêng biệt, mục hàng gọi item Tập item { i1 ,i2 , ,ik }, i j I ( j k ) gọi itemset, tập mục có k mục hàng gọi k-itemset Ɗ liệu giao dịch, gồm n ghi phân biệt gọi tập giao dịch T = {t1, t2, , tn}, giao dịch ti Định nghĩa 1: Độ phổ biến (support) itemset X { ik1 ,ik , ,ik j },ik j I (1 k j m) I, ký hiệu sup(X), số giao dịch Ɗ có chứa X Định nghĩa 2: Cho X I, X gọi itemset phổ biến sup(X) ≥ minsup, minsup ngưỡng phổ biến tối thiểu Ký hiệu FI tập hợp itemset phổ biến Tính chất 1: X Y: sup(Y) ≥ minsup sup(X) ≥ minsup; Tính chất 2: X Y: sup(X) < minsup sup(Y) < minsup; Cho liệu giao dịch Ɗ bảng Bảng Dữ liệu giao dịch Ɗ Mã giao dịch t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 A A C C Tập mục E F G E A A A A A A C C B B C C C C D H F E E E G G D E E F G G Ví dụ 1: 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} với giá trị ngưỡng minsup = 2, ta có: Xét itemset X ={A, C, E}, sup(ACE) = ≥ minsup, ta nói: “X ={A, C, E} phổ biến theo ngưỡng minsup = 2”; Theo tính chất tập X ={A, C, E} phổ biến, nghĩa tất tập X phổ biến sup(A) = 8, sup(C) = 8, sup(E) = 7, sup(AC) , sup(AE) = 5, sup(CE) = ≥ minsup Tương tự, với Y = {H} sup(H) = < minsup, ta nói: “Y = {H} khơng phổ biến theo ngưỡng minsup = 2”; Theo tính chất tập cha Y ={H} không phổ biến, nghĩa Y = {EH} không phổ biến, với sup(EH) = < minsup = Phan Thành Huấn, Lê Hoài Bắc 499 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ế,… Nhiều tác giả đề xuất thuật toán [7-10] khai thác tập tối thiểu thỏa hai ngưỡng Sau khái niệm liên quan: Định nghĩa 3: Cho X itemset I, X gọi itemset - sup(X) < minsup Ký hiệu RI tập hợp chứa Định nghĩa 4: Cho X I, X gọi itemset tối thiểu - X itemset tất tập thực X phổ biến Ký hiệu mRI tập hợp chứa itemset tối thiểu Tính chất 3: ik I, sup(ik) < minsup ik mRI Ví dụ 2: Dữ liệu giao dịch Ɗ Bảng với minsup = 2, ta có: Xét itemset X ={F, G, E}, sup(FGE) = < minsup, ta nói: “Itemset X ={F, G, E} itemset hiếm”; Xét itemset Y ={H, E}, sup(HE) = < minsup, ta nói: “Itemset Y ={H, E} itemset hiếm”; Ngồi ra, itemset X ={F, G, E} itemset tối thiểu, nghĩa tập thực itemset X phổ biến: sup(F) = 3, sup(G) = 5, sup(E) = 7, sup(FG) = 2, sup(FE) = 2, sup(GE) = minsup = Trong đó, itemset Y = {H, E} không itemset tối thiểu, sup(H) = < minsup Theo tính chất item có độ phổ biến nhỏ minsup thuộc mRI, ta có: item H, sup(H) = < minsup, suy item H item tối thiểu Bảng Tập FI, RI mRI liệu giao dịch Ɗ với minsup =2 Tập phổ biến FI #FI = 39 k-itemset Tập tối thiếu mRI #mRI = Tập RI #RI = 26 B, D, F, G, E, A, C H H BE, BA, BC, DA, DC, FA, FC, FG, FE, HE, DF, DG, BG BG, DF, DG GA, GC, GE, EA, EC, AC BAC, BEA, BEC, DAC, FAC, FAG, FAE, BGE, BGC, BGA, DFG, DFC, DFA, FGE FCG, FCE, GAC, GAE, GCE, EAC DGA, DGC, FGE BEAC, FACG, FACE, GACE BEFC, BGEA, BGAC, DFGC, DFGA, DFAC, DGAC, FGEA, FGEC BGEAC, DFGAC, FGEAC Trong bảng 2, cho thấy tập phổ biến FI, tập RI tập tối thiểu mRI chứa k-itemset với minsup = Số lượng tập mục phổ biến |FI| = 39, số lượng tập mục |RI| = 26 số lượng tập mục tối phổ |mRI| = Tỷ suất mRI RI 26 100% 19% Qua đó, ta dễ dàng thấy mối quan hệ tập itemset tập itemset tối thiểu sau: mRI RI 2.3 Tổ chức lưu trữ liệu giao dịch Lưu trữ liệu giao dịch dạng bit cấu trúc liệu hiệu khai thác tập phổ biến [4, 5] Chuyển đổi liệu giao dịch thành ma trận nhị phân BiM, dịng tương ứng với giao dịch cột tương ứng với mục hàng Nếu mục hàng thứ ik xuất giao dịch tj bit thứ k dịng tj BiM mang giá trị 1, ngược lại mang giá trị Mã giao dịch t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 A 1 1 1 1 B 0 0 0 1 C 1 1 1 1 D 0 0 0 E 1 1 1 F 0 0 0 G 1 0 1 Hình Biểu diễn dạng bit liệu giao dịch Ɗ H 0 0 0 0 THUẬT TOÁN HIỆU QUẢ KHAI THÁC TẬP HIẾM TỐI THIỂU 500 III CÁC THUẬT TOÁN 3.1 Tập chiếu itemset đồng xuất Tập chiếu mục hàng ik liệu giao dịch Ɗ: ik ( - đơn điệu giảm) (ik)={t Ɗ│ik t} tập giao dịch có chứa mục hàng sup(ik) = | ( ik)| Tập chiếu tập mục X { i1 ,i2 , ,ik }, i j I (1 j k ) , (X) = (i1) (1) (i2)… (ik) sup(X) = | ( X )| Ví dụ 3: Theo Bảng 1, có (A) = {1, 2, 4, 5, 7, 8, 9, 10} (B) = {7, 9} Khi đó, {1, 2, 4, 5, 7, 8, 9, 10} {7, 9} = {7, 9}, (B) (A) (AB) (A) (2) (AB) = (A) (B)= Định nghĩa 5: Cho ik I, ta gọi ik item hạt nhân Tập Xcooc I gọi đồng xuất với ik: Xcooc tập item xuất ik ( ik) ( ik xcooc) , xcooc Ƥ 1(Xcooc) Ký hiệu, cooc(ik) = Xcooc Ví dụ 4: Xem item B item hạt nhân, ta xác định itemset đồng xuất độ phổ biến với item B cooc(B) = {A, C, E} sup(B) = sup(BACE) = Định nghĩa 6: Cho ik I, ta gọi ik item hạt nhân Tập Ylooc I chứa item xuất với ik giao dịch, khơng đồng xuất hiện: | ( ik ylooc) | < | ( ik)| , ylooc Ƥ 1(Ylooc) Ký hiệu, looc(ik) = Ylooc Ví dụ 5: Xem item G item hạt nhân, ta xác định item xuất với item G giao dịch looc(G) = {B, D, E, F} có (G) = {2, 4, 5, 9, 10} (GB) = {9}, (GE) = {5, 9, 10} 3.2 Thuật toán sinh itemset đồng xuất có thứ tự Trong phần này, chúng tơi trình bày thuật toán sinh item đồng xuất item xuất giao dịch với item hạt nhân, lưu trữ vào mảng Index_COOC Mỗi phần tử Index_COOC gồm có thành phần thơng tin sau: - Index_COOC[k].item: item hạt nhân thứ k; - Index_COOC[k].sup: độ phổ biến item hạt nhân thứ k; - Index_COOC[k].cooc: item đồng xuất item hạt nhân thứ k dạng bit; - Index_COOC[k].looc: item xuất item hạt nhân thứ k giao dịch dạng bit; Mã giả thuật toán Xây dựng bảng Index_COOC Đầu vào: Dữ liệu giao dịch Ɗ Đầu ra: Mảng Index_COOC, ma trận BiM 1: Với phần tử k mảng Index_COOC thực hiện: 2: Index_COOC[k].item = ik 3: Index_COOC[k].sup = 4: Index_COOC[k].cooc= 2m - 5: 6: Index_COOC[k].looc= Với giao dịch ti thực hiện: 7: Lưu giao dịch ti vào ma trận BiM 8: Với item k có giao dịch ti thực hiện: 9: Index_COOC[k].cooc = Index_COOC[k].cooc AND vectorbit(ti) 10: Index_COOC[k].looc = Index_COOC[k].looc OR vectorbit(ti) 11: Index_COOC[k].sup = Index_COOC[k].sup + 12: Sắp xếp mảng Index_COOC tăng dần theo sup 13: Trả mảng Index_COOC, ma trận BiM Từ dòng đến dòng bước khởi tạo cho mảng Index_COOC Dòng duyệt liệu giao dịch, ứng với giao dịch ta xem xét có chứa item thứ k thực phép tốn AND bit để xác định item đồng xuất với item k (dịng 9) thực pháp tốn OR bit để xác định item xuất với item k giao dịch, khơng đồng xuất (dòng 10) Phan Thành Huấn, Lê Hoài Bắc 501 Khởi tạo mảng Index_COOC: (thành phần cooc looc biểu diễn dạng bit) số item m = Item Sup Cooc Looc A B 11111111 00000000 C 11111111 00000000 D 11111111 00000000 E 11111111 00000000 F 11111111 00000000 G 11111111 00000000 H 11111111 00000000 11111111 00000000 Đọc giao dịch t1: {A, C, E, F} có biểu diễn dạng bit 10101100 Item Sup Cooc Looc A B 10101100 10101100 C 11111111 00000000 D 10101100 10101100 E 11111111 00000000 F 10101100 10101100 G H 11111111 00000000 10101100 10101100 11111111 00000000 Duyệt đến giao dịch t10: {A, C, E, F, G} có biểu diễn dạng bit 10101110 Item Sup Cooc Looc A B 10100000 11111110 C 11101000 11101010 D 10100000 11111110 E 10110000 10110110 F 00001000 11101111 G 10100100 10111110 H 10100010 11111110 00001001 00001001 Thuật toán 1, trả mảng Index_COOC tăng theo độ phổ biến item theo Bảng Bảng Trả mảng Index_COOC tăng theo độ phổ biến item Item Sup Cooc Looc H E Ø B A, C, E G D A, C F, G F A, C D, E, G G E A, C B, D, E, F A C Ø C A, B, C, F, G, H B, D, E, F, G A B, D, E, F, G Để tránh trùng lặp không gian sinh tập tối thiểu, đưa định nghĩa bổ đề rút gọn không gian sinh tập tối thiểu sau: Định nghĩa 7: Cho ik I (i1 i2 … im) thứ tự theo độ phổ biến, ta gọi ik item hạt nhân Tập Xlexcooc I gọi đồng xuất có thứ tự với item ik: Xlexcooc tập item có thứ tự theo độ phổ biến, đồng xuất ik ( ik) ( ik xlexcooc) , xlexcooc Ƥ 1(Xlexcooc), i j Xlexcooc, i k ij Ký hiệu, lexcooc(ik) = Xlexcooc Định nghĩa 8: Cho ik I (i1 i2 … im) thứ tự theo độ phổ biến, ta gọi ik item hạt nhân Tập Ylexlooc I chứa item xuất có thứ tự với ik giao dịch, không đồng xuất hiện: | ( ik ylexlooc) | < | ( ik)| , ylexlooc Ƥ 1(Ylexlooc), i j Ylexlooc, i k ij Ký hiệu, lexlooc(ik) = Ylexlooc Bổ đề 1: lexcooc(ik) = Xlexcooc sup(ik xsub) = sup(ik), xsub Ƥ 1(Xlexcooc) Chứng minh: lexcooc(ik) = Xlexcooc, xsub Ƥ 1(Xlexcooc) Theo định nghĩa 7, ta có (ik (ik) theo phương trình (1), (2) sup(ik xsub) = sup(ik), xsub Ƥ 1(Xlexcooc) ■ xsub) = (ik) (xsub) = Ví dụ 6: Xét item F, với sup(F) = Ta có, lexcooc(F) = {A, C} itemset kết hợp {A, C, AC} sup(F) = sup(FA) = sup(FC) = sup(FAC) = Bổ đề 2: lexcooc(ik) = Xlexcooc sup(ik) < minsup {ik Chứng minh: theo bổ đề 1, ta có sup(ik xsub} RI, xsub) = sup(ik) < minsup, nên {ik xsub Ƥ 1(Xlexcooc) xsub} RI, xsub Ƥ 1(Xlexcooc) ■ Ví dụ 7: Cho minsup = 5, xét item F, có sup(F)= 3< minsup Theo ví dụ 6, ta có sup(F) = sup(FA) = sup(FC) = sup(FAC) = < minsup Khi đó, itemset {F, FA, FC, FAC} RI Bổ đề 3: lexcooc(ik) = Xlexcooc sup(ik) < minsup {ik xsub} mRI, xsub Chứng minh: theo mệnh đề 1, ta có {ik xsub} RI, xsub Ƥ 1(Xlexcooc) Khi đó, sup(ik) < minsup (định nghĩa 4), nên {ik xsub} mRI, xsub Ƥ 1(Xlexcooc) ■ Ƥ 1(Xlexcooc) ik { ik xsub} RI, mà Ví dụ 8: Cho minsup = 5, xét item F, có sup(F)= 3< minsup Theo ví dụ 6, ta có sup(F) = sup(FA) = sup(FC) = sup(FAC) = < minsup Khi đó, itemset {F, FA, FC, FAC} RI, itemset {F, FA, FC, FAC} không itemset tối thiểu - {FAC} RI, item F {FAC} sup(F) = < minsup (item F không phổ biến) Bổ đề 4: ik ij, ij Chứng minh: sup(ik lexlooc(ik) sup(ik ij) < sup(ik), hiển nhiên (ik ij) < sup(ik) ij) = (ik) (ij) (ik) ■ Ví dụ 9: Xét item F, với sup(F) = Ta có, lexlooc(F) = {G, E} itemset kết hợp {G, E, GE} sup(F) = sup(FG) = sup(FE) = < sup(F) sup(FGE) = < sup(F) THUẬT TOÁN HIỆU QUẢ KHAI THÁC TẬP HIẾM TỐI THIỂU 502 Bổ đề 5: ik I, sup(ik) minsup, lexlooc(ik) = Ylexlooc sup(ik ysub) < minsup {ik ysub } RI, xsub Ƥ 1(Xlexcooc), ysub Ƥ 1(Ylexlooc) ysub}, {ik xsub Chứng minh: theo bổ đề 1, 4, ta có sup(ik xsub) = sup(ik) sup(ik ysub) = sup(ik xsub ysub) < minsup, nên {ik xsub}, {ik xsub ysub } RI, xsub Ƥ 1(Xlexcooc), ysub Ƥ 1(Ylexlooc) ■ Ví dụ 10: Cho minsup = 5, xét item G, có sup(G)= minsup Ta có lexcooc(G) = {A, C}, lexlooc(G) = {E}, sup(GE) = sup(GAE) = sup(GCE) = sup(GACE) = < minsup Khi đó, itemset {GE, GAE, GCE, GACE} RI mRI, xsub Bổ đề 6: ik I, sup(ik) xsub Ƥ 1(Xlexcooc), ysub minsup, lexlooc(ik) = Ylexlooc sup(ik ysub) < minsup {ik Ƥ 1(Ylexlooc) Chứng minh: theo bổ đề 5, ta có {ik ysub } mRI, xsub Ƥ 1(Xlexcooc), xsub}, {ik xsub ysub } RI, mà {ik ysub Ƥ 1(Ylexlooc) ■ xsub} {ik xsub xsub ysub } ysub } nên {ik Ví dụ 11: Cho minsup = 5, xét item G, có sup(G)= minsup Ta có lexcooc(G) = {A, C}, lexlooc(G) = {E}, sup(GE) = sup(GAE) = sup(GCE) = sup(GACE) = < minsup Theo định nghĩa itemset {GAE, GCE, GACE} mRI, {G, E} tập thực {G, A, E}, {G, C, E}, {G, A, C, E} mà sup(GE) < minsup Theo bổ đề trên, cần thiết phải rút gọn trường cooc phần tử mảng INDEX_COOC Chúng tôi, đặt lại tên gọi mảng INDEX_COOC thành INDEX_LOOC, chứa item xuất giao dịch với item hạt nhân Bỏ dòng lệnh 9, đồng thời bổ sung dịng lệnh sau vào thuật tốn 1: 1: Với phần tử k mảng Index_LOOC: 2: Index_LOOC[k].looc= lexlooc(ik) Xét item G, có item xuất giao dịch với item G, ta có looc(G) = {B, D, E, F} B, D F G E, nên lexlooc(G) = {E} Sau thực thay đổi trên, ta có kết bảng Bảng Trả mảng Index_LOOC tăng theo độ phổ biến item, thành phần looc có thứ tự Item Sup Looc H Ø B G D F, G F G, E G E E A, C A Ø C Ø 3.3 Thuật toán khai thác tập tối thiểu NOV-mRI Thuật toán - Từ mảng Index_LOOC xây dựng danh sách 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 item xuất giao dịch với item hạt nhân (có thứ tự theo độ phổ biến) Mỗi nút gồm thành phần: - 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 1: Với phần tử k mảng Index_LOOC: 2: nLOOC_Tree[k].item = Index_LOOC[k].item 3: nLOOC_Tree[k].sup = Index_LOOC[k].sup 4: Với item ik giao dịch tℓ : 5: Với item ij Index_LOOC[k].looc: 6: Nếu ij nút nút gốc nLOOC-Tree[k] 7: Thêm nút ij vào nút gốc nLOOC-Tree[k] 8: Ngược lại 9: 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 nLOOC-Tree[k] 11: Trả danh sách nLOOC-Tree Phan Thành Huấn, Lê Hoài Bắc 503 Thuật tốn sinh 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 (ik ik+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 Hình Thuật tốn - sinh danh sách nLOOC-Tree theo mảng Index_LOOC bảng Ví dụ 12: Xét item hạt nhân F, có đường đơn {F G} sup(FG) = độ phổ biến nút G G E} sup(FGE) = 1; phân đoạn đường đơn {F Mã giả thuật toán Khai thác tập tối thiểu NOV-mRI Đầu vào: Mảng Dataset, Index_LOOC minsup Đầu ra: Tập tối thiểu mRI 1: Với Index_LOOC[k].sup < minsup 2: mRI[k] = mRI[k] Index_LOOC[k].item//theo tính chất 3: Với (Index_LOOC[k].sup minsup) (Index_LOOC[k].looc { }) // Bổ đề 4: nLOOC_Tree(Index_LOOC[k].item) 5: SSP GenPath(Index_LOOC[k].item)//sinh sub-single-path 6: Với sspj SSP 7: Nếu (sup(sspj) < minsup) (sup(sspj \{iℓ}) minsup) 8: mRI[k] = mRI[k] {(sspj \{iℓ})} 9: Trả tập tối thiểu mRI Ví dụ 13: Cho liệu giao dịch Ɗ bảng minsup = Sau thực thuật tốn 1, ta có mảng INDEX_LOOC chứa item xuất giao dịch với item hạt nhân, bảng Dòng 2: item tối thiểu theo tính chất - có item H (sup(H) = < minsup); Dòng 3: loại bỏ item A C khỏi danh sách item khai phá; (Bổ đề 6) Xây dựng nLOOC-Tree cho item cần khai phá: B, D, F G ; Xét item B, xem nLOOC-Tree(B): có đường đơn {B = {(BG, 1)} G} sup(BG) = < minsup Ta có, mRI[B] Xét item D, xem nLOOC-Tree(D): có đường đơn {D mRI[D] = {(DF, 1), (DG, 1)} F G} sup(DFG) = < minsup Ta có, Xét item F, xem nLOOC-Tree(F): có đường đơn {F G E}, {F E} phân đoạn đường đơn {F G} có sup(FGE) = < minsup, sup(FG) = minsup sup(FE) = minsup Ta có, mRI[F] = {(FGE, 1)} Xét item G, xem nLOOC-Tree(G): có đường đơn {G mRI[G] = { } Xét item E, có đường đơn {E A C} sup(EAC) = E} sup(GE) = minsup Ta có, mRI[E] = { } minsup Ta có, THUẬT TỐN HIỆU QUẢ KHAI THÁC TẬP HIẾM TỐI THIỂU 504 Tập tối thiểu mRI liệu giao dịch Ɗ bảng với minsup = 2: Item hạt nhân H B D F Tập tối thiểu mRI (H, 1) (BG, 1) (DF, 1) (FGE, 1) (DG, 1) IV KẾT QUẢ 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: sử dụng liệu thực từ kho liệu học máy Trường Đại học California (Lichman, M (2013) UCI Machine Learning Repository [http://archive.ics.uci.edu/ml] Irvine, CA: University of California, School of Information and Computer Science) gồm tập Chess Mushroom Nhóm liệu giả lập có mật độ thưa: sử dụng phần mềm phát sinh liệu giả lập trung tâm nghiên cứu IBM Almaden (IBM Almaden Research Center, San Joe, California 95120, U.S.A [http://www.almaden.ibm.com]) gồm tập T10I4D100K T40I10D100K Bảng Dữ liệu thực nghiệm Tên liệu Số mục 75 119 870 942 Chess Mushroom T10I4D100K T40I10D100K Số giao dịch 3.196 8.142 100.000 100.000 Số mục nhỏ nhất/ giao dịch 37 23 Số mục lớn nhất/ Số mục trung bình/ Mật độ giao dịch giao dịch (%) 37 37 49,3 % 23 23 19,3 % 29 10 1,1 % 77 40 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 NOV-mRI với thuật toán AprioriRare [8] (loại bỏ itemset có độ phổ biến 0) thuật toán Walky-G [10] Để so sánh thời gian thực thuật toán đề xuất với thuật toán AprioriRare Walky-G, tiến hành so sánh theo ngưỡng minsup thuật toán cho kết số lượng itemsets (a) Chess (b) Mushroom 500 200000 150000 AprioriRare 100000 Walky-G 50000 NOV-mRI Thời gian (mili giây) Thời gian (mili giây) 250000 400 300 AprioriRare 200 Walky-G 100 NOV-mRI 11 12 13 14 15 0,1 0,2 Minsup (% ) 0,3 0,4 0,5 Minsup (% ) Hình Thời gian thực NOV-mRI, Walky-G AprioriRare liệu Chess, Mushroom Hình 3a 3b kết thực nghiệm nhóm liệu có mật độ cao, ta thấy thuật tốn NOV-mRI nhanh thuật toán Walky-G AprioriRare (a) T10I4D100K (b) T40I10D100K 1000000 100000 10000 AprioriRare 1000 Walky-G 100 NOV-mRI 10 Thời gian (mili giây) Thời gian (mili giây) 1000000 100000 10000 AprioriRare 1000 Walky-G 100 NOV-mRI 10 0,010 0,015 0,020 0,025 Minsup (% ) 0,030 0,075 0,080 0,085 0,090 0,095 Minsup (% ) Hình Thời gian thực NOV-mRI, Walky-G AprioriRare liệu T10I4D100K, T40I10D100K Phan Thành Huấn, Lê Hồi Bắc 505 Hình 4a 4b kết thực nghiệm nhóm liệu giả lập có mật độ thấp, ta thấy thuật tốn NOV-mRI nhanh thuật toán Walky-G AprioriRare Hiệu suất thuật toán NOV-mRI cao so với Walky-G AprioriRare liệu thưa Kết cho thấy thuật toán khai thác tập tối thiểu NOV-mRI tốt thuật tốn Walky-G AprioriRare Ngồi ra, thuật tốn cần thực nghiệm thêm nhiều tập liệu có mật độ khác nhau, nhiều liệu cỡ lớn V KẾT LUẬN Nhóm tác giả đề xuất kiến trúc khai thác tập tối thiểu với ngưỡng phổ biến tối thiểu gồm hai giai đoạn: giai đoạn thứ tính nhanh mảng Index_LOOC chứa item xuất với item hạt nhân giao dịch; giai đoạn thứ hai: đề xuất thuật toán NOV-mRI khai thác hiệu tập tối thiểu dựa mảng Index_LOOC Với kiến trúc trên, người dùng khai thác tập tối thiểu với ngưỡng khác thuật tốn đề xuất thực khai thác tập tối thiều mảng Index_LOOC tính lần khai thác trước làm giảm thời gian xử lý đáng kể Tương lai, nhóm 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 khả ứng dụng vào nhiều lĩnh vực, đặc biệt kinh doanh, y khoa VI LỜI CẢM ƠN Nhóm tác giả cảm ơn hỗ trợ từ Trường Đại học Khoa học Xã hội Nhân văn; Đại học Khoa học Tự nhiên Đại học Quốc gia Tp.HCM VII TÀI LIỆU THAM KHẢO [1] R Agrawal, T Imilienski, A Swami “Mining association rules between sets of large databases” Proc of the ACM SIGMOD International Conference on Management of Data, Washington, DC, pp.207-216, 1993 [2] M J Zaki, S Parthasarathy, M Ogihara, W Li “New Algorithms for Fast Discovery of Association Rules” In: Proc of the 3rd International Conference on Knowledge Discovery in Databases, pp.283-286, 1997 [3] J Han, J Pei, Y Yin, R Mao “Mining frequent patterns without candidate generation: A frequent pattern tree approach” Data Mining and Knowledge Discovery, 8(1) pp.53-87, 2004 [4] J Dong, M Han “BitTableFI: An efficient mining frequent itemsets algorithm” Knowledge-Based Systems 20(4), pp.329-335, 2007 [5] W Song, B Yang “Index-BitTableFI: An improved algorithm for mining frequent itemsets” Knowledge-Based Systems 21, pp.507-513, 2008 [6] B Liu, W Hsu, Y Ma “Mining association rules with multiple minimum supports” Proc of the 15th ACM SIGKDD International Conference on Knowledge discovery and Data mining, pp.337-341, 1999 [7] Y S Koh, N Rountree “Finding sporadic rules using apriori-inverse” In PAKDD’05, 3518, Springer, pp.97-106, 2005 [8] L Szathmary, A Napoli, P Valtchev “Towards rare itemset mining” Proc of the 19th IEEE Int Conf on Tools with Artificial Intelligence Washington, DC, USA: IEEE Computer Society, pp.305-312, 2007 [9] L Troiano, C Birtolo “A fast algorithm for mining rare itemsets” IEEE 19th International Conference on Intelligent Systems Design and Applications, pp.1149-1155, 2009 [10] L Szathmary, P Valtchev, A Napoli, R Godin “Efficient vertical mining of minimal rare itemsets” Proc of the 19th International Conference on Concept Lattices and Their Applications, pp.269-280, 2012 AN EFFICIENT MINING ALGORITHM FOR MINIMAL RARE ITEMSETS IN TRANSACTINAL DATABASES Phan Thanh Huan, Le Hoai Bac ABSTRACT: In the field of data mining, rare itemsets mining is an important task for potential applications such as the detection of computer attacks, fraudulent transactions in financial institutions, bioinformatics and medical In this paper, we propose an efficient mining algorithm for minimal rare itemsets Finally, we present result experiments on both synthetic and real-life datasets, which shows the proposed algorithm has better than the existing algorithms Keywords: Data mining, rare itemsets, minimal rare itemsets ... nhân; - Thuật toán NOV-mRI khai thác hiệu tập tối thiểu dựa mảng Index_LOOC Trong phần II, báo 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 III, xây dựng thuật toán xác... mRI[E] = { } minsup Ta có, THUẬT TOÁN HIỆU QUẢ KHAI THÁC TẬP HIẾM TỐI THIỂU 504 Tập tối thiểu mRI liệu giao dịch Ɗ bảng với minsup = 2: Item hạt nhân H B D F Tập tối thiểu mRI (H, 1) (BG, 1) (DF,... nhân thuật toán NOV-mRI khai thác tập tối thiểu Kết thực nghiệm trình bày phần IV kết luận phần V II CÁC VẤN ĐỀ LIÊN QUAN 2.1 Khai thác tập phổ biến Khai thác tập phổ biến truyền thống thuật toán