Tương tự cho các cơ sở mẫu điều kiện còn lại, chúng ta thu được:
{} c:3 {} f:3 c:3 a:3
23
Hạng mục
Cơ sở mẫu điều kiện Cây điều kiện FP tree
p {(fcam:2), (cb:1)} {(c:3)}|p
m {(fca:2), (fcab:1)} {(f:3, c:3, a:3}|m
b {(fca:1), (f:1), (c,1)} {}
a {(fc:3)} {(f:3, c:3}|a
c {(f:3)} {(f:3)}|c
f {} {}
Bảng 2.11 Bảng kết quả cây FP-Tree điều kiện từ mỗi cơ sở mẫu điều kiện
(3)Khai thác đệ qui cây FP-Tree điều kiện phát triển mẫu phổ biến cho đến khi
cây FP-Tree điều kiện chỉ chứa 1 đường dẫn duy nhất tạo ra tất cả các tổ hợp của mẫu phổ biến:
Xây dựng tập phổ biến dựa trên nguyên lý mở rộng mẫu phổ biến và tính chất mở rộng mẫu:
Giả sử là tập phổ biến trong CSDL, B là cơ sở mẫu điều kiện của ; là
một hạng mụcset trong B. Khi đó là tập phổ biến trong CSDL khi và chỉ
khi là phổ biến trong B. Ví dụ 2.13:
“abcdef” là mẫu phổ biến khi và chỉ khi “abcde” là mẫu phổ biến và “f” là phổ biến trong tập các giao dịch chứa “abcde”
Trường hợp cây chỉ có đường dẫn đơn (Đường dẫn đơn là đường dẫn chỉ có 01 đường đi duy nhất từ nút gốc đến nút lá)
Giả sử cây FP-Tree là cây T có một đường dẫn đơn P; tập phổ biến cuối cùng của T sinh ra bằng cách liệt kê tất cả các tổ hợp của đường dẫn con thuộc P. Ví dụ 2.14:
Cây FP-Tree điều kiện cho p là cây có đường dẫn đơn
Hạng
mục Độ phổ biến
c 3
Hình 2.11 Tất cả mẫu phổ biến liên quan đến p là: p:3 và cp:3
{} c:3
24
Cây FP-Tree điều kiện cho m là cây có đường dẫn đơn:
Hạng mục Độ phổ biến f 3 c 3 a 3
Hình 2.12 Tất cả mẫu phổ biến liên quan đến m là: m:3, fm:3, cm:3, am:3, fcm3:, fam:3, cam:3, fcam:3
Trường hợp cây không chỉ có đường dẫn đơn: Xem xét các cây FP-Tree chỉ có 01 đường dẫn đơn và các cây FP-Tree gồm nhiều nhánh một cách riêng biệt.
Việc phân chia cây nhiều nhánh thành cây có một đường dẫn đơn thực hiện đệ quy gọi FP_Growth(FP-Tree, Null).
Nhận xét thuật toán FP-Growth:
Ưu điểm:
Hiệu quả hơn so với Apriori.
Phân chia và kiểm soát quá trình xử lý.
Sử dụng cây FP-Tree để biểu diễn các mẫu phổ biến thì dữ liệu giảm rất đáng kể so với cách biểu diễn trong CSDL.
Nhược điểm:
Không thể xây dựng cây FP-Tree trong bộ nhớ chính khi CSDL là lớn.
Mất nhiều thời gian và gặp trở ngại khi cập nhật lại cây khi cây tăng trưởng về mặt kích thước.
Đánh giá:
Điểm nổi bật của thuật toán này là chỉ quét cơ sở dữ liệu hai lần, và không cần phát sinh tập ứng viên. Chính điều này làm cho FP-Growth nhanh hơn Apriori. Trong nghiên cứu của mình, Han đã chứng minh rằng phương pháp của ông nhanh hơn so với các phương pháp tuần tự khác trong việc khai thác tập phổ biến như các thuật toán Apriori,…
{}
f:3 c:3 a:3
25
2.3.3. Thuật toán CLOSET
Thuật toán CLOSET [6] là mở rộng của thuật toán FP-growth [4], trong đó xây dựng một cây FP-Tree và đệ quy có điều kiện cây FP-Tree từ dưới lên để khai thác tập đóng:
1. Cho Y là tập các mục trong f_list sao cho chúng xuất hiện trong mọi giao tác
của DB, thêm XY vào FCI nếu nó không phải là một tập con của FCI với cùng
độ phổ biến;
2. Xây dựng FP-Tree cho DB, các mục đã được trích xuất nên được loại trừ
3. Trích xuất các tập đóng phổ biến nếu có thể
4. Xây dựng cơ sở dữ liệu có điều kiện cho tất cả các hạng mục còn lại trong f_list, đồng thời tính toán độ phổ biến cho mục cục bộ của các cơ sở dữ liệu có điều kiện này.
5. Đối với mỗi mục còn lại trong f_list, bắt đầu từ mục cuối cùng, gọi đệ quy CLOSET (iX; DB|i; f_listi; FCI) nếu iX không phải là một tập con của bất kỳ tập phổ biến đóng với cùng độ phổ biến, khi đó DB|i ký hiệu i-cond DB và f_listi
là mục phổ biến tương ứng.