Đầu vào: cơ sở dữ liệu D, ngưỡng k
Đầu ra: Tabk, với các mục cố định, mỗi một mục sẽ chứa các item cùng cấp
Mã giả:
WIT-FWI-DIFF-TOP-K() {
1.Iorder = tất cả các tập có kích thước là 1 cùng với trọng số hỗ trợ 2.Sắp xếp các nút trong Iorder theo thứ tự giảm dần của ws
3.Tabk = {I thuộc Iorder sao cho RI k} và gọi tập này là tập Lr
4. Gọi hàm WIT-FWI-DIFF-TOP-K-EXTEND với tham số là Lr
WIT-FWI-DIFF-TOP-K-EXTEND (Lr)
6. Tạo một tập Li bằng cách nối li với tất cả lj theo sau trong Lr bằng cách 7. Tập X = li.itemset ∪ lj.itemset
8. Nếu Lrlà nút gốc thì Y = t(li)\t(lj) // theo công thức 3.1
9. Ngược lại Y= d(lj)\d(li) // theo công thức 3.2 10. Nếu Y=∅ thì ws(X)= ws(li) // theo định lý 3.3 11. Ngược lại ws(X) = COMPUTE-WS-DIFF(Y) // theo định lý 3.3 12. Nếu ws(X)≥ trọng số tối thiểu của kth trong Tabk
13. Chèn một node 〈 , ( ), 〉 vào trong Li
14. Lisẽ được chèn vào trong Tabk
15. Nếu số lượng node trong Li≥ 2 khi đó
16. Gọi đệ qui hàm WIT-FWI-DIFF-TOP-K-EXTEND với biến Li
}
Giải thích các bước của thuật toán:
- Đầu tiên cho tập Iorder chứa tất các các tập được đánh trọng có kích thước là 1 cùng với trọng số hỗ trợ của chúng (dòng 1).
- Các nút chứa trong tập Iorder sẽ được sắp xếp theo thứ tự giảm dần của trọng số hỗ trợ (dòng 2).
- Khởi tạo Tabk và chèn tất cả các tập mà Rank của nó thỏa điều kiện ngưỡng k cho trước (dòng 3) và gọi tập này là Lr.
- Khởi tạo hàm WIT-FWI-DIFF-TOP-K-EXTEND với biến là tập Lr để khai thác các tập con dựa trên các tập cha có trong Tabk. Cho nút licó trong Lr với các nút phía sau nó để tạo các tập nút mới gọi là Li (dòng 5 và 6).
- Để tạo ra Li: đầu tiên, cho X = li.itemset ∪ lj.itemset (dòng 7). - Tính toán Y
o Nếu Lr là nút gốc thì Y được tính theo công thức Y= t(li) \ t(lj)
(dòng 8).
o Ngược lại Y được tính bằng Diffset như sau Y = d(lj) \ d(li)
- Nếu Y= ∅ thì trọng số hỗ trợws(X) chính là ws(li) ngược lại ws(X)
được tính toán dựa trên hàm COMPUTE-WS-DIFF(Y) (định lý 3.3) (dòng 10, 11).
- Nếu ws(X) lớn hơn hoặc bằng trọng số hỗ trợ của kth (mức k thấp nhất trong Tabk) (dòng 12) thì:
o (li.itemset,li.ws) sẽ được chèn vào Li (dòng 13).
o Li sẽ được chèn tiếp vào Tabk (dòng 13).
- Nếu số lượng các nút trong Li lớn hơn 1 (dòng 15), thì tiếp tục gọi đệ qui hàm WIT-FWI-DIFF-TOP-K-EXTEND với biến là Li để sinh ra các ứng viên khác (dòng 16). Nếu các tập con sinh ra mà trọng số của nó nhỏ hơn trọng số của tập cha và không thỏa điều kiện ngưỡng k, thì toàn bộ nút đó sẽ bị xóa bỏ, và không tiến hành khởi tạo hàm WIT- FWI-DIFF-TOP-K-EXTEND để sinh ứng viên nữa.
Ta tiến hành sử dụng Bảng 2.1, 2.2, 3.1, 3.2, để tiến hành tìm kiếm Top-rank-k các tập được đánh trọng với ngưỡng k = 4.
Bước 1: Ta tiến hành tính toán trọng số hỗ trợ của các tập có kích thước là 1 và khởi tạo tập Iorder. Ta có ws(A) = 0.72, ws(B) = 1, ws(C) = 0.6, ws(D) = 0.78, ws(E) = 0.81. Ta có tập:
Iorder=
{〈 , 1345,0.72〉,〈 , 123456,1〉,〈 , 2456,0.6〉,〈 , 1356,0.78〉,〈 , 12345,0.81〉}
Bước 2: Sau đó ta tiến hành sắp xếp Iorder theo thứ tự giảm dần của trọng số hỗ trợ, chúng ta có:
Iorder =
{〈 , 123456,1〉〈 , 12345,0.81〉〈 , 1356,0.78〉〈 , 1345,0.72〉〈 , 2456,0.6〉}.
Bước 3: Khởi tạo Tabk, và chèn tất cả các tập thỏa điều kiện ngưỡng k = 4 (tập
Bảng 3.3 Tabksau khi chèn các tập có kích thước là 1 thỏa k = 4 Rank FWI ws 1 {B} 1 2 {E} 0.81 3 {D} 0.78 4 {A} 0.72
Bước 4: Tiến hành khởi tạo lớp tương đương {}, với các tập có kích thước là 1 chứa trong tập Lr.
Hình 3.2 WIT-tree với các tập có kích thước là 1 trong Tabk
Bước 5: Tiến hành khởi tạo ra lớp tương đương mới dựa trên lớp tương đương cũ.
Ví dụ:
- Xét B sẽ nối với E, ta có BE với t(BE) = 12345:
o d(BE) = t(B) \ t(E) = 123456 \12345 = 6
ws(BE) = ws(B) -
= 1 – 0.19 = 0.81>minsup
o ws(BE) lớn hơn trọng số tối thiểu của bậc k thứ 4, nên ta thêm
BE vào trong tập LB.
- Ta tiếp tục tiến hành ghép BA, với t(BA) = 1345 và ws(BA) = 0.72
cũng thỏa điều kiện ta chèn tiếp vào tập LB.
Tiếp tục ghép các tập với nhau ta có tập LB
Hình 3.3 Tập LBđược khởi tạo
Bước 6: Tiến hành chèn LB vào trong Tabk, những mục nào có cùng trọng số thì sẽ được xếp cùng với nhau.
Bảng 3.4Tabk sau khi chèn các tập có trong LB thỏa minws
Rank FWI ws
1 {B} 1
2 {E}{BE} 0.81
3 {D}{BD} 0.78
4 {A}{BA} 0.72
Bước 7: Sau khi tạo ra tập LB, bởi vì số lượng các nút trong LB nhiều hơn 1, nên ta tiến hành gọi đệ qui hàm TOP-K-EXTEND để tiến hành tạo ra các nút con của tập LB. Ta ghép BE với BA ta có t(BEA) = 1345 , ws(BEA) = 0.72, ta thêm tập
BEA vào trong tập LBE = vì ws(BEA) không nhỏ hơn bậc k thứ
4 trong Tabk. Ghép BE với BD ta có t(BED) = 135 , ws(BEA) = 0.53, ta xóa bỏ tập này vì ws(BEA) nhỏ hơn bậc k thấp nhất Tabk.
Bước 8: ta tiếp tục thực hiện quá trình để tìm ra tập phổ biến được đánh trọng số thỏa điều kiện ngưỡng k = 4. Giải thuật sẽ dừng lại khi không thể tạo ra được tập phổ biến nào nữa. Ta có Tabk với ngưỡng k = 4 (Bảng 3.5).
Hình 3.4 Cây WIT-tree hoàn chỉnh mới mức k = 4 Bảng 3.5 Tabk với mức k = 4 Rank FWI WS 1 {B} 1 2 {E}{BE} 0.81 3 {D}{BD} 0.78 4 {A}{BA}{EA}{BEA} 0.72 3.3. Tổng kết chương
Trong chương này, luận văn giới thiệu các nghiên cứu liên quan trong khai thác các tập phổ biến trên CSDL có trọng số trong thuật toán WIT-FWI-DIFF sử dụng Diffset để tính trọng số hỗ trợ của các tập phổ biến, và khai thác các tập phổ biến trên CSDL có trọng số. Từ đó trình bày giải thuật WIT-FWI-DIFF-TOP-K dựa trên cấu trúc cây WIT-tree để tiến hành khai thác Top-rank-k của các tập được đánh trọng số dựa trên cơ sở giao dịch được đánh trọng.
CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1 Môi trường thực nghiệm
Các thuật toán được sử dụng trong các thử nghiệm đã được mã hóa vào máy tính cá nhân có cài các phần mềm Visual Studio 2012, Windows 8, với cấu hình máy Intel® Core ™ i5-2520M CPU @2.50 GHz 2.50 GHz, 4 MBs bộ nhớ RAM.
4.2 Đặc điểm cơ sở dữ liệu thực nghiệm
Các kết quả thực nghiệm đã được thử nghiệm trên CSDL liệu được lấy từ trang web Frequent Itemset Mining Dataset Repository: http://fimi.cs.helsinki.fi/data/. Các bộ dữ liệu này đã được sửa đổi bằng cách tạo ra một bảng để lưu trữ các giá trị trọng số của từng item (giá trị trong khoảng từ 1 đến 100) cho mỗi một cơ sở dữ liệu.
Kết quả thực nghiệm được tiến hành khai thác trên các cơ sở dữ liệu chuẩn ở Bảng 4.1. Bảng 4.2 trình bày số lượng các tập được đánh trọng số tìm thấy ứng với từng ngưỡng k, ngưỡng k càng cao thì số lượng các tập được tìm thấy càng cao và không tuân theo tỉ lệ nào do số lượng các tập có cùng ws trên từng cơ sở dữ liệu là khác nhau.
Bảng 4.1 Cơ sở dữ liệu thực nghiệm có chỉnh sửa
CSDL #Trans #Item Tình trạng
BMS-POS 515597 1656 Đã được sửa đổi
Connect 67557 130 Đã được sửa đổi
Chess 3196 76 Đã được sửa đổi
4.3 Kết quả thực nghiệm
Thời gian thực thi để tìm kiếm các tập được đánh trọng số thay đổi tùy theo từng ngưỡng k, và mức k càng cao thời gian thực thi càng lâu.
Cài đặt thực nghiệm cho bài toán Top-rank-k tập phổ biến sử dụng Tidset và Diffset, ta nhận được kết quả thực nghiệm với cùng kết quả tập phổ biến được đánh trọng, nhưng khác nhau về thời gian thực thi.
Từ những kết quả thử nghiệm ở trên, ta thấy được thời gian xử lý WIT-TOP-K (sử dụng Tidset) [13] tốn khá nhiều thời gian khi xử lý các cơ sở dữ liệu có số sản phẩm quá lớn hoặc mức ngưỡng k lớn. Tuy nhiên với thuật toán cải tiến WIT-FWI- DIFF-TOP-K (sử dụng Diffset), hệ thống xử lý khá nhanh và ổn đối với các cơ sở dữ liệu có kích thước không quá lớn, vừa và nhỏ đối với mức ngưỡng thích hợp với từng cơ sở dữ liệu.
Hình 4.1 Biểu đồ thời gian khi khai thác Top-rank-k trên cơ sở dữ liệu Mushroom. 0 50 100 150 200 250 300 350 400 10 20 30 50 50 TH Ờ I GI A N T H Ự C T H I (GI Â Y) NGƯỠNG K MUSHROOM WIT-TOP-K WIT-FWI-DIFF-TOP-K
Hình 4.2 Biểu đồ thời gian khi khai thác Top-rank-k trên cơ sở dữ liệu Chess
Hình 4.3 Biểu đồ thời gian khi khai thác Top-rank-k trên CSDLConnect
0 5 10 15 20 25 30 35 10 20 30 50 Th ờ i g ia n t h ự c th i (g iâ y ) Ngưỡng k Chess WIT-TOP-K WIT-FWI-DIFF-TOP-K 0 10 20 30 40 50 60 70 80 90 100 10 20 30 50 T h ờ i gi an t h ự c th i (gi â y) Ngưỡng k Connect WIT-TOP-K WIT-FWI-DIFF-Top-k
Hình 4.4: Biểu đồ thời gian khi khai thác Top-rank-k trên CSDL BMS-POS
Thuật toán tìm Top-rank-k cho tập phổ biến được đánh trọng sử dụng Diffset để tính trọng số hỗ trợ cho kết quá khá khích lệ khi so sánh với thuật toán có cùng cách tiếp cận và giải pháp, chỉ khác là sử dụng Diffset thay vì Tidset để trọng số hỗ trợ.
Thời gian đáp ứng khá nhanh, khi thử nghiệm với nhiều ngưỡng k, nhất là tập cơ sở dữ liệu giao dịch dày đặc thì kết quả thực thi của WIT-FWI-DIFF-TOP-K nhanh chóng hơn so với thuật toán được đề nghị trước đó WIT-TOP-K, do trọng số hỗ trợ có thể được tính rất nhanh chóng.
Với những CSDL thưa, mật độ trùng lắp các item trên các giao dịch thấp thì WIT-FWI-DIFF-TOP-K cho kết quả tương đương.
0 1 2 3 4 5 6 7 8 10 20 30 50 T h ờ i gi an t h ự c th i (gi â y) Ngưỡng k BMS-POS WIT-TOP-K WIT-FWI-DIFF-Top-k
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1. Kết luận
Đề tài tập trung vào nghiên cứu các thuật toán khai thác các tập phổ biến được đánh trọng số dựa trên các thuật toán khai thác tập phổ biến trên cơ sở dữ liệu giao dịch nhị phân. Thông qua quá trình thực hiện đề tài đã thực hiện được các mục tiêu:
- Nghiên cứu cơ sở lý thuyết về các kỹ thuật khai thác các tập phổ biến như các phương pháp Apriori, FP-tree, IT-tree.
- Tìm hiểu về cơ sở dữ liệu giao dịch có trọng số, trọng số hỗ trợ và các định nghĩa lý thuyết liên quan.
- Tìm hiểu về độ khác nhau của hai tập tương đương Diffset
- Nghiên cứu các thuật toán khai thác các tập phổ biến trên cơ sở dữ liệu giao dịch có trọng số WIT-FWI, WIT-FWI-DIF.
- Cài đặt thực nghiệm để khảo sát kết quả của thuật toán đề xuất: tiến hành khai thác Top-rank-k trên các cơ sở dữ liệu chuẩn như BMS- POS, Chess, Connect, Mushroom.
Từ đó đề xuất ra thuật toán khai thác các Top-rank-k của các tập được đánh trọng số dựa trên cơ sở dữ liệu giao dịch có trọng số áp dụng Diffset để tiến hành tính nhanh các trọng số hỗ trợ. Dựa vào đó để khai thác nhanh các tập được đánh trọng số giúp cho việc khai thác Top-rank-k được xử lý nhanh hơn. Nhờ áp dụng Diffset, chúng tôi có thể tính toán trọng số hỗ trợ dựa trên sự khác nhau của các tập Tidset, nhằm tối ưu về thời gian xử lý cho khai thác các Top-rank-k, cũng như giảm chi phí cho không gian lưu trữ khi khai thác tập cơ sở dữ liệu lớn. Với những cải tiến này, thuật toán đề xuất có hiệu suất tốt hơn so với các thuật toán trước đó với tất cả kết quả. Từ đó ứng dụng các thuật toán này vào trong thực tiễn.
5.2. Nhận xét ưu điểm và hạn chế
Ưu điểm:
Trong những cơ sở dữ liệu dày đặc, kích thước của Diffset là nhỏ hơn so với Tidset. Vì vậy, sử dụng Diffset sẽ tiêu tốn ít dung lượng bộ nhớ, không gian
lưu trữ giảm đáng kể và do đó cho phép các máy tính nhanh trọng số hỗ trợ của các itemset.
Thuật toán phù hợp với tất cả các loại CSDL, nhưng đặc biệt hiệu quả khi khai thác với những CSDL mà mật độ trùng lắp giữa các giao dịch là lớn hoặc vừa như Chess, hoặc Connect-4 được thu thập từ thông tin trạng thái của người chơi trong các game (chứa các nước đi của người chơi), hoặc Mushroom chứa các bản ghi mô tả đặc điểm của các loài nấm khác nhau.
Hạn chế:
Thuật toán đạt được hiệu quả với cơ sở dữ liệu dày đặc, mật độ trùng lắp giữa các giao dịch lớn, nhưng với cơ sở dữ liệu nhỏ thì thời gian thực thi không có sự khác biệt so với sử dụng Tidset.
Với những CSDL thưa như CSDL chứa các giao dịch mua hàng ở các siêu thị lớn như BMS-POS, thì thuật toán cho hiệu quả tương đương so với những thuật toán đã được đề nghị trước đây.
5.3. Hướng phát triển
- Tiếp tục nghiên cứu cách thức khai thác Top-rank-k tập được đánh trọng phổ biến hiệu quả hơn.
- Tiến đến việc khai thác Top-rank-k tập đóng được đánh trọng phổ biến và Top-rank-k tập được đánh trọng tối đại phổ biến.
TÀI LIỆU THAM KHẢO
[1] Agrawal at al. (1993). Mining Association Rule between sets of items in large databases. ACM SIGMOD Record 22 (2) 207-216
[2] Agrawal, R., & Srikant, R. (1994). Fast algorithms for mining association rules. In: VLDB’94 (pp. 487-499)
[3] Cai, C. H., Fu, A. W., Cheng, C. H., & Kwong, W. W. (1998). Mining association rules with weighted items. In: Proceedingss of international database engineering and applications symposium (IDEAS 98) (pp. 68-77).
[4] Ramkumar, G. D., Ranka, S., & Tsur, S. (1998). Weighted association rules: Model and algorithm. In: SIGKDD’98 (pp. 661-666).
[5] Tao, F., Murtagh, F., & Farid, M. (2003). Weighted association rule mining using weighted support and signficance framework. In: SIGKDD’03 (pp. 661-666)
[6] Wang, W., Yang, J., & Yu, P. S. (2000). Efficient mining of weighted association rules. In: SIGKDD 2000 (pp. 270-274)
[7] Han, J., Pei, J., & Yin, Y. (2000). Mining frequent patterns without candidate generation. In: SIGMOD (pp. 1-12)
[8] Zaki et al. (1997). New algorithms for fast discovery of association rules. In: KDD97 (pp. 283-286)
[9] Vo, B., Coenen, F., Le, B (2013). A new method for mining frequent weighted itemsets based on WIT-trees. Expert systems with applications 40(4), 1256-1264.
[10] Deng, Z.H. (2014). Fast mining Top-rank-k frequent patterns by using Node-lists. Expert Systems with Applications 41(4/2), 1763-176
[11] Zaki, M. J. (2004). Mining non-redundant association rules. Data Mining andKnowledge Discovery, 9(3), 223–248.
[12] Zaki, M. J., & Gouda, K. (2003). Fast vertical mining using diffsets. In: SIGKDD’03 (pp.326–335).
[13] Nguyễn Lâm, 2014 Khai thác Top-rank-k tập được đánh trọng số (Luận văn cao học, Học viện kỹ thuật quân sự).