Các kỹ thuật loại trừ sớm

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 34 - 39)

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

2.3.3 Các kỹ thuật loại trừ sớm

Trong tất cả nghiên cứu đã có, các thuật tốn dựa trên kỹ thuật loại trừ sớm là hướng tiếp cận mới đối với khai thác mẫu tuần tự. Những thuật toán này sử dụng một loại quy nạp vị trí để loại trừ các chuỗi ứng viên rất sớm trong quá trình khai thác và tránh phải đếm độhỗtrợ càng nhiều càng tốt. Cách giải quyết của quá trình khia thác là phát triển mẫu đơn giản. Ý tưởng quy nạp vị trí như sau: Nếu vị trí sau cùng của một item nhỏ hơn vị trí của tiền tố hiện thời (suốt quát trình khai thác) thì item khơng thểxuất hiện sau tiền tố đó trong cùng một chuỗi dữliệu.

Các thuật tốn này thường sửdụng một bảng để dị các vị trí sau cùng của mỗi item trong chuỗi và sử dụng thông tin này cho việc loại trừsớm chuỗi ứng viên; vì vị trí sau cùng của item là chìa khóa để xác định liệu có thể item thêm vào một chuỗi tiền tố độdài kcho trước hay khơng, vì vậy tránh phải đếm độhỗtrợ và tạo ra chuỗi ứng viên không phổ biến. Trong thuật toán HVSM, Song và đồng sự 2005 [12]đã nhấn mạnh tầm quan trọng của biểu diễn bit và bổ sung thêm phương pháp duyệt CSDL theo chiều ngang trước theo chiều dọc sau, sử dụng cấu trúc dữ liệu cây đặc biệt, trong đó mỗi nút lấy các nút anh em phổ biến cũng như các nút con của nó trong quá trình kết nối để mở rộng itemset, vì vậy tránh phải đếm độ hỗtrợ; tuy nhiên sựthực hiện của HVSM không vượt qua được SPAM. Mặt khác, với thuật toán DISC-all [13], bên cạnh thứ tự từ điển thông thường trên các item, thuật tốn cịn sửdụng thứtự thời gian và dạng biến đổi của CSDL chiếu để chia nhỏ khơng gian tìm kiếm, phụthuộc vào thứtựcủa các chuỗi phổbiến 1-sequences.

Thut toán DICS-all

Các thuật toán dựa trên Apriori loại trừ các chuỗi không phổ biến dựa trên thuộc tính khơng đơn điệu, so sánh chuỗi trực tiếp (Direct Sequence Comparison - DISC) loại trừnhững chuỗi khơng phổ biến theo những chuỗi khác có cùng độdài. Đểso sánh những chuỗi có cùng độ dài với nhau, thủ tục so sánh dựa trên thứtựtừ điển và thứ thự thời gian. Ví dụ, chuỗi A = <a(bc)(de)> nhỏ hơn chuỗi

B = <a(cd)(bf)> theo thứ tựtừ điển vì tại vị trí thứ hai tương ứng của hai chuỗi có

b < c, vị trí này được gọi là điểm khác biệt. Hơn nữa, nếu C = <(abc)(de)> thì C < A vì so sánh theo thứtựthời gian thì của itemsetởvịtrí 1. Theo thứtựnày, nếu

μk là chuỗi con độ dài k nhỏ nhất của A thì ta gọi μk là chuỗi con-k tối thiểu (k-minimum subsequence). Chiu và đồng sự 2004 [13] cũng sử dụng mối quan hệ này để định nghĩa thứ tự k-tối thiểu, có thểsắp xếp các chuỗi trong CSDL theo thứ tự này. Cho trước ngưỡngminSup ξ, chuỗi-k tối thiểu tại vị trí thứξ trong CSDLđã sắp xếp được gọi làαξ,bất kỳchuỗi-k tối thiểu xuất hiện tại vị trí nhỏ hơn vịtrí của

αξ (theo thứ tự k-tối thiểu) đều khơng phổ biến ví CSDL đã được sắp xếp. Tất cả

chuỗi-k tối thiểu nhỏ hơn αξ đều bị loại bỏ và với mỗi CID của những chuỗi này, thuật tốn tìm chuỗi-k tối thiểu kế tiếp (còn gọi là chuỗi-k tối thiểu điều kiện) sao

cho nó được sắp đặt ở vị trí  k đối với αξ, tạo ra CSDL được sắp mới theo αξ.

Chúng ta thấy rằng những chuỗi-k không phổbiến nhỏ hơnαξ được bỏ qua và chỉ kiểm tra những chuỗi con-k tối thiểu điều kiện;đây là cách mà thuật tốn có thểloại trừ những chuỗi ứng viên khơng phổ biến mà không cần phải đếm độ hỗ trợ của chúng. Thuật toán DISC-all dùng kỹ thuật DISC để loại trừ chuỗi ứng viên. Trước hết, duyệt CSDL để chia các chuỗi dữ liệu thành các phần mức đầu bởi các chuỗi 1-tối thiểu. Những phần này được khai thác để tìm tất cả các chuỗi phổ biến 2-sequences sử dụng PrefixSpan như CSDL chiếu, các chuỗi 1-squences và 2-sequences khơng phổbiến bị xóa đi đểtạo ra chuỗi dữliệu ngắn hơn. Sau đó, mỗi phần này lại tiếp tục được chia thành các phần mức hai bởi các chuỗi 2-tối thiểu để tìm chuỗi phổ biến 3-sequences… Đây chính là phân chia đa mức, số mức phụ thuộc vào chi phí thực hiện và độ lợi ích thu được. Việc phát sinh các phần được thực thi theo chiều sầu. Mỗi khi chi phí tăng, thuật tốn sẽ chuyển sang thực hiện chiến lược DISC. Ở đây, với mỗi phần, DISC-all tạo ra CSDL được sắp xếp để tạo ra chuỗi phổbiến độ dài k. Sau đó, mỗi chuỗi dữliệuởphần mức thứ hai được gán lại vào phần mức thứ hai khác trước chuỗi 2-tối thiểu kếtiếp. Khi xử lý xong tất cả các phần ở mức thứ hai, mỗi chuỗi dữliệu của phần mức thứnhất được gán lại vào phần mức thứ nhất khác trước chuỗi 1-tối thiểu kế tiếp. Mỗi phần được xử lý như một CSDL chiếu và được khai thác để tìm các chuỗi phổ biến 2-sequences, 3-sequences theo cách tương tự như SPADE; chuỗi 4-sequences và lớn hơn được khai thác theo chiến lược DISC.

Bảng2.8 CSDL và phần ở mức thứ nhất của bảng2.3

CID Chuỗi dữliệu Phần khởi tạo Sau khi xửlý phần- <a>

1 <(a)(e)> Phần-<(a)> Phần-<(e)> 2 <(fg)a(fbkc)> Phần-<(a)> Phần-<(b)> 3 <(ahcd)> Phần-<(a)> Phần-<(c)> 4 <a(abcd)e> Phần-<(a)> Phần-<(b)> 5 <e> Phần-<(e)> -

Ví dụ, xét bảng 2.8 với ξ = 2. Tất cảcác chuỗi 1-sequences ngoại trừf, g, h và k

là <a>. Ở bước hai, phần-<a> được xử lý trước để tìm chuỗi phổ biến với tiền tố

<a>. Sau đó, chúng ta tìm chuỗi 1-tối thiểu kếtiếp trong mỗi năm chuỗi dữ liệu và phân lớp chúng lại vào các phầnở mức thứ nhất khác. Ví dụ, CID 1 và 2 được gán lại và phần-<(e)> và phần-<(b)>, như minh họa ở cột cuối trong bảng 2.8. Xét phần-<a>, tạo ra mảng đếm tương tự như ID-list của SPADE để chứa biến đếm độ hỗ trợ của mỗi chuỗi 1-sequence trong phần-<a>. Lúc này, có thể giảm bớt các chuỗi bằng cách xóa đi những chuỗi khơng phổbiến. Mảng đếm cũng được dùng để tìm chuỗi 3-sequences trong phầnở mức thứ 2. Sau đó, áp dụng chiến lược DISC ở trên. Thuật toán DISC-all thực hiện tốt hơn PrefixSpan trên các loại CSDL khác nhau. Khi kích thước CSDL càng lớn thì thuật tốn DISC-all càng tốt hơn so với PrefixSpan. PrefixSpan khơng thích hợp với các CSDL lớn vì số lượng dữ liệu chiếutăng theo kích thước của CSDL. Ngược lại, thuật tốn DISC-all bỏqua những chuỗi khơng phổ biến trong quá trình so sánh chuỗi vì ξ tăng theo kích thước CSDL.

Thut toán HVSM

Dựa trên các bước của SPAM, Songvà đồng sự2005 [12]đãđề xuất thuật tốn đầu tiên có cách khai thác CSDL duyệt theo chiều ngang trước - theo chiều dọc sau, thuật toán này cũng dùng bitmap để biểu diễn dữliệu. HVSM định nghĩa chiều dài chuỗi là số lượng itemset chứ không phải là số lượng item đơn và HVSM tạo ra chuỗi ứng viên phổ biến bằng cách lấy các nút anh em như là từng lớp nút con. Ở đây, các itemset phổ biến đã xét trong một lớp khơng cịn xuất hiện ở lớp kế tiếp. Độhỗtrợ được đếm bằng cách duyệt bitmap và ghi lại TID đầu tiên để giảm sốlần duyệt và cải thiện việc đếm hiệu quả. Xét CSDL ở bảng 2.3, với minSup = 2. Xét CSDL dọc cho dữ liệu ở bảng này và chỉ trình bày các bitmap cho các item a, b, c và d. Để tạo ra chuỗi ứng viên 1-sequences, thuật toán duyệt bitmap dọc của mỗi itemset trong mỗi chuỗi, khi bit 1 đầu tiên xuất hiện, nó ghi lại TID tương ứng và tăng độ hỗ trợ cho itemset đó. Khi duyệt xong, nếu độ hỗ trợ lớn hơn hoặc bằng

minSup thì bổ sung itemset đó vào danh sách các itemset phổ biến Lkvà lưu vào bitmap của chuỗi phổ biến 1-sequences với TID của bit 1 đầu tiên. Xét ví dụ, bước này sẽduyệt cột <a> cho CID =1; khi tìm thấy bit 1 đầu tiên,ở đây bit 1 xuất hiệnở

dịng thứ nhất, nó ghi lại TID tương ứng của bit 1 đầu tiên là “1st-TID=1” và tăng đếm độhỗ trợ cho <a>. Làm tương tự cho chuỗi CID=2 và CID =3, … Cuối cùng, ta có độ hỗ trợ của <a>=4 minSup. Bước này cho ra <a> là chuỗi phổ biến 1-sequences và thêm cột của nó vào bitmap của các chuỗi phổ biến 1-sequences. Kết quả cuối cùng của bước này là danh sách L1 gồm các chuỗi phổ biến 1-sequences với itemset có kích thước 1, L1: {a:4, b:2, c:3, d:2}. Bước kế tiếp sẽ tìm các chuỗi phổ biến 1-sequences với itemset có kích thước 2, gọi là one-large-

sequence-two-itemset. Tạo ra cây thứ tự từ điển từ đầu ra ở bước trước, trong đó mỗi nút lá lần lượt lấy các nút anh em như là nút con như minh họaởhình 2.4.

Hình2.4 Chuỗiứng viên với itemset có kích thước 1 và itemset có kích thước 2

Ta thu được C2={ab, ac, ad, bc, bd, cd}. Với mỗi itemset trong C2 và với mỗi CID, thực hiện phép xửlý bit AND giữa item đầu tiên và item thứhai trong itemset, và duyệt bitmap kết quả đểtìm bit 1đầu tiên, ghi giá trị TID của bit 1 đầu tiên đó và tính độ hỗ trợ như bước trước đó. Ví dụ, xét itemset <ab>, AND bitmap của <a> với bitmap của <b> trong L1, sau đó duyệt bitmap kết quả của <ab> ứng với mỗi CID, khi có bit 1 đầu tiên xuất hiện thì ghi TID của nó vào biến 1stTID và tăng độ hỗtrợ lên 1, cuối cùng ta được độ hỗ trợ của <ab>=1 < minSupnên không đưa vào

L2. Tiếp tục quá trình, thu được L2={bc:2, cd:2}. Cây thứ tự từ điển được cắt tỉa bằng cách xóa đi những cạnh khơng chuỗi tương ứng khơng có trong L2, sau đó lặp lại những bước này cho chuỗi phổbiến độdài 1 mà có itemset có kích thước k. Cuối cùng, chúng ta có bitmap đầy đủ cho tất cảcác chuỗi phổ biến 1-sequences, chúng sẽ làm đầu vào cho giai đoạn khai thác chuỗi phổbiến 2-sequences tiếp theo. Đểtìm chuỗi phổ biến k-sequences, tất cả itemset được tạo ra cho các chuỗi phổ biến

viên độ dài k, sau đó chúng được kết nối với nhau theo thứ tự từ điển nhờ thủ tục

seqgen() [12]. Kết quả là hồn tồn có thứ tự, và khác so với các tổ hợp trước đó. Khơng cần thực hiện thêm thao tác AND nào nữa, thay vào đó, sử dụng thơng tin

1stTID để chỉ ra vị trí nào sẽ cho đếm độ hỗ trợ cho itemset ứng viên trong CSDL dọc, đây là đặc trưng quy nạp vịtrí ởthuật tốn HVSM.

Đánh giá thực hiện, theo Song và cộng sự 2005 [12] đã cho rằng HVSM thực hiện tốt hơn SPAM đối với những CSDL giao dịch lớn. Vì HVSM định nghĩa độ dài chuỗi là sốitemset có trong chuỗi đó, mở rộng tính chất của mẫu tuần tự. Một lý dó khác đó là việc đếm độhỗtrợ đơn giản bằng cách duyệt bitmap dọc và chỉ dùng thông tin TID của bit 1 xuất hiện đầu tiên cho quá trìnhđếm này, tránh phải đếm độ hỗtrợvà thao tác xử lý bit được tối thiểu.

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 34 - 39)

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

(76 trang)