Phương pháp FP-Tree

Một phần của tài liệu Khai phá tập phổ biến trên cơ sở dữ liệu tăng trưởng trong lĩnh vực mua bán hàng (Trang 30 - 32)

7. Bố cục luận văn

1.2.4. Phương pháp FP-Tree

Apriori là phương pháp tìm ra những tập phổ biến trong CSDL, từ đó rút trích được những quy luật có ích. Tuy nhiên Apriori có nhiều hạn chế:

- Quét CSDL nhiều lần.

- Bùng nổ số lượng tập ứng viên khi phát sinh tập ứng viên

Để khắc phục được những nhược điểm của phương pháp Apriori thì Han et al. [9] đã đề xuất phương pháp FP-tree, đó là một phương pháp khai phá tập phổ biến mà không cần phát sinh toàn bộ tập ứng viên. Phương pháp này sẽ nén các CSDL lớn vào một cấu trúc gọi là FP-tree (Frequent-Pattern tree). Cấu trúc này:

- Có mật độ cao, nhưng hoàn thiện cho việc khai phá các mẫu phổ biến. - Tránh được các chi phí khác phải bỏ ra khi quét CSDL nhiều lần.

Tác giả còn đưa ra một phương pháp khai phá các mẫu phổ biến hiệu quả dựa trên cấu trúc FP-tree gọi là FP-growth. Phương pháp này sử dụng phương thức “chia để trị”, phân tích các tác vụ khai phá dữ liệu thành các tác vụ khác nhỏ hơn và tránh được việc phát sinh toàn bộ tập ứng viên. Ưu điểm nổi bật của phương pháp FP-tree là chỉ quét dữ liệu 2 lần. Ngoài ra nó còn có các ưu điểm sau:

FP-tree lưu trữ tất cả các thông tin có liên quan đến quá trình khai phá các tập phổ biến.

Kích thước của cây được giới hạn bởi tần xuất xuất hiện của các thuộc tính. Chiều cao của cây được giới hạn bởi số lượng tối đa các thuộc tính trong một giao tác.

Tuy nhiên bản thân phương pháp FP-tree và thuật toán khai phá tập phổ biến trên cấu trúc FP-tree cũng có những điểm hạn chế:

• Cần 2 lần để quét lại CSDL: lần đầu để tìm tập 1-itemset và lần thứ 2 để xây dựng cây FP-tree

• Việc xây dựng cây FP-tree cho các CSDL lớn gặp khó khăn, không đủ bộ nhớ để lưu trữ.

• Khi có những giao tác mới được thêm vào CSDL thì cây FP-tree cần được cập nhật như thế nào.

Thuật toán xây dựng cây FP

Function createFPtree()

INPUT: CSDL D chứa các giao dịch, ngưỡng minsup. OUTPUT: Cây FP-tree

Bước 1: Duyệt D và tính độ phổ biến của các item. Sắp xếp các item theo thứ tự

giảm dần của độ phổ biến, ta được tập kết quả L.

Bước 2: Tạo nút gốc cho cây T, ký hiệu là root. Duyệt D lần thứ 2. Ứng với mỗi

giao tác trong D thực hiện 2 công việc sau:

• Chọn và sắp xếp những item phổ biến theo thứ tự trong f_list.

• Giao dịch đang xét được lý hiệu như sau [p|r_list] gồm 2 phần, p là phần tử item đầu tiên và P là những item còn lại của giao dịch (không bao gồm những item không thỏa ngưỡng phổ biến). Gọi hàm insert_tree( [p|r_list], root ).

Nội dung hàm insert_tree(List: [p|r_list], Node)

Bước 1: Kiểm tra nếu tồn tại nút con (child) được trỏ trực tiếp từ Node và được

gán nhãn là p.item-name (hay child.item-name = p.item-name) thì tăng chỉ số đếm của nút child lên 1. Nếu không tồn tại thì tạo một nút con mới (child), khởi tạo chỉ số đếm của nút child này là 1, sau đó tạo các liên kết của nút child này với Node và ngược lại, liên kết với nút có cùng item-name.

Bước 2: Kiểm tra nếu r_list chưa rỗng thì gọi hàm insert_tree(r_list, child).

Trong quá trình xây dựng cây FP-tree một Header_Table được xây dựng để giúp đỡ cho quá trình duyệt cây FP-tree. Header_Table bao gồm các item trong tập large

itemset cùng với tần số xuất hiện của item đó trong CSDL và một con trỏ (frequency head) dùng để liên kết đến nút đầu tiên có nhãn tương ứng với item đó trong cây FP-

tree. Nếu nhiều hơn một nút có cùng một nhãn thì những nút đó sẽ được liên kết tuần tự với nhau. Các nút trong cây FP-Tree liên kết đơn với nhau.

Một phần của tài liệu Khai phá tập phổ biến trên cơ sở dữ liệu tăng trưởng trong lĩnh vực mua bán hàng (Trang 30 - 32)

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

(101 trang)