- Thuật toán COUI-Mine khai phá tập mục lợi ích cao với tối đa là ba lần duyệt cơ sở dữ liệu: hai lần để xây dựng cây TWU-tree và một lần để tìm tập mục lợi ích cao từ tập các ứng viên lợi ích TWU cao. Quá trình khai phá chia thành hai bước giống ý tưởng của thuật toán hai pha do Y.Liu đề xuất nhưng hiệu quả hơn. Thuật toán không sinh ra khối lượng khổng lồ các ứng viên như thuật toán Hai pha do phương pháp tìm các tập mục lợi ích TWU cao được giải quyết theo cách các giao tác cùng lợi ích TWU của nó được nén lên cây TWU-tree, sau đó khai phá cây này hiệu quả theo ý tưởng thuật toán COFI-tree.
- Cây TWU- tree có cấu trúc giống cây FP-tree, trường độ hỗ trợ trong các nút của cây FP-tree được thay thành lợi ích TWU của mục dữ liệu, do đó có thể coi kích thước mỗi nút của hai cây là như nhau, kích thước hai cây về cơ bản giống nhau. Cây TWU-tree có cấu trúc đơn giản, dễ dàng xây dựng và xử lý.
- Các cây COUI-tree thực chất là kết quả chiếu của cây TWU-tree cho từng mục dữ liệu. Cây COUI-tree của mục dữ liệu x biểu diễn các mục dữ liệu có lợi ích TWU lớn hơn hoặc bằng lợi ích TWU của x và cùng xuất hiện với x trong ít nhất một giao tác của cơ sở dữ liệu. Cách làm này đã chia bài toán thành nhiều bài toán nhỏ đơn giản hơn.
- Thụât toán COUI-Mine được phát triển dựa trên cấu trúc cây FP-tree và phương pháp khai phá của thuật toán COFI-tree nên chắc chắn đảm bảo tính dừng và hiệu quả.
Với những nhận xét trên đây có thể kết luận thuật toán COUI-Mine là một thuật toán hiệu quả để khai phá tập mục lợi ích cao.
3.2.5. Khai phá tƣơng tác với cây TWU-tree
Thực tế nhiều khi đòi hỏi phải khai phá cơ sở dữ liệu với các ngưỡng lợi ích khác nhau theo yêu cầu của người sử dụng. Cho cơ sở dữ liệu DB, sau khi khai phá xong tập mục lợi ích cao với ngưỡng δ1, người sử dụng có thể có nhu cầu khai phá với ngưỡng δ2.
Đã có một số nghiên cứu giải quyết vấn đề khai phá tương tác tập mục thường xuyên, song còn rất ít tác giả đề cập đến khai phá tương tác tập mục lợi ích cao. Ở đây, luận văn chỉ đề xuất cách khai phá tương tác tập mục lợi ích cao dựa trên cấu trúc cây TWUI-tree của thuật toán COUI-Mine.
Trước tiên, ta nhận xét rằng các mục dữ liệu trong cây TWUI-tree không nhất thiết phải sắp xếp theo tiêu chí gì. Các mục dữ liệu trong bảng đầu mục của cây TWUI-tree có thể sắp xếp theo một số cách sau:
- Sắp giảm dần theo giá trị TWU của các mục dữ liệu trong cơ sở dữ liệu (như mô tả trong thuật toán COUI-Mine).
- Sắp giảm dần theo số lần xuất hiện của các mục dữ liệu trong cơ sở dữ liệu (như thứ tự cây FP-tree). Sắp các mục dữ liệu theo thứ tự này sẽ tăng khả năng giảm kích thước của cây nhất vì các nhánh của cây sẽ dùng chung nhiều nút hơn.
- Theo một thứ tự nào đó, ví dụ theo trật tự từ điển của tên mục dữ liệu.
Khai phá tương tác có thể thực hiện trên cấu trúc cây TWUI-tree với một vài thay đổi nhỏ. Thuật toán COUI-Mine chỉ cần thay đổi ở một số bước sau sẽ trở thành thuật toán hiệu quả để khai phá tương tác các tập mục lợi ích cao:
* Bước xây dựng cây TWUI-tree: thứ tự các mục dữ liệu có thể theo một trong các cách trình bày ở trên nhưng không tỉa đi mục dữ liệu nào. Nếu sắp theo số lần xuất hiện của mục dữ liệu thì thực hiện như sau:
- Duyệt cơ sở dữ liệu lần thứ nhất, đếm số lần xuất hiện và tính giá trị TWU của từng mục dữ liệu. Sau đó sắp xếp các mục dữ liệu theo thứ tự giảm dần của số lần xuất hiện và tạo bảng đầu mục của cây.
- Duyệt cơ sở dữ liệu lần thứ hai, mỗi giao tác được đọc ra, sắp các mục dữ liệu trong giao tác theo thứ tự trong bảng đầu mục và chèn danh sách đó lên cây.
Như vậy, sau khi xây dựng cây xong, toàn bộ cơ sở dữ liệu đã được nén lên cây TWUI-tree.
* Bước khai phá: Khi khai phá với ngưỡng lợi ích δ1, thuật toán đã xây dựng và khai phá cây TWUI-tree, tìm ra tập các ứng viên CP1 có lợi ích TWUcao. Sau đó thuật toán duyệt lại cơ sở dữ liệu để tìm ra tập các mục lợi ích cao HU1 trong CP1. Bây giờ cần khai phá với ngưỡng lợi ích δ2, rõ ràng là ta không cần xây dựng lại cây TWUI-tree nữa.
Nếu δ2> δ1 thì tập các ứng viên mới CP2 là tập con các ứng viên cũ, CP2 CP1, do đó không cần khai phá cây TWU-tree để tìm ra tập các ứng viên CP2 mà ta chỉ cần duyệt lại cơ sở dữ liệu một lần để tìm ra các tập mục lợi ích cao theo ngưỡng δ2 từ tập các ứng viên cũ CP1.
Nếu δ2< δ1 thì tập các ứng viên mới CP2 là tập cha của tập ứng viên cũ, CP2 CP1, ta cần khai phá lại cây TWUI-tree để tìm ra tập các ứng viên mới CP2. Bước tiếp theo, khi duyệt lại cơ sở dữ liệu để tìm ra tập các mục lợi ích cao theo ngưỡng mới δ2 ta chỉ cần tính lợi ich thực sự của các ứng viên mới xuất hiện, tức là các ứng viên thuộc CP2 - CP1, vì lợi ích của các ứng viên CP1 đã tính ở lần khai phá trước.
Như vậy, cây TWUI-tree được xây dựng một lần, sử dụng khai phá nhiều lần. Với cơ sở dữ liệu DB, sau khi đã khai phá với một ngưỡng lợi ích nào đó, thời gian khai phá với ngưỡng lợi ích khác được giảm đi rất nhiều, không còn thời gian xây dựng cây TWUI-tree nữa.
3.3. Kết luận chƣơng 3
Chương 3 luận văn đã trình bày thuật toán COUI-Mine khai phá tập mục lợi ích cao kiểu FP-growth, dựa trên ý tưởng của thuật toán COFI-tree khai phá tập mục thường xuyên.
- Bước thứ nhất tìm các tập mục lợi ích TWU cao (tập này có thể coi là tập các tập mục ứng viên).
- Bước thứ hai, duyệt lại cơ sở dữ liệu để tính lợi ích thực sự của mỗi tập mục ứng viên, từ đó xác định được tập các tập mục lợi ích cao.
Để tìm tập các tập mục lợi ích TWU cao, dữ liệu được nén lên một cấu trúc cây gọi là cây TWUI-tree (Transaction Weighted Utility Itemsets Tree) dựa trên ý tưởng cấu trúc cây FP-tree. Cây TWUI-tree chứa đủ thông tin để khai phá tập mục lợi ích TWU cao. Khai phá cây TWUI-tree dùng một cấu trúc dữ liệu phụ trợ gọi là cây COUI-tree (Co-Occurrence Utility Items tree).
Sau phần trình bày thuật toán, các đánh giá về độ phức tạp, nhận xét những ưu điểm nổi bật của thuật toán COUI-Mine, vấn đề khai phá tương tác với cây TWU- tree cũng đã được đề cập.
KẾT LUẬN
Mô hình bài toán khai phá tập mục thường xuyên có nhiều ứng dụng thực tiễn nhưng cũng có những hạn chế, không đáp ứng nhu cầu người sử dụng trong tình huống nhất định. Ràng buộc về độ hỗ trợ của tập mục thường xuyên chỉ mang ngữ nghĩa thống kê, không phản ánh được mức độ quan trọng khác nhau của các thuộc tính cũng như đặc tính dữ liệu vốn có của chúng trong cơ sở dữ liệu. Nhằm khắc phục hạn chế của mô hình bài toán khai phá tập mục thường xuyên, các nhà nghiên cứu đã mở rộng nó theo nhiều hướng khác nhau, trong đó có việc thay ràng buộc về độ hỗ trợ bằng rằng buộc về lợi ích.
Khai phá tập mục lợi ích cao là khám phá tất cả tập mục X trong cơ sở dữ liệu đem lại lợi ích u X , trong đó là ngưỡng quy định bởi người sử dụng.
Đáng tiếc là ràng buộc lợi ích cao không thoả mãn tính chất Aprioi. Do đó, việc tìm kiếm, phát hiện tập mục lợi ích cao không thể thực hiện được như trong khai phá tập mục thường xuyên. Cần phải nghiên cứu tìm ra những thuật toán hiệu quả cho việc phát hiện tập mục lợi ích cao. Trong những năm gần đây, vấn đề này đã và đang thu hút nhiều nhà nghiên cứu trong và ngoài nước.
Luận văn của học viên nhằm nghiên cứu mô hình bài toán với một số thuật toán quan trọng khai phá tập mục lợi ích cao trong cơ sở dữ liệu lớn. Với ba chương nội dung, luận văn đã đề cập được những vấn đề sau:
- Khái quát về khai phá dữ liệu, bao gồm định nghĩa khai phá dữ liệu, tóm tắt quá trình khai phá, các kỹ thuật, các ứng dụng và thách thức.
- Trình bày bài toán khai phá tập mục thường xuyên với hai thuật toán quan trọng là Aprioi và FP-Growth, làm cơ sở cho việc nghiên cứu các thuật toán khai phá tập mục lợi ích cao.
- Trình bày chi tiết mô hình bài toán khai phá tập mục lợi ích cao.
- Nghiên cứu bốn thuật toán quan trọng khai phá tập mục lợi ích cao, đại diện cho hai cách tiếp cận: kiểu Aprioi và kiểu FP-Growth. Đó là các thuật toán Umining, Umining-H, HUMining và COUI-Mine. Các thuật toán này đã được tìm hiểu một cách
kỹ lưỡng cả về cơ sở lý thuyết và thuật toán. Chúng cũng được minh hoạ bằng ví dụ cụ thể. Chúng tôi cũng đã thực hiện các phân tích về mặt lý thuyết đối với mỗi thuật toán, từ đó đưa ra các đánh giá về tính hiệu quả, các ưu, nhược điểm của chúng.
Hiện nay, khai phá tập mục lợi ích cao đã trở thành một kỹ thuật quan trọng của khai phá dữ liệu vì tính khả dụng của nó trong nhiều lĩnh vực. Theo các tài liệu [2,11,15,18], trong số bốn thuật toán khai phá tập mục lợi ích cao luận văn trình bày thì thuật toán COUI-Mine được đánh giá là thuật toán hiệu quả nhất. Mặc dù đã có những ý định việc thực hiện việc lập trình và tiến hành tính toán thử nghiệm thuật toán COUI- Mine trên các tập dữ liệu thực tiễn, nhưng do gặp phải những khó khăn khách quan và thời gian hạn hẹp, tác giả luận văn chưa thực hiện được ý định này. Hướng tiếp theo của đề tài sẽ là:
- Nghiên cứu cài đặt các thuật toán HUMining và COUI-Mine, đồng thời thực hiện các tính toán thử nghiệm trên một số cơ sở dữ liệu lớn có sẵn trên internet.
- Nghiên cứu vấn đề song song hoá các thuật toán khai phá tập mục lợi ích cao. - Nghiên cứu phát triển bài toán khai phá tập mục lợi ích cao có yếu tố thời gian.
TÀI LIỆU THAM KHẢO
[1] Nguyễn Thanh Tùng (2007), Khai phá tập mục lợi ích cao trong cơ sở dữ liệu. Tạp chí Tin học và Điều khiển học, tập 23, số 4, trang 364-373.
[2] Nguyễn Huy Đức (2009), Khai phá tập mục cổ phần cao và lợi ích cao trong cơ sở dữ liệu. Luận án tiến sĩ, Viện Công nghệ Thông tin, Hà Nội 2009. [3] R. Agrawal, T. Imielinski, and A. N. Swami (1993), Mining association rules
between sets of items in large databases. In Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, Washington, D.C.
[4] R. Agrawal and R. Srikant (1994), Fast algorithms for mining association rules. In Proceedings of 20th International Conference on Very Large Databases, Santiago, Chile.
[5] El-Hajj M. and Zaiane Osmar R. (2003), “Non recursive generation of frequent k-itemsets from frequent pattern tree representations”, In Proc. of 5th International Conference on Data Warehousing and Knowledge Discovery (DaWak’2003), pp.371-380.
[6] El-Hajj M. and Zaiane Osmar R. (2003), “COFI-tree Mining: A New Approach to Pattern Growth with Reduced Candidacy Generation”, In Proc. 2003 Int’l Conf. on Data Mining and Knowledge Discovery (ACM SIGKDD), Chicago, Illinois, USA.
[7] Grahne G. and Zhu J. (2003), “Efficient using prefix-tree in mining frequent itemsets”, in Proc. IEEE ICDM Workshop on Frequent Itemset Mining Implementations, Melbourne, FL.
[8] H. Mannila (1996), Data mining: machine learning, statistics, and databases.
Eight International Conference on Scientific and Statistical Database Management, Stockholm June 18-20, 1996, p. 1-8.
[9] Han J., and Kamber M. (2000), Data Mining: Concepts and Techniques, Morgan Kanufmann.
[10] Han J. (2004), “Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach”, Data Mining and Knowledge Discovery, Vol. 8, pp. 53–87.
and future directions”. Data Min Knowl Disc, Vol. 15, pp. 55-86.
[12] Han J., Pei J., and Yin Y. (2000), “Mining frequent patterns without candidate generation”, In ACM SIGMOD Int. Conference on Management of Data, pp. 1-12.
[13] Liu Y., W. Liao K., and Choudhary A. (2005), “A fast high utility itemsets mining algorithm”, in Proc. 1st Intl. Conf. on Utility-Based Data Mining, Chicago Chicago Illinois, pp.90-99, USA.
[14] R. Chan, Q. Yang, and Y. D. Shen (2003), Mining High Utility Itemsets. In In Proceedings of 3rd IEEE International conference on Data Mining, Melbourne, Florida.
[15] Yao H., Hamilton H. J. (2006), “Mining Itemsets Utilities from Transaction Databases”, Data and Knowledge Engeneering, Vol. 59, issue 3.
[16] Yao H., Hamilton H. J., and Butz C. J. (2004), “A foundational Approach to Mining Itemset Utilities from Databases”, Proceedings of the 4th SIAM International Conference on Data Mining, Florida, USA.
[17] Yao H., Hamilton H. J., and Geng L. (2006), “A Unified Framework for Utility Based Measures for Mining Itemsets”, UBDM’06 Philadelphia, Pennsylvania, USA.
[18] Chowdhury Farhan Ahmed, Syed Khairuzzaman Tanbeer, Byeong-Soo Jeong, Young-Koo Lee (2011), HUC-Prune: an efficient candidate pruning technique to mine high utility patterns, Applied Intelligence , Vol. 34, Nr. 2 181-198.