Khai thác tập phổ biến có trọng số dựa trên cấu trúc N-list
TÓM TẮT— Khai thác tập phổ biến là bài toán quan trọng trong khai thác dữ liệu. Đã có nhiều phương pháp khác nhau được đề xuất để giải quyết bài toán này. Trong đó, cấu trúc N-List được đề xuất bởi Deng với việc sử dụng hướng tiếp cận lai giữa cây FP và cây liệt kê đã đạt được hiệu quả đáng khích lệ. Tuy nhiên phương pháp này mới chỉ khai thác trên cơ sở dữ liệu (CSDL) nhị phân truyền thống. Trong bài báo này, chúng tôi đề xuất một cấu trúc mở rộng của N-list là WN-list (Weighted N-list) để giải quyết bài toán khai thác tập phổ biến có trọng số trên CSDL trọng số. Đầu tiên, một số định lý được phát triển để tính toán độ phổ biến trọng số của itemset, sau đó thuật toán NFWI được đề xuất trên cơ sở các định lý đó để khai thác nhanh tập phổ biến có trọng số. Các thử nghiệm trên nhiều loại cơ sở dữ liệu (thưa và dày) cho thấy phương pháp đề xuất hiệu quả hơn so với các phương pháp khai thác tập phổ biến có trọng số hiện có, đặc biệt là khi ngưỡng phổ biến nhỏ

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8
Tóm tắt nội dung tài liệu: Khai thác tập phổ biến có trọng số dựa trên cấu trúc N-list
phần tiền tố là X, trong
đó A xếp sau B theo thứ tự trong I1. WL(XA) và WL(XB) là hai WN-list tương ứng của XA và XB. Ta có WL(XAB) là
WN-list của k-itemset XAB được xác định như sau:
1. Với mỗi cặp Ci(xi, yi, wi) WL(XA) và Cj(xj, yj, wj) WL(XB), nếu Cj là tổ tiên của Ci thì ta thêm (xj, yj, wi)
vào WL(XAB).
2. Duyệt WL(XAB) và tổ hợp các WN-code có cùng (pre, post) thành một WN-code mới có trọng số là tổng
của các giá trị trọng số trong các WN-code đang xét.
Dựa vào Định nghĩa 8 ta dễ dàng xây dựng được Thuật toán 2 (WL_Intersection) thực hiện phép giao giữa
hai WN-list với độ phức tạp tuyến tính.
Định lý 2. Cho X là một itemset với WN-list của X là WL(X) = . Độ
phổ biến trọng số của X là được tính như sau:
∑
∑
(3)
Chứng minh: Không mất tính tổng quát, ta giả sử itemset X = A1A2...Am, trong đó Ai đứng sau Ai+1 theo thứ tự
trong I1. Theo cách xác định WN-list trong định nghĩa 7, ta có:
(a) Với mỗi WN-code Ci(xi, yi, wi) WL(X), tồn tại một nút trên cây WN có item-name = Am, pre = xi và pos =
yi tương ứng với (xi, yi).
(b) wi là tổng các weight của các nút có item-name = A1 trong cây con thuộc cây WN có gốc là Am trong (a).
Gọi Ti là tập các giao dịch chứa X đi qua cây con có gốc là Am(pre = xi, pos = yi), lúc đó mỗi Ti sẽ tương ứng
với một WN-code (xi, yi, wi) và theo (a) và (b) ta có:
∑
(c)
⋃
(d)
Theo công thức (2), (c) và (d) ta có:
∑
∑
∑ ∑
∑
∑
∑
Định lý 2 đã được chứng minh.
IV. THUẬT TOÁN NFWI KHAI THÁC FWI TRÊN WD
Chúng tôi sử dụng cây liệt kê (set-enumeration tree) [16] để đơn giản hóa quá trình duyệt khai thác FWI. Cụ
thể, với CSDL ví dụ trong Bảng 2, ta có cây liệt kê như Hình 2.
Hình 2. Cây liệt kê của CSDL trong Bảng 2
Vận dụng các định nghĩa và định lý đã trình bày ở phần trước, chúng tôi đề xuất thuật toán NFWI để khai thác
FWI trên WD như Hình 3.
Thuật toán 3: Thuật toán NFWI
Input: CSDL có trọng số WD và ngưỡng minws
Output: FWI, là tập tất cả các tập phổ biến có trọng số.
Method name: NFWI_Algorithm(WD, minws)
1. Call Construction_WN_Tree(WD, minws) to generate Tree and I1
2. Scan Tree to generate WN-lists of items in I1
3. Let FWI I1
4. Call Find_FWI(I1, )
5. return FWI
Bùi Danh Hường, Võ Đình Bảy, Nguyễn Duy Hàm 251
Procedure Find_FWI(Lk,Prek)
6. Prenext = Prek
7. for i = Lk.size downto 2 do
8. Prenext i
9. Lnext =
10. for j = i-1 downto 1 do
11. WLij = WL_Intersection(WLi, WLj)
12. if ws(WLij) minws then
13. FWI {Prek {Li} {Lj}}
14. Inext Li
15. if Lnext then Find_FWI(Lnext, Prenext)
16. remove last item of Prenext
Hình 3. Thuật toán NFWI
Thuật toán NFWI hoạt động như sau: đầu tiên xây dựng cây WN và phát sinh WN-list của các 1-FWI. Tiếp đó
duyệt theo cây liệt kê và áp dụng thuật toán giao hai WN-list để xác định WN-list của một k-itemset từ WN-list của hai
(k-1)-itemset tương ứng. Trong quá trình tính toán WN-list, áp dụng định lý 2 để tìm và cập nhật tập FWI.
Chi tiết của thuật toán NFWI được thể hiện ở trong Thuật toán 3. Sau khi xây dựng cây WN và phát sinh tập
các 1-FWI là I1, thì gọi hàm Find_FWI(Lk, Prek) để bắt đầu tiến trình xử lý khai thác FWI. Ở đây, Lk là tập các item
cuối và Prek là tập các tiền tố giống nhau của các itemset thuộc về lớp hiện tại. Dòng 4 thể hiện thời điểm gọi hàm
Find_FWI lần đầu tiên, trong đó Lk = I1 và Prek = . Dòng 6, 8, 9, 14 và 16 là nơi khai báo và tính toán các biến mới là
Lnext và Prenext, các biến này được sử dụng làm tham số để gọi hàm đệ quy cho lớp tìm kiếm tiếp theo (Dòng 15). Ở
dòng 7-14, thuật toán thực hiện phép giao của mọi cặp WN-lists của các k-itemset có trong Ik, sau đó so sánh giá trị ws
của (k+1)-itemset thu được với ngưỡng, và phụ thuộc vào kết quả so sánh để cập nhật tập FWI và Lnext (Dòng 13-14).
Ví dụ 3. Chúng ta sẽ minh họa hoạt động của thuật toán NFWI với CSDL ví dụ ở trong Bảng 2. Sau khi gọi
hàm Construction_WN_Tree ta thu được kết quả là cây WN như Hình 1 với tập I1 = {B, E, A, D, C}, minws = 0.5,
sumtw = 2.4.
Từ cây WN và I1 ta sinh ra được WN-list cho các 1-FWI như sau:
WL(C) = {(5, 0, 0.5), (6, 2, 0.4), (8, 4, 0.4)}
WL(D) = {(4, 1, 1), (7, 5, 0.4)}
WL(A) = {(3, 3, 1.4), (9, 7, 0.4)}
WL(E) = {(2, 6, 2)}
WL(B) = {(1, 8, 2.4)}
Cập nhật các 1-FWI vào tập FWI:
FWI = {B, E, A, D, C}
Duyệt theo các nhánh của cây liệt kê (Hình 2) từ trái qua phải, ta lần lượt khai thác FWI theo tiến trình như
sau:
Khởi đầu với L1 = {B, E, A, D, C}, Pre1 = , S1 =
Đi theo nhánh C: Pre2 = {C}
WL(CD) = {(4, 1, 0.5), (7, 5, 0.4)}
WL(CA) = {(3, 3, 0.5), (3, 3, 0.4)} = {(3, 3, 0.9)}
WL(CE) = {(2, 6, 0.5), (2, 6, 0.4), (2, 6, 0.4)} = {(2, 6, 1.3)}
WL(CB) = {(1, 8, 0.5), (1, 8, 0.4), (1, 8, 0.4)} = {(1, 8, 1.3)}
Do ws(CD) = (0.5+0.4)/2.4 = 0.9/2.4<minws = 0.5 nên CD không phải là FWI. Tương tự như vậy, CA cũng
không phải là FWI.
Do ws(CE) = ws(CB) = ws(C) = 1.3/2.4 > 0.5 nên cập nhật FWI và L2 = {E, B}:
FWI = {B, E, A, D, C, CE, CB}
o Bởi vì L2 = {E, B} nên gọi đệ quy đến hàm Find_FWI(L2 = {E, B}, Pre2 = {C}).
WL(CEB) = {(1, 8, 1.3)}
Bởi vì ws(CEB) = 1.3/2.4 > 0.5 nên cập nhật FWI:
252 KHAI THÁC TẬP PHỔ BIẾN CÓ TRỌNG SỐ DỰA TRÊN CẤU TRÚC N-LIST
FWI = {B, E, A, D, C, CE, CB, CEB}
Thực hiện tương tự với các nhánh D, A và E, ta nhận được kết quả cuối cùng như sau:
FWI = {B, E, A, D, C, CE, CB, CEB, DE, DB, DEB, AE, AB, AEB, EB}
V. THỰC NGHIỆM VÀ ĐÁNH GIÁ
Tất cả các thử nghiệm trong phần tiếp theo đều được tiến hành trên cùng một hệ thống CPU Intel Core i5 2.5
GHz, bộ nhớ Ram 8GBs, chạy trên hệ điều hành Windows 7, sử dụng ngôn ngữ lập trình Visual C# 2012.
Chúng tôi thực nghiệm trên các CSDL Accidents, Connect, Retail và BMS-POS, được download từ
và biến đổi bằng cách thêm bảng lưu trữ trọng số của các item (ngẫu nhiên trong khoảng
1 đến 10). Chúng tôi so sánh thuật toán NFWI với các thuật toán khai thác FWI mới nhất là WIT-FWIs-Diff [14] và
IWS [15], trong đó WIT-FWIs-Diff được đánh giá hiệu quả trên các CSDL dày, còn IWS thì hiệu quả hơn trên các
CSDL thưa.
Bảng 3. Một số thông số về các CSDL dùng thử nghiệm
CSDL
Số lượng
items
Số lượng
giao dịch
Độ dài trung bình của
giao dịch
Ghi chú
Accidents 468 340,183 33.8 Modified
Connect 130 67,557 43 Modified
Retail 16,470 88,162 10.3 Modified
BMS-POS 1,657 515,597 6.5 Modified
Do mức độ chênh lệch về thời gian chạy giữa thuật toán xếp cuối là quá lớn so với hai thuật toán còn lại, nên
khi để chung trong một hình thì không thể hiện rõ được sự chênh lệch giữa hai thuật toán xếp thứ nhất và thứ hai. Vì
vậy chúng tôi tách mỗi hình đồ thị so sánh về mặt thời gian chạy thành hình a và hình b để dễ theo dõi và so sánh.
Trong đó, hình a thể hiện so sánh giữa thuật toán xếp thứ nhì với thuật toán xếp thứ ba trong 3 thuật toán NFWI, WIT-
FWIs-Diff và IWS. Hình b thể hiện so sánh giữa thuật toán xếp thứ nhất với thuật toán xếp thứ hai.
Hình 4. So sánh thời gian chạy trên CSDL Accidents
Hình 5. So sánh thời gian chạy trên CSDL Connect
0
1000
2000
3000
4000
60 50 40 30 25 20
Ti
m
e
(s
)
minws(%)
a
WIT-FWIs-Diff IWS
0
50
100
150
200
250
60 50 40 30 25 20
Ti
m
e
(s
)
minws(%)
b
NFWI WIT-FWIs-Diff
0
500
1000
1500
2000
2500
98 94 90 85 80 75
Ti
m
e
(s
)
minws(%)
a
WIT-FWIs-Diff IWS
0
20
40
60
80
98 94 90 85 80 75
Ti
m
e
(s
)
minws(%)
b
NFWI WIT-FWIs-Diff
Bùi Danh Hường, Võ Đình Bảy, Nguyễn Duy Hàm 253
Hình 6. So sánh thời gian chạy trên CSDL Retail
Hình 7. So sánh thời gian chạy trên CSDL BMS-POS
Hình 4a-7a cho thấy trên các CSDL dày như Accidents và Connect thì thuật toán WIT-FWIs-Diff hiệu quả
hơn IWS, ngược lại trên các CSDL thưa như Retail và BMS-POS thì IWS hiệu quả hơn WIT-FWIs-Diff. Hình 4b-6b
cho thấy thuật toán NFWI chạy nhanh hơn WIT-FWIs-Diff trên các CSDL dày, đồng thời cũng nhanh hơn IWS trên
các CSDL thưa. Như vậy thực nghiệm cho thấy NFWI chạy nhanh hơn trên tất cả các loại CSDL (dày và thưa), đặc
biệt khi ngưỡng càng nhỏ thì NFWI càng chiếm ưu thế so với WIT-FWIs-Diff và IWS.
Hình 4b minh họa trên CSDL dày Accidents: với ngưỡng minws= 50% thì thời gian chạy của NFWI là 15.1s
chậm hơn so với thời gian chạy của WIT-FWIs-Diff là 10s, nhưng khi ngưỡng minws =40% thì thời gian của NFWI là
16.2s nhanh hơn so với thời gian của WIT-FWIs-Diff là 17s. Tiếp nữa khi ngưỡng minws = 30% thì thời gian của
NFWI chỉ là 17.4s so với của WIT-FWIs-Diff là 45.5s. Trong bước này, thời gian của NFWI tăng 1.2s (tăng 7.41%)
còn thời gian của WIT-FWIs-Diff tăng tới 28.5s (tăng 167.65%). Và với ngưỡng càng nhỏ thì mức độ chênh lệch càng
tăng lên nhiều lần.
Hình 6b minh họa trên CSDL thưa Retails: với ngưỡng minws = 0.4% thời gian chạy của NFWI là 1.9s, còn
của IWS là 5.5s. Khi ngưỡng minws = 0.2% thì thời gian của NFWI là 2.8s (tăng 47.37%) còn của IWS là 22.6s (tăng
310.91%). Tiếp theo khi ngưỡng minws = 0.1% thì thời gian của NFWI là 3.6s (tăng 28.57%) còn của IWS là 124.4s
(tăng 450.44%). Và mức độ chênh lệch đó tiếp tục tăng lên khi ngưỡng càng nhỏ.
Phần lớn chi phí trong NFWI đều dùng để xây dựng cây WN ban đầu, còn chi phí khi tính giao WN-list phía
sau là nhỏ, đó chính là lí do giải thích cho việc NFWI có thể chạy chậm hơn ở các ngưỡng lớn, nhưng khi ngưỡng càng
nhỏ thì NFWI càng tỏ ra hiệu quả hơn so với WIT-FWIs-Diff và IWS.
VI. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trong bài báo này chúng tôi đã phát triển cấu trúc WN-list, một mở rộng của cấu trúc N-lists [8], để biểu diễn
CSDL có trọng số. Từ đó chúng tôi xây dựng thuật toán NFWI để khai thác nhanh tập phổ biến có trọng số. Sự hiệu
quả của thuật toán NFWI thu được là nhờ các ưu điểm của cấu trúc WN-list thừa kế từ cấu trúc N-list. Các ưu điểm đó
là: khả năng nén dữ liệu cao khiến kích thước WN-list nhỏ, dễ dàng tính độ phổ biến trọng số thông qua quét WN-list
và thuật toán giao hai WN-list chỉ có độ phức tạp tuyến tính. Các thực nghiệm trên nhiều loại CSDL đã cho thấy NFWI
hoạt động hiệu quả hơn các thuật toán khai thác FWI hiện có.
Trong tương lai, chúng tôi sẽ tập trung vào việc áp dụng cấu trúc N-list trong một số bài toán khai thác dữ liệu
khác như khai thác tập phổ biến tiện ích cao hay khai thác tập phổ biến trên CSDL tăng trưởng.
0
50
100
150
4 2 1 0.4 0.2 0.1
Ti
m
e
(s
)
minws(%)
a
WIT-FWIs-Diff IWS
0
20
40
60
80
4 2 1 0.4 0.2 0.1
Ti
m
e
(s
)
minws(%)
b
NFWI IWS
0
1000
2000
3000
0.8 0.4 0.2 0.08 0.04 0.02
Ti
m
e
(s
)
minws(%)
a
WIT-FWIs-Diff IWS
0
200
400
600
800
0.8 0.4 0.2 0.08 0.04 0.02
Ti
m
e
(s
)
minws(%)
b
NFWI IWS
254 KHAI THÁC TẬP PHỔ BIẾN CÓ TRỌNG SỐ DỰA TRÊN CẤU TRÚC N-LIST
TÀI LIỆU THAM KHẢO
[1] R. Agrawal, T. Imielinski, and A. Swami, "Mining association rules between sets of items in large databases," in SIGMOD '93
Proceedings of the 1993 ACM SIGMOD international conference on Management of data, 1993, pp. 207-216.
[2] R. Agrawal, H. Mannila, R. Srikant, H. Toivonen, and I. A. Verkamo, "Fast discovery of association rules," in Advances in
knowledge discovery and data mining. American Association for Artificial Intelligence Menlo Park, 1996, pp. 307-328.
[3] J. Han, J. Pei, and Y. Yin, "Mining frequent patterns without candidate generation," in SIGMOD '00 Proceedings of the 2000
ACM SIGMOD international conference on Management of data, 2000, pp. 1-12.
[4] G. Grahne and J. Zhu, "Fast algorithms for frequent itemset mining using FP-trees," IEEE Transactions on Knowledge and
Data Engineering, vol. 17, no. 10, pp. 1347-1362, 2005.
[5] M. J. Zaki, "Scalable algorithms for association mining," IEEE Transactions on Knowledge and Data Engineering, vol. 12, no.
3, pp. 372-390, 2000.
[6] M. J. Zaki and K. Gouda, "Fast vertical mining using diffsets," in KDD '03 Proceedings of the ninth ACM SIGKDD
international conference on Knowledge discovery and data mining, 2003, pp. 326-335.
[7] B. Vo, L. Hong, and B. Le, "DBV-Miner: A Dynamic Bit-Vector approach for fast mining frequent closed itemsets," Expert
Systems with Applications, vol. 39, no. 8, pp. 7196-7206, 2012.
[8] Z. Deng, Z. Wang, and J. Jiang, "A new algorithm for fast mining frequent itemsets using N-lists," Science China Information
Sciences, vol. 55, no. 9, pp. 2008-2030, 2012.
[9] B. Vo, T. Le, F. Coenen, and T.-P. Hong, "Mining frequent itemsets using the N-list and subsume concepts," International
Journal of Machine Learning and Cybernetics, pp. 1-13, 2014.
[10] Z. Deng and S. Lv, "PrePost+: An efficient N-list-based algorithm for mining frequent itemsets via Children-Parent
Equivalence pruning," Expert Systems with Applications, vol. 42, no. 13, pp. 5424-5432, 2015.
[11] G. D. Ramkumar, S. Ranka, and S. Tsur, "Weighted Association Rules: Model and Algorithm," in Proc. Fourth ACM Int’l
Conf. Knowledge Discovery and Data Mining, 1998, pp. 01-13
[12] C. H. Cai, A. W. C. Fu, C. H. Cheng, and W. W. Kwong, "Mining association rules with weighted items," in Database
Engineering and Applications Symposium, 1998. Proceedings. IDEAS'98. International, 1998, pp. 68-77.
[13] F. Tao, F. Murtagh, and M. Farid, "Weighted Association Rule Mining Using Weighted Support and Significance Framework,"
in KDD '03 Proceedings of the ninth ACM SIGKDD international conference on Knowledge discovery and data mining, 2003,
pp. 661-666.
[14] B. Vo, F. Coenen, and B. Le, "A new method for mining Frequent Weighted Itemsets based on WIT-trees," Expert Systems
with Applications, vol. 40, no. 4, pp. 1256-1264, 2013.
[15] H. D. Nguyen, B. Vo, M. H. T. Nguyen, and T.-P. Hong, "An Improved Algorithm for Mining Frequent Weighted Itemsets," in
Systems, Man, and Cybernetics (SMC), 2015 IEEE International Conference on, 2015, pp. 2579-2584.
[16] R. Rymon, "Search through systematic set enumeration," in In Proc. Int'l Conf. principles of knowledge representation and
reasoning, 1992, pp. 539-550.
A WEIGHTED N-LIST-BASED METHOD FOR MINING FREQUENT
WEIGHTED ITEMSETS
Bui Danh Huong, Vo Dinh Bay, Nguyen Duy Ham
ABSTRACT— Mining frequent itemsets plays an important role in data mining. There have been many different methods proposed
to solve this problem. In particular, the N-list structure proposed by Deng et al. (Deng, Wang, & Jiang, 2012) that use a hybrid
approach between the FP-tree and enumerate-tree achieved encouraging efficiency. However, this method operates only on binary
databases. In this paper, we proposed the WN-list (Weighted N-list) structure, an extension of the N-list structure, to solve the
problem of mining frequent weighted itemsets from weighted database. First, some theorems are developed to calculate the weight
support of an itemset, and then, an algorithm is built based on these theorems for fast mining frequent weighted itemsets.
Experimental results on a variety of databases (sparse and dense) show that the proposed method outperforms existing methods,
especially with the small threshold.
File đính kèm:
khai_thac_tap_pho_bien_co_trong_so_dua_tren_cau_truc_n_list.pdf

