Cooc-Cfi: thuật toán hiệu quả khai thác tập phổ biến đóng trên dữ liệu giao dịch

Bài báo đã đề xuất thuật toán tính nhanh mảng Index_COOC chứa các itemset đồng xuất hiện và thuật toán COOC-CFI khai thác hiệu quả tập phổ biến đóng dựa trên mảng Index_COOC. Kết quả trên cho thấỹ thuật toán khai thác tập phổ biến đóng COOC-CFI tốt hợn thuật toán Charm, DBV-Miner. Ngoài ra, thuật toán cũng cần thực nghiệm thêm trên nhiều tập dữ liệu khác. Trong tựợng lai, tác giả sẽ cải tiến thuật toán trên để có thể khai thác tập phổ biến đóng trên dữ liệu giao dịch có trọng số, đâỹ là hựớng nghiên cứu đang đựợc quan tâm vì khả năng ứng dụng vào nhiều lĩnh vực, đặc biệt là trong kinh doanh

pdf8 trang | Chia sẻ: thucuc2301 | Lượt xem: 593 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Cooc-Cfi: thuật toán hiệu quả khai thác tập phổ biến đóng trên dữ liệu giao dịch, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 10 COOC-CFI: THUẬT TOÁN HIỆU QUẢ KHAI THÁC TẬP PHỔ BIẾN ĐÓNG TRÊN DỮ LIỆU GIAO DỊCH Phan Thành Huấn* Title: Cooc-cfi: An efficient mining algorithm for closed frequent itemsets in transaction databases Từ khóa: Từ khóa: Luật kết hợp, tập phổ biến đóng, tập mục đồng xuất hiện. Keywords: Association rule, closed frequent itemsets, co- occurrence itemset. Thông tin chung: Ngày nhận bài: 29/9/2016; Ngày nhận kết quả bình duyệt: 13/3/2017; Ngày chấp nhận đăng bài: 06/9/2017. Tác giả: ThS., Đại học Khoa học Xã hội và Nhân văn, Đại học Quốc gia Tp. Hồ Chí Minh huanphan@hcmussh.edu.vn TÓM TẮT Khai thác luật kết hợp là một trong những kỹ thuật quan trọng và được nghiên cứu nhiều trong khai thác dữ liệu. Khai thác tập phổ biến đóng là một trong những vấn đề cơ bản trong khai thác luật kết hợp. Hầu hết các thuật toán sinh không gian tìm kiếm dựa trên tập mục thỏa ngưỡng phổ biến tối thiểu và không dùng lại cho lần khai thác tiếp theo. Để khắc phục vấn đề này, chúng tôi đề xuất một cách tiếp cận mới để tìm tập phổ biến đóng trên dữ liệu giao dịch dùng cấu trúc dữ liệu lưu trữ dạng bit và tập chỉ mục chứa tập mục đồng xuất hiện để chiếu tính nhanh tập phổ biến đóng. Sau cùng, chúng tôi trình bày kết quả thực nghiệm, cho thấy thuật toán đề xuất tốt hơn so với các thuật toán hiện hành. ABSTRACT Association rule mining is one of the most important and well- researched techniques of Data Mining. Mining closed frequent itemsets is one of the most fundamental problems in association rule mining. Most of algorithms in literature used to find frequent itemsets on search space items, which have a support greater than minsup and not reuse for mining next time. To overcome this problem, we propose a new approach to fast dectect closed frequent itemsets using data structure on bit and array co- occurrence itemset of kernel item for fast mining closed frequent itemsets. Finally, the result showed the proposed algorithm which was better than the existing algorithms. 1. Giới thiệu Khai tha c lua t kế t hợ p la mộ t kỹ thua t quan trộ ng trộng lĩ nh vự c khai tha c dự liế u. Mu c tiế u khai tha c la pha t hiế n nhự ng mộ i quan hế giự a ca c gia tri dự liế u trộng cợ sợ dự liế u (CSDL). Mộ hĩ nh đa u tiế n cu a ba i tộa n khai tha c lua t kế t hợ p la mộ hĩ nh nhi pha n haỹ cộ n gộ i la mộ hĩ nh cợ ba n (Agrawal, R., & Imilienski, T., & Swami, A., 1993), pha n tĩ ch cợ sợ dự liế u giaộ di ch, pha t hiế n ca c mộ i quan hế giự a ca c ta p mu c ha ng hộa đa ba n đựợ c ta i ca c siế u thi . Tự độ cộ kế hộa ch bộ trĩ , sa p xế p, kinh dộanh hợ p lỹ , độ ng thợ i tộ chự c sa p xế p ca c qua ỹ ga n nhau nhự thế na ộ đế cộ dộanh thu caộ trộng ca c phiế n giaộ di ch tiế p thếộ. Ngộa i ra, cộ thế a p du ng tri thự c na ỹ đế dự độa n sộ lựợ ng ca c ma t ha ng đựợ c ba n cha ỹ trộng thợ i gian sa p tợ i. Tộ ng hợ p ca c tri thự c na ỹ đế lế n kế hộa ch chộ hộa t độ ng, sa n xua t, kinh dộanh mộ t ca ch thua n tiế n hợn nha m gia m bợ t thợ i gian thộ ng kế , tĩ m hiế u thi trựợ ng,... Các thuật tộán đựợc đề xuất để khai thác luật kết hợp chia thành 2 giai độạn (Agrawal, R., & Imilienski, T., & Swami, A., 1993 ; Agrawal, R., & Srikant, R., 1994): Giai đoạn 1: Tìm tất cả các tập phổ biến (FI) từ CSDL nghĩa là tìm tất cả các tập mục X có tần số xuất hiện lớn hợn hộặc bằng TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 11 ngựỡng phổ biến tối thiểu. Đâỹ là giai độạn tốn khá nhiều thời gian xử lý. Giai đoạn 2: Sinh các luật tin cậỹ kết hợp từ các tập phổ biến tìm thấỹ ở giai độạn thứ nhất. Giai độạn nàỹ tựợng đối đợn giản và tốn kém ít thời gian hợn sộ với giai độạn trên. Trộng thực tế, giai độạn thứ nhất chiếm hầu hết thời gian chộ tộàn quá trình khai thác luật kết hợp. Nhằm cải tiến về mặt thời gian, đề xuất thaỹ thế tập FI bằng tập nhỏ hợn, gọi là tập hợp các tập phổ biến đóng (CFI), tập CFI vẫn đầỹ đủ thông tin chộ giai độạn thứ hai. Mộ t sộ thua t tộa n khai tha c ta p phộ biế n độ ng CFI đa đựợ c ca c ta c gia trế n thế giợ i đế xua t: Charm (Zaki, M. J., & Hsiaộ, C., 2002), CLOSET+ (Wang, J., & Han, J., & Pếi, J., 2003) va ga n đa ỹ la thua t tộa n DBV-Miner (Vộ, B., & Hộng, T. P., & Lế, B., 2012). Ca c thua t tộa n trế n, mộ i la n khai tha c ta p phộ biế n độ ng chĩ xếm xế t ca c mu c ha ng thộ a ngựợ ng phộ biế n tộ i thiế u minsup. Ca c thua t tộa n na ỹ chựa đa p ự ng thự c tế , khi ca n khai tha c lua t kế t hợ p thĩ ngựợ i du ng cộ thế ỹế u ca u thự c hiế n khai tha c lua t kế t hợ p thộ a ngựợ ng minsup va minconf trộng nhiế u chuộ i thaộ ta c liế n tiế p nhau. Vĩ va ỹ, ta c gia đế xua t thua t tộa n khai tha c hiế u qua ta p phộ biế n độ ng COOC-CFI, gộ m ca c thua t tộa n cộn nhự sau: - Xây dựng mảng Index_COOC gồm tập mục đồng xuất hiện của từng mục hàng; - Thuật toán khai thác hiệu quả tập phổ biến đóng COOC-CFI dựa trên mảng Index_COOC chứa các tập mục đồng xuất hiện. Trong phần 2, bài báo trình bày các vấn đề liên quan về tập phổ biến đóng và cấu trúc lựu trữ dữ liệu giao dịch. Phần 3, xây dựng thuật tộán xác định mảng chứa tập mục đồng xuất hiện của từng mục hàng và thuật toán hiệu quả khai thác tập phổ biến đóng. Kết quả thực nghiệm đựợc trình bày trong phần 4 và kết luận ở phần 5. 2. Các vấn đề liên quan 2.1 Một số khái niệm cơ bản Cho I = {I1, I2,..., Im} là tập gồm m thuộc tính riêng biệt, mỗi thuộc tính gọi là item. Tập mục X  I gọi là itemset, tập mục có k mục gọi là k-itemset. Ɗ là dữ liệu giao dịch, gồm n bản ghi phân biệt gọi là tập các giao dịch T = {T1, T2,..., Tn}, mỗi giao dịch )mk(II},I,...,I,I{T jkkkki jj  121 . Định nghĩa 1: Độ phổ biến (support) của itemset X  I, ký hiệu sup(X), là số các giao dịch trong Ɗ có chứa X. Định nghĩa 2: Cho X  I, X gọi là itemset phổ biến nếu sup(X) ≥ minsup, trộng đó minsup là độ phổ biến tối thiểu. Ký hiệu FI là tập hợp các tập mục phổ biến. Định nghĩa 3: Cho X  I, X đựợc gọi là itemset phổ biến đóng nếu X là tập mục phổ biến và không có tập cha cùng độ phổ biến. Tập các itemset phổ biến đóng gọi là tập hợp các tập mục phổ biến đóng, ký hiệu là CFI. Dữ liệu giao dịch Ɗ Ví dụ 1: Chộ dự liế u giaộ di ch Ɗ nhự trộng Bảng 1, cộ 8 item riế ng biế t I = {A, B, C, D, E, F, G, H} va 10 giaộ di ch T = {T1, T2, T3, T4, T5, T6, T7,T8, T9, T10} pha n biế t. Mã giao dịch Tập item T1 A C E F T2 A C G T3 E H T4 A C D F G T5 A C E G T6 E T7 A B C E T8 A C D T9 A B C E G T10 A C E F G TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 12 Tập FI, CFI với minsup = 3 và minsup = 5 trên dữ liệu giao dịch Ɗ k- itemset Tập phổ biến FI (minsup=3) Tập phổ biến đóng CFI (minsup=3) Tập phổ biến FI (minsup=5) Tập phổ biến đóng CFI (minsup=5) 1 F, G, E, A, C E G, E, A, C E 2 FA, FC, EG, GA, GC, EA, EC, AC AC GA, GC, EA, EC, AC AC 3 FAC, GEA, GEC, GAC, EAC FAC, GAC, EAC GAC, EAC GAC, EAC 4 GEAC GEAC Trong Bảng 2, cho thấy tập phổ biến FI và tập phổ biến đóng CFI chứa k-itemset với minsup = 3 (3 giao dịch) và minsup = 5 (5 giao dịch). Trựờng hợp minsup = 3, FI = 19 và CFI = 6, tỷ suất %%FICFI 31100196  ; minsup = 5, tỷ suất %%FICFI 36100114  . Qua đó, ta thấy số lựợng tập phổ biến đóng nhỏ hợn rất nhiều so với số lựợng tập phổ biến. 2.2. Tổ chức lưu trữ dữ liệu giao dịch Lựu trữ dữ liệu giao dịch dạng bit là cấu trúc dữ liệu hiệu quả trong khai thác tập phổ biến (Dong, J., & Han, M., 2007 ; Song, W., & Yang, B., 2008). Chuyển đổi dữ liệu giao dịch thành ma trận nhị phân BiM, trộng đó mỗi dòng tựợng ứng với một giao dịch và mỗi cột tựợng ứng với một item. Nếu item thứ i xuất hiện trong giao dịch t thì bit thứ i của dòng t trong BiM sẽ mang giá trị 1, ngựợc lại sẽ mang giá trị 0. Mã giao dịch A B C D E F G H T1 1 0 1 0 1 1 0 0 T2 1 0 1 0 0 0 1 0 T3 0 0 0 0 1 0 0 1 T4 1 0 1 1 0 1 1 0 T5 1 0 1 0 1 0 1 0 T6 0 0 0 0 1 0 0 0 T7 1 1 1 0 1 0 0 0 T8 1 0 1 1 0 0 0 0 T9 1 1 1 0 1 0 1 0 T10 1 0 1 0 1 1 1 0 Hình 1. Biểu diễn dạng bit của dữ liệu giao dịch ‘D 3. Các thuật toán 3.1. Thuật toán sinh itemset đồng xuất hiện 3.1.1. Tập chiếu và mảng itemset đồng xuất hiện Tập chiếu của item Ik trên dữ liệu giaộ dịch Ɗ: (Ik)={t Ɗ│Ik t} là tập các giaộ dịch có chứa item Ik (-đợn điệu giảm). Ví dụ 2: Thếộ Bảng 1, có (A) = {1, 2, 4, 5, 7, 8, 9, 10} và (B) = {7, 9}. Để tính (AB), chúng ta chỉ cần lấỹ phần giaộ của (A) với (B), nghĩa là (AB) = (A)(B)= {1, 2, 4, 5, 7, 8, 9, 10}{7, 9} = {7, 9}, (B)  (A). Định nghĩa 4: Cho Ik  I, ta gọi Ik là item hạt nhân. Tập Xcooc  I gọi đồng xuất hiện với Ik: Xcooc là tập các item xuất hiện cùng Ik thì (Ik)(Ik Xcooc). Ký hiệu, cooc(Ik) = Xcooc. Ví dụ 3: Chộ dữ liệu giaộ dịch Ɗ nhự trong Bảng 1. Xem item B là item hạt nhân, ta xác định đựợc itemset đồng xuất hiện cùng độ phổ biến với itếm B là cooc(B) = {A, C, E} và sup(B) = sup(BACE) = 2 (theo định nghĩa 4). Định nghĩa 5: Cho Ik  I (I1  I2   Im) thứ tự thếộ độ phổ biến, ta gọi Ik là item hạt nhân. Tập Xlexcooc  I gọi đồng xuất hiện có thứ tự với item Ik: Xlexcooc là tập các item xuất hiện cùng Ik và (Ik)(Ik Xlexcooc), Ik  Ij ,Ij Xlexcooc. Ký hiệu, lexcooc(Ik) = Xlexcooc. Bổ đề 1:  Ik  Ij, nếu sup(Ik) = minsup và Ij  lexcooc(Ik) thì sup(Ik  Ij) < minsup. Chứng minh: sup(Ik  Ij) < sup(Ik), hiển nhiên (Ik  Ij) = (Ik)  (Ij)  (Ik) ■. Ví dụ 4: minsup = 2, xét item B và D. Ta có, sup(B) = minsup và sup(BD) = 0 < sup(B). Bổ đề 2: lexcooc(Ik) = Xlexcooc thì sup(Ik Ysub) = sup(Ik),  Ysub  Xlexcooc. TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 13 Chứng minh: lexcooc(Ik) = Xlexcooc, giả sử Xlexcooc gồm k item thì có 2k –1 tập cộn. Với Ysub  Xlexcooc thì ta có (Ik  Ysub) = (Ik)  (Ysub) = (Ik) ■. Ví dụ 5: Xét item G, với sup(G)=5. Ta có, lexcooc(G) = {A, C} thì 3 itemset kết hợp {A, C, AC} và sup(G) = sup(GA) = sup(GC) = sup(GAC) = 5. Bổ đề 3:  Ik  Ij và Ij  Xlexcooc thì sup(Ij Ik) = sup(Ij Ik Ysub) và sup(IjIkYsub)<sup(Ik Ysub),  Ysub  Xlexcooc. Chứng minh: (thếộ Bổ đề 2) (Ik  Ysub) = (Ik) thì ( Ij Ik  Ysub) = ( Ij Ik) ■. Ví dụ 6: Xét item G, với sup(G)=5 và Ij = E. Ta có, lexcooc(G) = {A, C} thì 3 itemset kết hợp {A, C, AC} và sup(GE) = sup(GEA) = sup(GEC) = sup(GEAC) = 3 < sup(GAC) = 5. 3.1.2. Thuật toán sinh itemset đồng xuất hiện Dựới đâỹ là thuật toán sinh các item đồng xuất hiện với từng item trong dữ liệu giao dịch và lựu trữ vào mảng Index_COOC. Mỗi phần tử trong Index_COOC gồm 3 thành phần sau: - Index_COOC[j].item: Lựu trữ item hạt nhân thứ j; - Index_COOC[j].sup: Lựu trữ độ phổ biến của item hạt nhân thứ j; - Index_COOC[j].cooc: Lựu itemset đồng xuất hiện cùng item hạt nhân thứ j dạng bit; Ngoài ra, thuật toán 1 còn thực hiện nén dữ liệu giao dịch vào ma trận BiM. Mã giả thuật toán 1. 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 mỗi phần tử j của mảng Index_COOC thực hiện: 2. Index_COOC[j].item = Ij 3. Index_COOC[j].sup = 0 4. Index_COOC[j].cooc= 2m - 1 5. Với mỗi giao dịch Ti thực hiện: 6. Nén giao dịch Ti vào ma trận BiM 7. Với mỗi item j có trong giao dịch Ti thực hiện: 8. Index_COOC[j].cooc = Index_COOC[j].cooc & vectorbit(Ti) 9. Index_COOC[j].sup = Index_COOC[j].sup + 1 10. Sắp xếp mảng Index_COOC tăng dần theo sup 11. Với mỗi phần tử j của mảng Index_COOC: 12. Index_COOC[j].cooc= lexcooc(Ij) 13. Trả về mảng Index_COOC, ma trận BiM Từ dòng 1 đến dòng 4 là các bựớc khởi tạo cho mảng Index_COOC. Dòng 5 duyệt dữ liệu giao dịch, ứng với từng giao dịch ta xem xét có chứa item thứ j thì thực hiện phép toán AND trên bit để xác định các phần tử cùng xuất hiện với item j. Khởi tạo mảng Index_COOC: (thành phần cooc biểu diễn dạng bit) số item là m = 8 item A B C D E F G H sup 0 0 0 0 0 0 0 0 cooc 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 Đọc giao dịch T1: {A, C, E, F} có biểu diễn dạng bit là 10101100 item A B C D E F G H sup 1 0 1 0 1 1 0 0 cooc 10101100 11111111 10101100 11111111 10101100 10101100 11111111 11111111 TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 14 Đọc giao dịch T2: {A, C, G} có biểu diễn dạng bit là 10100010 item A B C D E F G H sup 2 0 2 0 1 1 1 0 cooc 10100000 11111111 10100000 11111111 10101100 10101100 10100010 11111111 Đọc giao dịch T3: {E, H} có biểu diễn dạng bit là 00001001 item A B C D E F G H sup 2 0 2 0 2 1 1 1 cooc 10100000 11111111 10100000 11111111 00001000 10101100 10100010 00001001 Đọc giao dịch T4: {A, C, D, F, G} có biểu diễn dạng bit là 10110110 item A B C D E F G H sup 3 0 3 1 2 2 2 1 cooc 10100000 11111111 10100000 10110110 00001000 10100100 10100010 00001001 Đọc giao dịch T5: {A, C, E, G} có biểu diễn dạng bit là 10101010 item A B C D E F G H sup 4 0 4 1 3 2 3 1 cooc 10100000 11111111 10100000 10110110 00001000 10100100 10100010 00001001 Đọc giao dịch T6: {E} có biểu diễn dạng bit là 00001000 item A B C D E F G H sup 4 0 4 1 4 2 3 1 cooc 10100000 11111111 10100000 10110110 00001000 10100100 10100010 00001001 Đọc giao dịch T7: {A, B, C, E} có biểu diễn dạng bit là 11101000 item A B C D E F G H sup 5 1 5 1 5 2 3 1 cooc 10100000 11101000 10100000 10110110 00001000 10100100 10100010 00001001 Đọc giao dịch T8: {A, C, D} có biểu diễn dạng bit là 10110000 item A B C D E F G H sup 6 1 6 2 5 2 3 1 cooc 10100000 11101000 10100000 10110000 00001000 10100100 10100010 00001001 Đọc giao dịch T9: {A, B, C, E, G} có biểu diễn dạng bit là 11101010 item A B C D E F G H sup 7 2 7 2 6 2 4 1 cooc 10100000 11101000 10100000 10110000 00001000 10100100 10100010 00001001 Đọc giao dịch T10: {A, C, E, F, G} có biểu diễn dạng bit là 10101110 item A B C D E F G H sup 8 2 8 2 7 3 5 1 cooc 10100000 11101000 10100000 10110000 00001000 10100100 10100010 00001001 Kết thúc vòng lặp ở dòng 5, trả về mảng Index_COOC tựợng ứng là cooc(A) = {C}, cooc(B) = {A, C, E}, cooc(C) = {A}, cooc(D) = {A, C}, cooc(E) = {}, cooc(F) = {A, C}, cooc(G) = {A, C} và cooc(H) = {E}. TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 15 Trả về mảng Index_COOC sắp tăng theo độ phổ biến của item. item H B D F G E A C sup 1 2 2 3 5 7 8 8 cooc E A, C, E A, C A, C A, C Ø C A Thực hiện dòng 10: Ta có kết quả trong Bảng 3, mảng Index_COOC chứa itemset đồng xuất hiện của từng item và đựợc sắp tăng dần thếộ độ phổ biến của từng item. Trả về mảng Index_COOC sắp tăng theo độ phổ biến của item và thành phần cooc có thứ tự. item H B D F G E A C sup 1 2 2 3 5 7 8 8 cooc E E, A, C A, C A, C A, C Ø C Ø Thực hiện dòng 11 và 12: ta có kết quả trong Bảng 4, mảng Index_COOC chứa thành phần cooc có thứ tự (theo định nghĩa 5). 3.2 Thuật toán khai thác tập phổ biến đóng COOC-CFI Theo khảo sát, một số thuật toán khai thác tập phổ biến đóng đã đựợc các tác giả trên thế giới đề xuất nhự Charm (Zaki, M. J., & Hsiao, C., 2002), CLOSET+ (Wang, J., & Han, J., & Pei, J., 2003) và DBV-Miner (Vo, B., & Hong, T. P., & Le, B., 2012) chựa đáp ứng nhu cầu thực tế: Mỗi lần cần khai thác tập phổ biến đóng với minsup khác thì thuật toán thực hiện chọn lại các item thỏa minsup, phát sinh lại cây tìm kiếm hoặc dàn tập mục tựợng ứng và xác định tập phổ biến đóng thỏa minsup mới. Trong thực tế, khi cần khai thác luật kết hợp thì ngựời dùng có thể yêu cầu thực hiện khai thác luật kết hợp thỏa ngựỡng minsup và minconf trong nhiều chuỗi thao tác liên tiếp nhau. Từ đó, tác giả đã xâỹ dựng thuật toán COOC-CFI khai thác tập phổ biến đóng dựa trên mảng Index_COOC chứa tất cả các itemset đồng xuất hiện của tất cả item trong CSDL có thể thực hiện chuỗi khai thác nhanh tập CFI và dùng lại mảng Index_COOC cho lần sau. Mã giả thuật toán 2. COOC-CFI khai thác tập phổ biến đóng Đầu vào: mảng Index_COOC, minsup Đầu ra: Tập phổ biến đóng CFI 1. Với mỗi item thỏa minsup, xem xét: 2. Nếu sup(item) = minsup thì 3. Nếu IS_CFI(CFI, item cooc(item)) thì 4. CFI = CFI item cooc(item)} //bổ đề 1 và 2 5. Ngược lại 6. Jk  tập con(Ij Ik) //sắp xếp tăng theo sup 7. Nếu IS_CFI(CFI, item cooc(item)) thì 8. CFI = CFI item cooc(item)} //bổ đề 1 và 2 9. Nếu Jk   thì 10. Với mỗi itemset ISi  Jk //bổ đề 3 11. Nếu IS_CFI(CFI, ISi item cooc(item)) thì 12. CFI= CFI  ISi item cooc(item) 13. Trả về tập phổ biến đóng CFI Ví dụ 7: Chộ dữ liệu giaộ dịch Ɗ nhự trong Bảng 1 và minsup = 3 Xét item F, có cooc(F) = {A, C} (thỏa điều kiện dòng 2), sinh tập mục phổ biến đóng là (FAC, 3). Lúc này, CFI ={(FAC, 3)}. Xét item G (ngược lại - dòng 5), lúc này item G – cooc(G) = {A, C},có sup(G)=5 > minsup. Tập Jk ={E}. Tập mục phổ biến đóng sinh ra trộng bựớc nàỹ là cfi = {(GEAC, 3), (GAC, 5)}. Kết thúc bựớc nàỹ, ta có CFI={(FAC, 3), (GEAC, 2), (GAC, 5)}. TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 16 Xét item E, có cooc(E) = {} còn item A và C có sup(A) = sup(C) = 8 > minsup. Tập Jk ={A, C, AC}. Tập mục phổ biến đóng sinh ra trong bựớc nàỹ là cfi = {(EAC, 5)} với sup(EAC) = sup(GAC) nhựng EAC  GEAC trong CFI, nên đựa cfi ={(EAC, 5)} vào CFI. Xét item A, có cooc(A) = {C}. Tập Jk={}, sinh tập mục phổ biến đóng là cfi={(AC, 8)}. Lúc này, CFI =CFI  {(AC, 8)} vì CFI không có tập mục phổ biến đóng có độ phổ biến là 8. Sau cùng, chỉ còn item C và cooc(C)={}: sinh tập mục phổ biến đóng (C, 8), mà C  AC và sup(C) = sup(AC), nên không thêm vào CFI. Với dữ liệu giao dịch Ɗ ở Bảng 1 và minsup = 3, ta có: CFI={(FAC, 3), (GEAC, 3), (GAC, 5), (EAC, 5) (E, 7), (AC, 8)}. 4. Kết quả thực nghiệm Thực nghiệm trên máỹ tính Panasonic CF- 74, Cộrế Duộ 2.0 GHz, 4 GB RAM, thuật tộán cài đặt trên C#, Micrộsộft Visual Studiộ 2010. Nghiên cứu thực nghiệm trên hai nhóm dữ liệu: Nhóm dữ liệu thực có mật độ dày: Sử dụng dữ liệu thực từ kho dữ liệu về học máy của trựờng Đại học California (Lichman, M. (2013). UCI Machine Learning Repository []. Irvine, CA: University of California, School of Information and Computer Science) gồm 2 tập Chess và Mushroom. Nhóm dữ liệu giả lập có mật độ thựa: Sử dụng phần mềm phát sinh dữ liệu giả lập của trung tâm nghiên cứu IBM Almaden (IBM Almaden Research Center, San Joe, California 95120, U.S.A []) gồm 2 tập T10I4D100K và T40I10D100K. Dữ liệu thực nghiệm Tên dữ liệu Số item Số giao dịch Số mục nhỏ nhất/giao dịch Số mục lớn nhất/ giao dịch Số mục trung bình/ giao dịch Mật độ (%) Chess 75 3.196 37 37 37 49,3% Mushroom 119 8.142 23 23 23 19,3% T10I4D100K 870 100.000 1 29 10 1,1% T40I10D100K 942 200.000 4 77 40 4,2% 0 20000 40000 60000 80000 100000 55% 60% 65% 70% 75% Th ờ i g ia n (m ili gi ây ) Minsup(%) (a) Chess Charm DBV-Miner COOC-CFI 0 200 400 600 800 1000 1200 1400 1600 10% 15% 20% 25% 30% Th ời gi an (m ilig iây ) Minsup(%) (b) Mushroom Charm DBV-Miner COOC-CFI Hình 2. Thời gian thực hiện COOC-CFI, Charm và DBV-Miner trên dữ liệu Chess, Mushroom với các minsup khác nhau. Tác giả sử dụng 2 tập Chess và Mushroom để so sánh hiệu suất của thuật toán COOC-CFI với thuật toán Charm (Zaki, M. J., & Hsiao, C., 2002) và DBV-Miner (Vo, B., & Hong, T. P., & Le, B., 2012). Hình 2, cho thấy thời gian thực hiện thuật toán COOC-CFI khai thác tập phổ biến đóng thếộ các ngựỡng minsup khác nhau trên 2 tập dữ liệu Chess và Mushroom nhanh hợn thuật toán Charm và DBV-Miner. 0 2000 4000 6000 8000 10000 12000 0.10% 0.15% 0.20% 0.25% 0.30% Th ời g ia n (m ili gi ây ) Minsup(%) (a) T10I4D100K Charm DBV-Miner COOC-CFI TẠP CHÍ KHOA HỌC YERSIN Số 03 (10/2017) 17 0 20000 40000 60000 80000 100000 120000 6.00% 6.50% 7.00% 7.50% 8.00% Th ời g ia n (m ili g iâ y) Minsup(%) (b) T40I10D100K Charm DBV-Miner COOC-CFI Hình 3. Thời gian thực hiện COOC-CFI, Charm và DBV-Miner trên dữ liệu T10I4D100K và T40I10D100K với các minsup khác nhau. Ngoài ra, tác giả cũng sử dụng 2 tập T10I4D100K và T40I10D100K để so sánh hiệu suất của thuật toán COOC-CFI với thuật toán Charm và DBV-Miner. Hình 3, cho thấy thời gian thực hiện thuật toán COOC-CFI khai thác tập phổ biến đóng thếộ các ngựỡng minsup khác nhau trên 2 tập dữ liệu trên là nhanh hợn thuật toán Charm và DBV-Miner. 5. Kết luận Bài báộ đã đề xuất thuật tộán tính nhanh mảng Index_COOC chứa các itemset đồng xuất hiện và thuật tộán COOC-CFI khai thác hiệu quả tập phổ biến đóng dựa trên mảng Index_COOC. Kết quả trên chộ thấỹ thuật tộán khai thác tập phổ biến đóng COOC-CFI tốt hợn thuật tộán Charm, DBV-Miner. Ngoài ra, thuật tộán cũng cần thực nghiệm thêm trên nhiều tập dữ liệu khác. Trộng tựợng lai, tác giả sẽ cải tiến thuật tộán trên để có thể khai thác tập phổ biến đóng trên dữ liệu giaộ dịch có trọng số, đâỹ là hựớng nghiên cứu đang đựợc quan tâm vì khả năng ứng dụng vàộ nhiều lĩnh vực, đặc biệt là trộng kinh dộanh. TÀI LIỆU THAM KHẢO 1. Agrawal, R., & Imilienski, T., & Swami, A. (1993). Mining association rules between sets of large databases. Proceedings of the ACM SIGMOD International Conference on Management of Data, Washington, DC, 207-216. 2. Agrawal, R., & Srikant, R. (1994). Fast algorithms for mining association rules. Proceedings of International Conference on Very Large Data Base, Santiago, Chile, 478-499. 3. Dong, J., & Han, M. (2007). BitTableFI: An efficient mining frequent itemsets algorithm. Knowledge-Based Systems 20(4), 329–335. 4. Song, W., & Yang, B. (2008). Index- BitTableFI: An improved algorithm for mining frequent itemsets. Knowledge-Based Systems 21, 507-513. 5. Vo, B., & Hong, T. P., & Le, B. (2012). DBV-miner: A dynamic bit-vector approach for fast mining frequent closed itemsets. Expert Systems with Applications, 39(8),7196–7206. 6. Zaki, M. J., & Hsiao, C. (2002). CHARM: An efficient algorithm for closed association rule mining. In 2nd SIAM International Conference on Data Mining, 457–473. 7. Wang, J., & Han, J., & Pei, J. (2003). CLOSET+: searching for the best strategies for mining frequent closed itemsets. Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Washington, DC, USA, 236–245.

Các file đính kèm theo tài liệu này:

  • pdf33917_113383_1_pb_0748_2031937.pdf