Các thuật toán lai

Một phần của tài liệu Khai thác k mẫu tuần tự phổ biến dựa trên roaring bitmap (Trang 39 - 44)

2.3 CÁC THUẬT TOÁN KHAI THÁC MẪU TUẦN TỰ

2.3.4 Các thuật toán lai

Một số thuật toán kết hợp một số đặc trưng trong số ba phân loại đã đề xuất ở trên. Ví dụ, PLWAP [14] kết hợp phép chiếu cây và đặc trưng phát triển mẫu từ phân loại phát triển mẫu và đặc trưng mã vị trí từ phân loại loại trừ sớm. Tất cả những đặc trưng này là đặc điểm chủ chốt của loại này, vì vậy chúng ta coi PLWAP là thuật toán lai giữa phát triển mẫu và loại trừ sớm. Có những đặc trưng khơng thể kết hợp cùng vào một kỹ thuật như “duyệt CSDL nhiều lần” và “chiếu cây”, vì “chiếu cây” được dùng như là một dạng biến đổi của CSDL trong bộ nhớ và tránh phải đếm độ hỗ trợ, nó khơng thể kết hợp với “duyệt CSDL nhiều lần”.

Thut toán SPADE

Đây là thuật toán lai giữa kỹ thuật dựa trên Apriori và phát triển mẫu. SPADE [5] là một đóng góp lớn, và vẫn được coi là một thuật toán khai thác mẫu tuần tự chuẩn. Nó dựa trên lý thuyết dàn để tạo ra chuỗi ứng viên. SPADE khám phá các chuỗi gồm tập con của các item, không chỉ chuỗi item đơn như trường hợp của Apriori, nó cũng khám phá chuỗi với thời gian tùy ý giữa các item, và không chỉ là các chuỗi con kề. Ví dụ minh họa SPADE với một số sửa đổi CSDL ở bảng 2.2 được trình bày ởbảng 2.10, trong đó các giao dịch được phân phối lại trên chuỗi dữ liệu, và bổ sung thêm giao dịch mới là <(ade)>. Với minSup = 3 và tính chất của

chuỗi con, sửdụng thuật toán sinh luật của Zaki 2001 [5], các chuỗi phổ biến được tạo như sau. Chuỗi phổ biến 1-sequences là <a>, <b>, <e>. Chuỗi phổ biến 2-

sequences là <(ab)>, <(ae)>, <(a)(a)>, <(a)(e)>, <(be)>, <(b)(a)>, và <(b)(e)>,

còn chuỗi phổbiến 3–sequences là <(a)(ae)> và <(b)(ae)>. Tất cả đều có độhỗtrợ là 3.

Bảng2.9 CSDL chuỗi ví dụ cho SPADE, biến đổi từ CSDL chuỗi ở bảng2.2

SID TID, khong thi gian Chui truy cp

1 t1, 10 <bcbae> 1 t2, 15 <bacbae> 2 t2, 15 <abe> 2 t2, 25 <abebd> 3 t1, 10 <abad> 3 t2, 25 <ade>

Hình2.5Dàn được tạo ra bởi các chuỗi phổ biến cực đại

SPADE áp dụng lý thuyết dàn để tạo ra dàn chứa các chuỗi phổ biến, ví dụ minh họa áp dụng dàn được biểu diễn ở hình 2.6. SPADE thực hiện với 3 bước chính, trước hết tìm chuỗi phổ biến 1-sequences theo cách như Apriori, hai là tìm chuỗi phổ biến 2-sequences. Bước 3, duyệt dàn để đếm độ hỗ trợ và liệt kê chuỗi phổ biến. Có thể duyệt dàn theo chiều rộng hoặc chiều sâu. Cả hai trường hợp đều tạo ra Id-list (dạng biểu diễn dọc của CSDL chuỗi) cho mỗi chuỗi cơ sở và chuỗi phổ biến trên dàn bằng cách chuyển CSDL dạng ngang thành dọc. Tìm kiếm theo chiều sâu tốt hơn theo chiều rộng vì nó giảm đáng kể các tính tốn và số ID-list tạo

ra. Việc loại trừ cũng được áp dụng ở bước 3 khi lấy giao các ID-list (sử dụng kết theo thời gian) và đếm độ hỗ trợ để đảm bảo ràng các chuỗi con tạo ra từ phép giao là phổ biến.

Hình2.6 Các lớp tương đương {[a]θ1, [b]θ1, [e]θ1} sinh bởi quan hệ θk trên S

Vấn đề quan trọng khi sử dụng lý thuyết dàn là dàn có thể phát triển rất lớn và khơng thểvừa với bộ nhớ chính, dẫn đến tìm kiếm theo chiều sâu hay rộng đều rất lâu. Để giải quyết vấn đề này, Zaki 2001 [5] đãđề xuất chia nhỏ dàn thành những phần nhỏ gọi là lớp tương đương, trong đó mỗi lớp có thể tải vào bộ nhớ và được khai thác độc lập nhau trong bộnhớ chính. Định nghĩa ánh xạp: (S, N)→ Svới S là tập chuỗi và N là tập các sốngun khơng âm, và p(X,k) = X[1:k]. Nói cách khác, p(X,k) trảvềtiền tố độdài k của X. Hai chuỗi được xếp vào cùng một lớp nếu chúng

cùng có tiền tố độ dài k. Mối quan hệ này được gọi là quan hệ tương đương dựa trên tiền tố, kí hiệu làθk. Với CSDL ởbảng 2.10, dàn các mẫu được phân thành các lớp tương đương bởi quan hệθknhư hình 2.7.

Thut toán PLWAP

sửdụng thuật toán gán mã nhị phân để xây dựng cấu trúc cây WAP liên kết mã vị trí theo thứtự trước, trong đó mỗi nút trên cây được gán một mã nhị phân sửdụng suốt quá trình khai thác để xác định chuỗi nào là chuỗi hậu tốcủa sựkiện đứng sau, và để tìm tiền tố tiếp theo cho hậu tố đã khai thác mà không cần phải xây dựng lại cây WAP trung gian.

Ví dụ, xét CSDL chuỗi ở bảng 2.2, với minSup=3. Hình 2.8a biểu diễn cây PLWAP được xây dựng từcây WAP ở hình 2.2a, mỗi nút chứa thơng tin về độ hỗ trợ và mã vị trí nhị phân. Mã vị trí của mỗi nút được gán theo luật sau: nút gốc có mã vịtrí rỗng, nút con trái nhất (L) của nút bất kỳ(P) có một mã vị trí tương đương với việc thêm 1 vào mã vị trí của nút cha (P) của nó, cịn mã vị trí của nút con bất kỳ khác là “0”dạngnút:đếm độhỗtrợ:mã vịtrí, và suốt q trình khai thác, các nút

con cháu của một nút cha P trên cùng cây hậu tố được xác định nhanh chóng để cho biến đếm độ hỗ trợ của P được dùng suốt quá trình khai thác mà khơng phải khảo sát biến đếm của các nút con và không phải xây dựng cây WAP điều kiện trung gian như trường hợpở thuật toán WAP-mine. Ezeife và Lu 2005 [14] đã phát biểu rằng: một nútα là một xuất hiện của nútβ khác nếu và chỉ nếu mã vị trí củaα

khi thêm “1” vào cuối bằng với x số bit đầu tiên trong mã vịtrí củaβ, với x là sốbit trong mã vị trí củaα + 1. Trong khi xây dựng cây PLWAP (hình 2.8a), duy trì một bảng liên kết đầu cho tất cảchuỗi phổbiến 1-sequencestương tựcây WAP.

(b) fs = {a} (c) fs = {a, ab}

(d) fs = {a, ab, abe, ae} (e) fs = {a, ab, abe, ae, b}

Hình2.7 Khai thác cây trong thuật toán PLWAP

Mỗi item trong bảng cũng là một con trỏ đầu liên kiết đến một hàng đợi của tất cả các nút trên cây, đó là các xuất hiện của chuỗi phổ biến 1-sequences này, những nút này được liên kết trong một hàng đợi theo mơ hình thứ tự trước. Ở cây WAP, các nút được liên kết theo thứtự mà chúng được chèn vào cây. Mơ hình liên kết thứ tự trước là một yếu tố mấu chốt khác trong PLWAP mà giúp cho việc duyệt cây theo chiều sâu đểtìm kiếm có điều kiện trên các chuỗi tiền tố và xác định cây hậu tố của chúng. Trở lại với ví dụ, để khai thác cây PLWAP ở hình 2.8a, bắt đầu từ a

trong bảng liên kết đầu, và lần theo các liên kết của nó đểlấy độ hỗ trợ cho tất cả các xuất hiện đầu tiên của các cây hậu tố của gốc, đó là a:1:111, a:1:110, a:3:10

với tổng độhỗtrợ của a là 5, giá trị này lớn hơnminSup, vì vậy bổ sung a vào tập

phổ biến fs={a}. Bây giờ, khai thác đệ quy cây hậu tố của a ở hình 2.8b cho các chuỗi phổ biến 2-sequences và bắt đầu với tiền tố a có gốc tại b:1:1101, b:3:101

với độ hỗ trọ của b là 4, vì vậy bổ sung ab vào fs={a, ab}. Tiếp tục khai thác cây

hậu tốcủa abở hình 2.8c đểtìm chuỗi phổbiến 3-sequences mà bắt đầu với tiền tố

ab, nếu đã thửvới gốc a và b mà khơng tìm thấy chuỗi phổ biến nào thì thuật tốn sẽdị ngược trởlại (hình 2.8c). Cuối cùng, lấy gốc e cho cây con hiện thời mà có độ hỗ trợ thỏa mãn e:1:1111, e:1:110111, e:2:1011, kết quả là fs={a, ab, abe}. Vì

khơng có chuỗi phổbiến nào sau điểm này, thuật tốn dị lại (hình 2.8b) với cây hậu tố của a và khai thác cây hậu tố gốc tại ae ở hình 2.8d, kết quảlà fs = {a, ab, abe, ae}. Khơng cịn chuỗi phổ biến nào trên cây hậu tố của a nữa, vì vậy nó dị ngược lại (hình 2.8a) và thử với b từ bảng liên kết đầu cho tất cả cây hậu tố của b (hình 2.8e). Thuật tốn tiếp tục khai thác theo cách trên cho tất cả chuỗi 1-sequences ở bảng liên kết đầu kết hợp với các cây con của chúng. Kết quảcuối cùng là tập tất cả các chuỗi phổbiến fs={a, ab, abe, ae, b, bb, ba, be, e}.

Cây WAP sử dụng tìm kiếm có điều kiện dựa trên việc tìm các chuỗi hậu tố chung trước, cịn kỹ thuật PLWAP tìm các chuỗi tiền tố chung trước bằng cách sử dung mã nhị phân và dò theo bảng các liên kết đầu duyệt liên kết theo chiều sâu. Mặc dù, PLWAP cần bộnhớ để lưu trữ mã vị trí nhưng nó vẫn rất nhỏ(mỗi nút cần một mảng sốnguyên 4 byte) nếu như so sánh với việc lưu trữ cây hậu tố trung gian đầy đủ ở thuật toán WAP-mine. Ưu điểm khác của việc không tạo ra những cây trung gian này và sửdụng mã nhị phân là thời gian khai thác của PLWAP chỉ bằng một nửa so với WAP-mine. Mặc dù thời gian CPU chiếm ưu thế ởcảhai thuật toán, WAP-mine vẫn tốn nhiều thời gian cho thao tác vào/ra hơn PLWAP.

Một phần của tài liệu Khai thác k mẫu tuần tự phổ biến dựa trên roaring bitmap (Trang 39 - 44)

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

(76 trang)