IT-Tree và thuật toán Apriori

TÓM TẮT Khám phá itemsets là công việc quan trọng trong khai thác dữ liệu. Nhờ đó mà ta có thể khai thác luật kết hợp từ các itemsets đó. Tuy nhiên, không gian tìm kiếm trong giai đoạn tìm các itemsets cần thiết thì rất lớn theo từng bước, độ dài k của các item. Do vậy, chúng ta cần phải quan tâm đến việc rút gọn không gian tìm kiếm. Apriori (2,7) là một tính chất quan trọng, nhờ đó mà ta có thể loại bỏ những itemsets không cần thiết ở các bước sau. Thuật toán Apriori (2,7) là thuật toán kinh điển trong việc khai thác tập phổ biến. IT-Tree (1,3,4,5) (tidset-itemset search tree) là một cấu trúc cây được Zaki và các đồng nghiệp đưa ra, có nhiều điểm giống thuật toán Apriori.

pdf7 trang | Chia sẻ: thanhle95 | Lượt xem: 993 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu IT-Tree và thuật toán Apriori, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
IT-TREE VÀ THUẬT TOÁN APRIORI TRẦN ĐÌNH NGHĨA(*), NGUYỄN QUỐC HUY(**) TÓM TẮT Khám phá itemsets là công việc quan trọng trong khai thác dữ liệu. Nhờ đó mà ta có thể khai thác luật kết hợp từ các itemsets đó. Tuy nhiên, không gian tìm kiếm trong giai đoạn tìm các itemsets cần thiết thì rất lớn theo từng bước, độ dài k của các item. Do vậy, chúng ta cần phải quan tâm đến việc rút gọn không gian tìm kiếm. Apriori (2,7) là một tính chất quan trọng, nhờ đó mà ta có thể loại bỏ những itemsets không cần thiết ở các bước sau. Thuật toán Apriori (2,7) là thuật toán kinh điển trong việc khai thác tập phổ biến. IT-Tree (1,3,4,5) (tidset-itemset search tree) là một cấu trúc cây được Zaki và các đồng nghiệp đưa ra, có nhiều điểm giống thuật toán Apriori. ABSTRACT Mining itemsets is significant work in data mining. Therefore, we can mine association rules from these itemsets. However, the search space in mining itemsets phase is very large if the length k of itemsets grows up. Thus, it is necessary to interest in reducing the search space. Apriori [2] is an important property from which we can remove unnecessary itemsets in the next steps. Apriori algorithm [2] is a classic algorithm in mining frequent itemsets. IT-Tree [1,3] (tidset-itemset search tree) is a tree structure proposed by Zaki et al with many factors the same as Apriori algorithm. 1. GIỚI THIỆU Khai thác các itemsets là công việc rất cần thiết trong lĩnh vực khai thác dữ liệu và rất phổ biến trong các ứng dụng phân tích thị trường, thiết kế catalog, và phân khúc khách hàng. Bài toán khai thác itemsets sẽ rất lớn nếu cơ sở dữ liệu lớn, khi đó không gian tìm kiếm sẽ rất lớn và sẽ không thực hiện được trong thực tế. Do vậy, vấn đề giảm không gian tìm kiếm rất cần thiết để hiện thực bài toán này trong thực tế. Hiện nay thuật toán Apriori được xem là mẫu mực để giải quyết bài toán này, gần đây cấu trúc IT-Tree cũng đóng góp không nhỏ vào bài toán khai thác itemsets. Thuật toán Apriori sinh ra các tập ứng viên để tính trong một lần duyệt bằng việc sử dụng chỉ các itemsets đã được thấy là phổ biến trong lần duyệt trước mà không cần quan tâm đến các giao tác trong cơ sở dữ liệu (CSDL). Cơ sở của điều đó là bất kỳ tập con nào của itemsets phổ biến phải là phổ biến, đây là tính chất Apriori. Vì vậy, các tập ứng cử có k-item có thể được sinh ra bằng cách kết nối các tập phổ biến có (k - 1)-item, và xoá các tập ứng viên nếu nó có chứa bất kỳ một tập con nào mà không phải là phổ biến. Thủ tục này nói chung dẫn đến một số nhỏ hơn nhiều các tập ứng cử viên, nói cách khác nó khá hiệu quả trong việc "tỉa gọn" không gian tìm kiếm. IT-Tree có cách tiếp cận đơn giản là dựa trên phần giao nhau của tập các giao tác để tính độ phổ biến và khái niệm mới lớp tương đương nhằm chia không gian xử lý ban đầu thành tập các không gian nhỏ độc lập giúp cho việc tìm kiếm nhanh hơn. Một điểm mới nữa của phương pháp IT-tree là dựa trên phần khác nhau trên Tidset của các tập dữ liệu nhằm làm giảm kích thước bộ nhớ yêu cầu và giúp cho việc tính độ phổ biến nhanh hơn. (*) , ( ** )Th.S, Khoa Công nghệ thông tin, Trường Đại học Sài Gòn Để giảm kích thước bộ nhớ lưu Tidset, tác giả của IT-Tree là Zaki và Gouda đề nghị lưu Diffset (tập khác nhau giữa Tidset(X) so với Tidset(Y)), Diffset có kích thước khá nhỏ so với Tidset nên dung lượng bộ nhớ giảm đáng kể. IT-Tree thỏa tính chất Apriori. Hình 1.1 Thuật toán Apriori Thuật toán Apriori sử dụng độ hỗ trợ tối thiểu (minsup) để loại bỏ các ứng viên không thoả minsup. Giá trị minsup do người dùng đưa ra. Định nghĩa 1. Độ hỗ trợ của itemset: Độ hỗ trợ (Support) của một tập X trong tập các giao tác D, kí kiệu supp(X) xác định như sau:   D XD/TT supp(X)   ; Miền giá trị: 0 Supp(X) 1 với mọi tập X. Định nghĩa 2. Lớp tương đương: Cho I là tập các danh mục và IX  . Gọi hàm p(X, k) = X[1:k] gồm k phần tử đầu của X và một quan hệ tương đương dựa vào tiền tố K trên itemset như sau: ),(),(,, kYpkXpYXIYX k   . Hai itemset có cùng một lớp tương đương khi và chỉ khi chúng chia sẻ k phần tử đầu. Mỗi nút trong IT-Tree đại diện cặp Itemset-Tidset )(XtX  , thực tế là lớp tiền tố. Tất cả các nút con của nút X thuộc về lớp tương đương vì chúng cùng tiền tố X. Bảng 1.1: Cơ sở dữ liệu giao tác Mã giao tác A C D T W t1 1 1 0 1 1 t2 0 1 1 0 1 t3 1 1 0 1 1 t4 1 1 1 0 1 t5 1 1 1 1 1 t6 0 1 1 1 0 Kí hiệu lớp tương đương là    nlllP ,...,, 21 , trong đó P là nút cha và mỗi li là một mục dữ liệu đơn, đại diện cho nút )( ii PltPl  . Chẳng hạn, nút gốc của cây tương ứng với lớp [] = {A,C,D,T,W}, nút trái cùng của gốc là lớp [A] chứa tất cả các itemset có A là tiền tố, nghĩa là tập {C,D,T,W}. Như vậy, mỗi lớp thành viên đại diện cho một con của nút cha. Một lớp đại diện cho các mục dữ liệu mà các mục dữ liệu đó là tiền tố để có thể mở rộng thành các lớp mới. Rõ ràng, không có cây con nào của một tiền tố không tồn tại được xét. Điểm mạnh của phương pháp lớp tương đương là không gian xử lí ban đầu được chia thành các phần nhỏ độc lập. Đối với mỗi nút gốc con của nút X, có thể xem như một vấn đề mới hoàn toàn; mỗi nút có thể sinh ra các itemset bên dưới. Hình 1.2. Cấu trúc IT-Tree của bảng 1.1 2. SO SÁNH Dựa vào tính chất Apriori, cả 2 đều áp dụng để tỉa các itemsets không cần thiết để giảm không gian tìm kiếm. IT-Tree cũng thoả tính Apriori. Như hình vẽ 1.2, ta thấy các nút con xuất hiện trên một tập giao tác nào đó thì các nút cha chắc chắn cũng sẽ xuất hiện trên tập giao tác đó. Ngược lại, nếu nút cha chỉ cần không xuất hiện trên 1 giao tác nào cả thì tập con – là tập cha hợp với 1 item nào đó – cũng sẽ không xuất hiện trên toàn cơ sở dữ liệu. Từ đó ta có thể tiên nghiệm được nhờ vào tính chất này để loại bỏ cả nhánh lớp tương đương có chứa tiền tố mà đã xác định là không xuất hiện trên cơ sở dữ liệu giao tác. 2.1. Ý tưởng tỉa itemsets giữa thuật toán Apriori và IT-Tree Giải thuật phổ biến nhất của loại này là giải thuật Apriori, trong đó có trình bày tính chặn dưới của itemset thỏa minsup. Giải thuật Apriori sử dụng các tính chất này bằng cách tỉa bớt những ứng viên thuộc tập không phổ biến trước khi tính độ phổ biến của chúng. Cách tối ưu có thể thực hiện được vì các giải thuật tìm kiếm ưu tiên theo chiều rộng (BFS) bảo đảm rằng các giá trị hỗ trợ của các tập của một ứng viên đều được biết trước. Giải thuật Apriori đếm tất cả các ứng viên có k phần tử trong một lần đọc CSDL. Phần cốt lõi của bài toán là xác định các ứng viên trong mỗi giao tác. Thuật toán Apriori tỉa các itemsets không phổ biến. IT-Tree áp dụng lí thuyết lớp tương đương, dựa vào hình vẽ 1.2 là minh hoạ của bảng cơ sở dữ liệu giao tác 1.1, ta thấy các lớp con của một lớp nào đó là: một itemsets gồm các item. Mỗi item xuất hiện trên một số giao tác, và tập các giao tác chứa item đó gọi là tập giao tác (tidset). Một itemset gồm nhiều item, nên tidset của itemset đó là phần giao của các tidset con. Do vậy, trên IT-Tree sẽ không xuất hiện những itemset mà có tập tidset rỗng, điều đó tương đương với việc itemset đó không xuất hiện trên CSDL và sẽ vô nghĩa khi xét đến nó. IT-Tree tỉa các itemsets không xuất hiện trên CSDL. 2.2. Điểm yếu của thuật toán Apriori và điểm mạnh của IT-Tree Như thuật toán Apriori trong hình 1.1, dòng 3 là thủ tục apriori_gen dùng để sinh các ứng viên. Thủ tục apriori_gen sinh ra tập ứng viên mới k-itemsets từ (k-1)-itemsets, tham khảo hình 2.1. Trong thủ tục này một (k-1)-itemsets kết nối với các item khác trong Lk-1 và tạo ra 1 ứng viên mới có k items và tính độ hỗ trợ của ứng viên đó. Nếu ứng viên nào thoả độ hỗ trợ thì lưu vào tập Ck. Để thấy rõ điểm yếu của thuật toán Apriori, giả sử thực hiện một bài toán có độ hỗ trợ tối thiểu (minsup) là 0. Lúc đó cơ sở dữ liệu có n item thì sẽ có 2n ứng viên, nếu n lớn thì số ứng viên quá lớn. Lý do là thủ tục apriori_gen luôn luôn phải thực hiện công việc kết nối, đối với các item vô nghĩa kết nối với (k-1)-itemsets cho ra một k-itemsets vô nghĩa. Sau đó còn phải tốn một thao tác để tính độ hỗ trợ cho itemsets vô nghĩa đó mới có thể xác định itemsets đó không thuộc tập Ck. Ngoài ra, nếu độ hỗ trợ tối thiểu minsup bị thay đổi thì thuật toán sẽ phải thực hiện lại từ đầu, điều này sẽ rất mất thời gian. Hình 2.1. Thủ tục apriori_gen Phương pháp IT-tree có một số điểm mạnh như sau: i) Đọc CSDL một lần và lưu vào tập [] = {1 – itemset}, vì khi sinh các tập phổ biến khác ở mức kế, thuật toán chỉ đơn giản hợp hai tập phổ biến ở mức trên lại thành tập mới, Tidset mới được tính bằng cách giao hai Tidset của các tập tạo ra nó. Như vậy, nếu dung lượng bộ nhớ đủ chứa thì phương pháp này chỉ cần đọc CSDL một lần. ii) Không cần phải sinh ứng viên như họ thuật toán Apriori. Điều này kéo theo không cần phải có thao tác tính độ hỗ trợ không cần thiết để xác định ứng viên đó có phổ biến hay không. Giả sử độ hỗ trơ tối thiểu (minsup) là 0 thì cũng không ảnh hưởng gì đến việc sinh ứng viên. iii) Có thể dùng thuật toán song song để khai thác tập phổ biến. 2,3. Ứng dụng trong bài toán tìm luật kết hợp Bài toán tìm luật kết hợp có 2 giai đoạn. Giai đoạn 1 tìm tập phổ biến, giai đoạn 2 tìm luật kết hợp từ các tập phổ biến đó. Trong việc tìm luật tập phổ biến có các thuật toán tiêu biểu sau Apriori, Apriori-Gen, Apriori-Tid, FP-Growth (2,7). Bài toán luật kết hợp [8,9,10,11,12] Cho một tập các giá trị I, một cơ sở dữ liệu giao dịch D, độ hỗ trợ tối thiểu minsup, độ tin cậy mincof, tìm các luật kết hợp dạng X  Y trên D thoả mãn điều kiện Support(X  Y) ≥ minsup và Confidence(X  Y) ≥ mincof.  Xác định các tập phổ biến: Việc xác định các tập phổ biến gồm có hai bước chính sau đây: - Xác định các tập ứng viên (Ck). - Xác định các tập phổ biến (L) dựa vào tập ứng viên Để xác định tập ứng viên, ta thực hiện các bước sau đây: - Tìm các tập ứng viên một itemset. - Quét CSDL D để xác định độ hỗ trợ của các tập ứng cử viên. Trong vòng đầu tiên, các tập ứng cử viên cũng chính là tất cả các mục có trong CSDL. Tại vòng thứ k (k>1), các tập ứng cử viên được xác định dựa vào các tập phổ biến đã xác định tại vòng k – 1, sử dụng hàm Apriori-gen() (2). Sau khi đã xác định được các tập ứng cử viên, thuật toán quét từng giao dịch trong CSDL để tính độ hỗ trợ của các tập ứng cử viên. Quá trình xác định các tập phổ biến sẽ kết thúc khi không xác định được thêm tập phổ biến nào nữa. Nội dung hàm Apriori-gen(). Hàm Apriori-gen() thực hiện hai bước (2,9): - Bước đầu tiên, Lk – 1 được kết nối với chính nó thu được Ck. - Bước thứ hai, Apriori_gen() xoá tất cả các itemsets từ kết quả kết nối mà có một số tập con (k – 1) không có trong Lk – 1. Sau đó nó trả về itemsets phổ biến kích thước k còn lại.  Sinh các luật kết hợp từ tập phổ biến: Việc phát hiện các tập phổ biến rất tốn kém về mặt tính toán. Tuy nhiên, ngay khi tìm được tất cả các tập phổ biến (l  L), ta có thể dễ dàng sinh ra các luật kết hợp có thể có bằng các bước như sau: - Tìm tất cả các tập con không rỗng x, của tập phổ biến l  L. - Với mỗi tập con x tìm được, ta xuất ra luật dạng x  (l - x) nếu tỉ lệ Support(l)/Support(x) ≥ mincof ( %).  Ứng dụng IT-Tree trong giai đoạn xác định tập phổ biến: Nhận xét thấy chỉ có những itemset nào có tập giao tác khác rỗng thì mới có thể xuất hiện trong giao tác, lúc đó mới tính độ hỗ trợ và so sánh với minsup. Còn lại những itemset có tập giao tác bằng rỗng thì không xuất hiện trong cơ sở dữ liệu đó. Ví dụ một tập các món hàng mà không được bán lần nào hết thì tập món hàng đó không xuất hiện trong hoá đơn bán hàng. Do vậy ta có thể tỉa bớt những tập đó trong quá trình sinh tập k-itemsets từ tập (k-1)-itemsets để giảm bớt không gian xử lí. Để ứng dụng IT-Tree ta cần thay thế hàm Apriori_gen trong thuật toán Apriori thành hàm IT_Tree, như trong hình 2.2, để sinh ra một k-itemset từ hai (k-1)-itemsets ta cần phải xét đến hai yếu tố: 1. Hai (k-1)-itemsets phải cùng tiền tố 2. Giao hai tập giao tác của hai (k-1)-itemsets, nếu tập giao khác rỗng thì k-itemset được thêm vào tập Ck. Hình 2.2: Hàm IT_Tree tìm itemsets phổ biến Trong hàm IT_Tree [1,3,4,5,12] gọi    nlllP ,...,, 21 là lớp tương đương, trong đó P là nút cha và mỗi li là một mục dữ liệu đơn, đại diện cho nút )( ii PltPl  . Dòng 9 gọi đệ quy lại hàm IT_Tree để tính tiếp cho lớp tương đương tính từ nút [Pi]. 3. KẾT LUẬN IT-Tree là hình ảnh minh họa trường hợp tổng quát của thuật toán Apriori. Nhưng với tổ chức như IT-Tree, ta có thể đọc CSDL chỉ một lần và sử dụng tập tidset để tính độ hỗ trợ nếu cần. Để giải quyết một thuật toán hiệu quả về khai thác itemsets trên CSDL lớn, ta cần phải quan tâm đến 2 vấn đề: - Rút gọn không gian tìm kiếm - Giảm thiểu việc đọc thông tin từ cơ sở dữ liệu IT-Tree có thể xem là cấu trúc dữ liệu lí tưởng để cải tiến được những thuật toán có liên quan đến khai thác itemsets, nên nó là công cụ hữu ích nếu chúng ta làm việc với các vấn đề khai thác luật kết hợp và khai thác itemsets có ích. Thuật toán IT-Tree có thể thay thế hoàn toàn các thuật toán họ Apriori để thực hiện tối ưu giai đoạn tìm itemsets theo một tiêu chí nào đó, ví dụ như độ hỗ trợ và độ có ích. Chúng tôi đã tiến hành thử nghiệm thuật toán khai thác các itemsets phổ biến trên một số CSDL giao tác tạo được bằng phương pháp tạo ma trận số ngẫu nhiên. Căn cứ vào các kết quả thử nghiệm và việc phân tích cấu trúc thuật toán, chúng tôi nhận thấy thực hiện theo IT-Tree có những ưu điểm vượt trội so với các thuật toán họ Apriori. Ngoài ra, tính chất Apriori kết hợp với ý tưởng IT-Tree còn có thể áp dụng được trong bài toán khai thác đồ thị con phổ biến là bài toán được nhiều người quan tâm và nghiên cứu trong lĩnh vực khai thác dữ liệu. CHÚ THÍCH 1. IT_Tree([P], minsup) 2. for all li  [P] do 3. [Pi] =  4. for all lj  [P], with j > i do 5. I = lj 6. T = t(li)  t(lj) 7. if Pi .Support()  minsup then 8. [Pi] = [Pi]  { TI  } 9. IT_Tree ([Pi], minsup) [1]. Các từ khoá: tập phổ biến, IT-Tree, tập có ích, itemsets TÀI LIỆU THAM KHẢO 1. Nguyễn Quốc Huy (2008) , “Khai thác itemsets có ích từ cơ sở dữ liệu”, Luận văn thạc sĩ Tin học, ĐH KHTN, ĐHQG TP.HCM. 2. Nguyễn Thanh Thuỷ, Khai phá dữ liệu – Kĩ thuật và ứng dụng. Bài giảng trường thu Hệ mờ và ứng dụng, Hà Nội, tháng 8-2001. 3. Le, B., Nguyen, H., Cao, T.A.,Vo, B.: A Novel Algorithm for Mining High Utility Itemsets. In: IEEE 1 st Asian Conference on Intelligent Information and Database Systems, April 1- 3, 2009, Quang Binh, Vietnam, pp. 13 - 17 (2009). 4. Bac Le., Huy Nguyen., Bay Vo.: Mining high Utility Itemsets from Vertical distributed Databases. In: IEEE RIFV’09, July, 2009, Danang, Vietnam. 5. Bac Le., Tu Bao Ho., Huy Nguyen., Bay Vo.: Parallel Method for Mining High Utility Itemsets from Vertically Partitioned Distributed Databases. In: Springer KES’09, Sep, 2009, Santiago, Chile. 6. C. J. Matheus and P. K. Chan and G. Piatetsky-Shapiro, Systems for knowledge discovery in databases, Ieee Trans. On Knowledge And Data Engineering, vol 5, pp 903-913, 1993 url= 7. Christian Borgelt and Rudolf Kruse, Department of Knowledge Processing and Language Engineering School of Computer Science. Induction of Association Rules: AprioriImplementation.Otto-von-Guericke-UniversityofMagdeburg Universităatsplatz 2, D- 39106 Magdeburg, Germany. 8. Jiawei Han and Yongjian Fu, Dynamic Generation and Refinement of Concept Hierarchies for Knowledge Discovery in Databases,KDD Workshop, pp 157-168, 1994, url= 9. Jiawei Han, Jian Pei, Yiwen Yin. Mining Frequent Patterns without Candidate Generation. SIGMOD Conference 2000. 10. Jiawei Han and Micheline Kamber, Data mining: Concepts and Techniques. Academic Press 2001. 11. J. Han, Y. Cai, and N. Cercone. Data-driven Discovery of Quantitative Rules in Relational Databases. IEEE Trans. Knowledge and Data Eng., 5:29--40, 1993. url= 12. R. Agrawal and R. Srikant. Fast algorithms for mining association rules. In Proc. 1994 Int.Conf.VLDB,Santiago,Chile,Sept.1994. rl=citeseer.nj.nec.com/article/agrawal94fast.html