Thủ tục FP_Growth

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số phương pháp khai phá dữ liệu sinh luật kết hợp Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 48 - 51)

Input: Cây FP-tree gốc T, mẫu đang xét X, ngưỡng độ hỗ trợ cực tiểu minsup, tập mục phổ biến hiện tại L.

Output: Tập mục phổ biến L.

Thực hiện: FP_Growth(T, X, minsup, L).

(1) If (T = null or T has only single path) { // T rỗng hoặc chỉ chứa 1 đường đơn.

(2) Foreach (Y in AllCombination(T)) { // Duyệt mọi tổ hợp xây dựng bởi đường đơn. (3) // Bổ sung tập mục phổ biến với độ hỗ trợ bằng độ hỗ trợ nhỏ nhất trên đường: (4) L = L  {(YX) with support=MinSupport(YX)};

(5) } (6) } (7) Else {

(8) Foreach (x in T.HeaderTable) { // Duyệt mọi mục trong bảng Header. (9) XNew = {x}  X; // Xác định mẫu mới.

(10) DNew = CreateDB(T, x); // Xác định CSDL phụ thuộc mẫu. (11) TNew = CreateFPTree(DNew, minsup); // Dựng cây FP-tree.

(13) } (14) } (15) Return;

3.2.3. Tổng kết

Hình 3.5: So sánh FP-Growth và Apriori.

Qua minh hoạ trên phần nào cho ta thấy thuật toán FP-Growth nhanh hơn và tốt hơn thuật toán Apriori đặc biệt đối với các CSDL lớn và dày, đó là do những ưu điểm sau đây:

(1) Thuật toán FP-Growth sử dụng chiến lược chia để chế ngự (divide and conquer) và áp dụng ý tưởng khai phá phát triển (growth), hoàn toàn không sinh ứng cử.

(2) Sử dụng cấu trúc dữ liệu đặc biệt FP-tree để nén dữ liệu và tăng tốc khai phá trong khi vẫn duy trì đầy đủ thông tin cho khai thác các mẫu phổ biến. Cây FP-tree không bao giờ lớn hơn CSDL gốc và nếu áp dụng kỹ thuật sắp xếp giảm dần theo tần suất thì các mục phổ biến sẽ được chia sẻ nhiều hơn, độ nén sẽ cao hơn và tốc độ khai phá nhanh hơn. Độ cao của cây tổng thể chỉ bằng kích thước của giao dịch lớn nhất (sau khi đã lọc bỏ các mục không thoả minsup).

(3) Áp dụng tốt cho cả mẫu phổ biến ngắn hay dài, CSDL thưa hay dày. Chỉ quét CSDL đúng 2 lần.

(4) Tính đúng đắn của thuật toán FP-Growth đã được chứng minh [106]. Thời gian xây dựng cây FP-tree là O(n) với n là số lượng giao dịch. Tuy nhiên tổng thời gian khai phá trên các cây FP-tree phụ thuộc là tương đối khó đánh giá nhưng nó tỉ lệ với số mẫu phổ biến được sinh ra.

3.3. Thuật toán Charm

3.3.1. Giới thiệu

Như đã giới thiệu ở trên, quá trình khai phá luật kết hợp gồm 2 pha:

+ Pha 1: tìm tất cả các tập mục phổ biến. Ở pha này đòi hỏi sự tính toán lớn, những thuật toán như Apriori đòi hỏi phải duyệt CSDL nhiều lần. Không những vậy trong các tập mục phổ biến được sinh ra có nhiều tập mục không cần thiết (hay tập mục dư thừa - redundant itemsets).

+ Pha 2: sinh các luật từ các tập mục phổ biến tìm được. Ở pha này đòi hỏi sự tính toán ít hơn, song gặp phải vấn đề là có thể sinh ra quá nhiều luật kết hợp, vượt ra khỏi sự kiểm soát của khai phá hoặc người dùng và cũng giống Pha 1 là trong đó có nhiều luật không cần thiết (hay luật dư thừa - redundant rules).

Có một số giải pháp được đề xuất nhằm giảm bớt việc tính toán trong pha 1 và tránh sinh ra các luật dư thừa trong pha 2:

+ Giải pháp thứ nhất là chỉ cần khai phá các tập mục phổ biến cực đại (maximal frequent itemsets) ở pha 1, không cần khai phá tất cả các tập phổ biến. Số lượng cá tập mục phổ biến cực đại khai phá được sẽ nhỏ hơn rất nhiều so với số tập mục phổ biến. Tuy nhiên, nếu chỉ khai phá tập mục phổ biến cực đại thì có thể làm mất một số thông tin và vì vậy có thể mất một số luật.

+ Giải pháp thứ hai là chỉ cần khai phá các tập mục đóng phổ biến (closed itemsets) ở pha 1, không cần khai phá tất cả các tập phổ biến. Số lượng các tập mục đóng phổ biến khai phá được sẽ nhiều hơn số tập mục phổ biến cực đại nhưng nó vẫn nhỏ hơn rất nhiều so với số tập mục phổ biến. Tuy nhiên, mỗi tập mục đóng phổ biến lại xác định cho tập tất cả các tập mục phổ biến là tập con của nó. Vì vậy từ tập mục đóng phổ biến ta có thể sinh tất cả các luật cần thiết.

3.3.1.1. Một số khái niệm Ta ký hiệu: Ta ký hiệu:

+ I là tập các mục đơn (Itemset).

+ T = {1, 2,..., n} là tập các định danh của các giao dịch (Tidset). Khi đó CSDL là quan hệ nhị phân   I T.

Nếu mục i xuất hiện trong giao dịch t ta viết (i, t) hoặc i t.

Tập XI gọi là tập mục và YT là tập các định danh. Để thuận tiện, ta ký hiệu tập mục

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Một số phương pháp khai phá dữ liệu sinh luật kết hợp Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 48 - 51)

Tải bản đầy đủ (PDF)

(83 trang)