Ph ươ ng pháp FP-tree

Một phần của tài liệu Luận văn: Nghiên cứu và áp dụng một số kỹ thuật khai phá dữ liệu với cơ sơ sở dữ liệu ngành Thuế Việt Nam. docx (Trang 56 - 59)

Phương pháp Frequent pattern growth (FP-growth) là một phương pháp hiệu quả ñể khai phá các frequent itemsets trong các CSDL lớn. Thuật toán khai phá các frequent itemsets mà không có quá trình sinh candidate tốn thời gian mà là yếu tố cần thiết cho Apriori. Khi CSDL lớn, FP-growth ñầu tiên thực hiện một phép chiếu CSDL của các frequent items; sau ñó nó chuyển tới khai phá bộ nhớ chính bằng cách xây dựng cấu trúc dữ liệu gọn nhẹñược gọi là FP-tree. [9]

ðể giải thích thuật toán, ta dùng CSDL giao dịch trong bảng 2.1 và chọn ngưỡng ñộ hỗ trợ cực tiểu là 3.

Thứ nhất, việc duyệt CSDL T lấy danh sách L các frequent items xuất hiện lớn hơn hoặc bằng 3 lần trong CSDL. Những items này là (với ñộ hỗ trợ của nó): L = {(f, 4), (c, 4), (a, 3), (b, 3), (m, 3), (p, 3)}

Các items ñược hiển thị trong thứ tự giảm dần của tần số xuất hiện. Thứ tự này là quan trong vì mỗi ñường ñi của FP-tree sẽ theo thứ tự này.

Thứ 2, gốc của cây, ñánh nhãn ROOT, ñược tạo ra. CSDL T ñược duyệt lần thứ 2. Duyệt giao dịch ñầu tiên dẫn ñến xây dựng nhánh ñầu tiên của FP-tree: {(f, 1), (c, 1), (a, 1), (m, 1), (p, 1)}. Chỉ những items này trong danh sách các frequent items L ñược lựa chọn. Các chỉ số cho các node trong nhánh (tất cả là 1) biểu diễn số tích luỹ của các mẫu tại node này trong cây, và tất nhiên sau mẫu ñầu tiên, tất cả là 1. Thứ tự của các nodes không phải trong mẫu mà là trong danh sách các frequent items L. Với giao dịch thứ 2, vì nó dùng chung các items f, c và a, nó dùng chung tiền tố {f, c, a} với nhánh trước và mở rộng tới nhánh mới {(f, 2), (c, 2), (m, 1), (p, 1),} tăng thêm 1 cho các chỉ số của tiền tố chung. Phiên bản trung gian mới của FP-tree, sau 2 mẫu từ CSDL ñược ñưa ra trong hình 2.6.1. Các giao dịch còn lại có thểñược chèn vào tương tự và cây FP cuối cùng cho thấy trong hình 2.6.2.

ðể thuận tiện cho việc duyệt trên cây, một item header table ñược xây dựng, trong ñó mỗi item trong danh sách L kết nối các nodes trong FP-tree với các giá trị của nó qua các ñường nối node (node-links). Tất cả các nodes f ñược nối trong 1 danh sách, tất cả các nodes c trong danh sách khác,… ðể ñơn giản, chỉ biển diễn danh sách cho các node b trong hình 2.6.2. Dùng cấu trúc cây thu gọn (compact-tree), Thuật toán FP-growth khai phá tập ñầy ñủ các frequent itemsets.

Tương ứng với danh sách L của frequent items, tập ñầy ñủ các frequent itemsets có thể ñược chia thành các tập con (6 với ví dụ này) không chồng nhau: 1) frequent itemsets có item p (cuối của danh sách L); 2) itemsets có item m nhưng không có p; 3) frequent itemsets với b mà không có cả m và p… 6) large itemsets chỉ có f. Sự phân lớp này là hợp lệ cho ví dụ ở ñây, nhưng các luật giống nhau có thể ñược sử dụng cho các CSDL khác và các danh sách L khác.

Dựa trên kết nối liên kết node, ta thu thập tất cả các giao dịch có p tham gia vào bằng cách bắt ñầu từ header table của p và tiếp theo các node- links của p. Trong ví dụ này, 2 ñường (paths) sẽñược chọn trong FP-tree: {(f, 4), (c, 3), (a, 3), (m, 2), ((p, 2)} và {(c, 1), (b, 1), (p, 1)}, trong ñó các mẫu với frequent item p là {(f, 2), (c, 2), (a, 2), (m, 2), ((p, 2) và {(c, 1), (b, 1), (p, 1)}. Giá trị ngưỡng cho trước (3) thoả mãn chỉ frequent itemsets {(c, 3), (p, 3)}, hoặc ñơn giản {c, p}. Tất cả các itemsets khác với p ñều dưới giá trị ngưỡng.

Tập con tiếp theo của frequent itemsets là những cái có m và không có p. FP-tree nhận ra các paths {(f, 4), (c, 3), (a, 3), (m, 2)} và {(f, 4) (c, 3), (a, 3), (b, 1), (m, 1)}, hoặc các samples tích luỹ tương ứng {(f, 2), (c, 2), (a, 2), (m, 2)} và (f, 1), (c, 1),(a, 1), (b, 1), (m, 1)}. Việc phân tích các mẫu phát hiện frequent itemset {(f, 3), (c, 3), (a, 3), (m, 3)} hoặc, ñơn giản, {f, c, a, m}.

Việc lặp lại cùng quá trình cho các tập con 3 ñến 6 trong ví dụ này, thêm các frequent itemsets nữa ñược khai phá. ðây là những itemsets {f, c, a} và {f, c}, nhưng chúng là tập con của frequent itemset {f, c, a, m}. Do ñó, ñáp án cuối cùng trong phương pháp FP-growth là tập các frequent itemsets {{c, p}, {f, c, a, m}}.

Thử nghiệm ñã cho thấy rằng thuật toán FP-growth nhanh hơn thuật toán Apriori. Một vài kỹ thuật tối ưu ñược thêm vào thuật toán FP-growth, và do ñó tồn tại một số các phiên bản khác cho việc khai phá các dãy và các mẫu với các ràng buộc.

Một phần của tài liệu Luận văn: Nghiên cứu và áp dụng một số kỹ thuật khai phá dữ liệu với cơ sơ sở dữ liệu ngành Thuế Việt Nam. docx (Trang 56 - 59)