.2 CSDL bitmap dọc được xây dựng từ CSDL chuỗi D4

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 48 - 56)

Item Bit vector

a 100001001100000 b 100000011010010 c 010000100000000 d 000001000000000 e 000010001000100 f 001000001001001 g 001100000000001

3.2.2 Thủ tục tạo ứng viên SPAM Search

Thủ tục tạo ứng viên [4] được trình bày trong hình 3.1 bên dưới. Thủ tục này nhận hai tham số đầu vào là CSDL chuỗi và ngưỡng minsup. Các bước thực hiện

Hình3.1 Thuật tốn SPAM

Hình3.2 Thủtục tạo ứng viên

 Quét CSDL một lần để xây dựng CSDL bitmap dọc (xem bảng 3.2), đồng thời đếm độ hỗ trợ của các item đơn.

 Với mỗi item phổ biến s, nó gọi thủ tục “SEARCH”. Thủ tục này xuất ra

mẫu〈{s}〉và đệ quy dị tìm các mẫu ứng viên bắt đầu bằng tiền tố〈{s}〉.

 Thủ tục SEARCH(hình 3.2) nhận bốn tham số đầu vào là: một mẫu tuần tự

pat, hai tập các items Sn, In được dùng để nối thêm vào mẫu pat nhằm tạo cácứng viên và ngưỡngminsup. Sn là tập các items được nối thêm vào mẫu

pat bởi việc mở rộng chuỗi s-extension. Kết quả của việc mở rộng s-extension giữa một mẫui1, i2,…, in〉với itemx lài1, i2,…, in,{x}〉 [4]. In

SPAM(CSDL chuỗi D, minsup)

1. Quét CSDL đểtạo V(D)và xác định Sinit(danh sách các items phổbiến). 2. FOR each item sSinit,

3. SEARCH(s, Sinit, tập các items từSinitcó thứtựtừ điển lớn hơns, minsup).

SEARCH(pat, Sn, In, minsup)

1. Đầu ra: mẫu pat.

2. Stemp:= Itemp:=

3. FOR each item iSn,

4. IF mởrộng s-extension của pat là phổbiến THEN Stemp:= StempU {i}.

5. FOR each item jStemp,

6. SEARCH(mởrộng s-extension của pat với j, Stemp, các phần tửtrong Stemp

lớn hơnj, minsup).

7. FOR each item iIn,

8. IF mởrộng i-extension của pat là phổbiến THEN Itemp := ItempU {i}.

9. FOR each item jItemp,

10. SEARCH(mởrộng i-extension của pat với j, Stemp , tất cảcác phần tửtrong

là tập các items được nối thêm vào mẫu pat bởi việc mở rộng itemset i-extension. Kết quả của việc mở rộng i-extension giữa một mẫui1, i2,…, in〉với itemx lài1, i2,…, inU {x}〉 [4].

Hình3.3 Mở rộng s-extension

Hình3.4 Mở rộng i-extension

 Với mỗi ứng viên pat’ được tạo ra bởi mở rộng s-extension và i-extension,

& result S-step process & result

thủ tục SEARCH tính tốn bit vector bv(pat’) bằng cách thực thi một phép

logic AND [4] giữa các bit vector của pat và của item được nối thêm vào. Độ hỗ trợ của ứng viên được tính mà không cần phải quét lại CSDL bằng cách đếm số bit 1 đại diện cho các chuỗi phân biệt trong bit vectorbv(pat’).

Ví dụ trong hình 3.3,〈{a}, {b}〉có độ hỗ trợ là 2 (do có hai bit 1 cùng nằm trên một chuỗi nên chỉ tính là 1).

 Nếu mẫu pat’ là phổ biến thì nó được sử dụng trong lời gọi đệ quy tới thủ tục SEARCH để tạo ra các mẫu bắt đầu bằng tiền tố pat’. Chú ý rằng trong lời gọi đệ quy, chỉ những items có thể dẫn đến một mẫu phổ biến bởi việc mở rộng (s-extension và i-extension) mẫu pat thì mới được xem xét cho

việc mở rộngpat’ [4]. Những mẫu không phổ biến thì khơng được mở rộng bởi thủ tục SEARCH bởi vì tính chất Apriori (bất kỳ mẫu tuần tự không phổ biến nào đều không thể được mở rộng để trở thành một mẫu tuần tự phổ biến).

3.2.3 Các chiến lược tăng hiệu quả khai thác dữ liệu

Chiến lược 1:Tăng ngưỡng htrợ đểct ta khơng gian tìm kiếm

Đây cũng là ý tưởng chính của thuật tốn TKS:

 Đặtminsup = 0.

 Tìm kiếm các mẫu tuần tự phổ biến bằng cách áp dụng thủ tục SPAM Search.

Dùng danh sách Lđể chứa các mẫu phổ biến đã tìm được cho tới hiện nay

(Lđược sắp xếp theo độ hỗ trợ).

 Khi có đúngk mẫu được tìm thấy, tăng minsup lên bằng độ hỗ trợ của mẫu

phổ biến có độ hỗ trợ thấp nhất trongL.

 Sau đó, mỗi khi một mẫu phổ biến được tìm thấy và thêm vào L thì loại bỏ các mẫu có độ hỗ trợ thấp nhấttrong L cho tới khi L chỉ chứa đúng k mẫu,

đồng thời tăng minsup lên bằng độ hỗ trợ của mẫu có độ hỗ trợ thấp nhất trong L.

 Dừng khi không thể tạo được thêm một mẫu nào nữa.

Nhận xét: Có thể dễ dàng thấy rằng thuật toán này là đúng đắn và đầy đủ. Tuy nhiên, thuật tốn có hiệu quả kém về thời gian thực thi bởi vì khơng gian tìm kiếm quá lớn, cần phải sử dụng thêm các chiến lược bổ sung để nâng cao hiệu quả của thuật toán.

Chiếnlược 2: Mrng các mu trin vng nht

Ý tưởng: Nếu các mẫu có độ hỗ trợ cao được tìm thấy sớm hơn thì nó cho phép

thuật tốn tăng minsup nhanh hơn. Vì vậy, cắt tỉa được phần khơng gian tìm kiếm lớn hơn.

Chiến lược: Thêm vào biến R chứa k mẫu có độ hỗ trợ cao nhất và có thể được

sử dụng để tạo ra nhiều mẫu khác.Mẫu có độ hỗ trợ cao nhất luôn ở trongR và luôn

được mở rộng đầu tiên.

Mã giả của thuật toán TKS phiên bản kếthợp chiến lược 1 và 2 được trình bày ở hình 3.5

Hình3.5 Thuật tốn TKS

TKS(CSDL chuỗi D, k)

1. R := Ø. L := Ø. minsup := 0.

2. Quét CSDLđểtạo V(D).

3. Cho Sinitlà danh sách các items trong V(D).

4. FOR each item sSinit, IF s là phổbiến tương ứng với bv(s) THEN 5. SAVE(s, L, k, minsup).

6. R := R U {<s, Sinit, các items từSinitlớn hơns theo thứtựtừ điển>}. 7. WHILE<r, S1, S2>R AND sup(r) ≥minsup DO

8. Chọn bộba <r, S1, S2> với mẫu rcó độhỗtrợcao nhất trong R. 9. SEARCH(r, S1, S2, L, R, k, minsup).

10. Loại bỏ<r, S1, S2> từR.

11. Loại bỏtừR tất cảcác bộ<r, S1, S2>R | sup(r) < minsup.

12. END WHILE

Hình3.6 Thủ tục tạo ứng viên đãđược sửa đổi

Hình3.7 Thủ tục SAVE

Thực hiện: Đầu tiên, thuật toán TKS khởi tạo các biến R, L là các tập rỗng và

đặtminsup = 0 (dịng 1). Sau đó, qt CSDL chuỗiDđể tạo raV(D) (dòng 2), đồng thời một danh sách của tất cả các items trong D được tạo ra (Sinit) (dòng 3). Với mỗi item s, độ hỗ trợ của nó được tính tốn dựa trên bit vector bv(s) của nó trong V(D). Nếu item là phổ biến thì thủ tục SAVE được gọi để lưusvào L, vớisvà L

SAVE(r, L, k, minsup)

1. L := L U {r}.

2. IF |L| > k THEN

3. IF sup(r) > minsup THEN

4. WHILE |L| > k ANDsL | sup(s) = minsup, Loại bỏs từL.

5. END IF

6. Đặt minsup bằng độhỗtrợthấp nhất của các mẫu trong L. 7. END IF

SEARCH(pat, Sn, In, L, R, k, minsup)

1. Stemp:= Itemp:= Ø 2. FOR each item iSn,

3. IF mởrộng s-extension của pat là phổbiến THEN Stemp := StempU {i}.

4. FOR each item jStemp,

5. SAVE(s-extension của pat với j, L, k, minsup).

6. R := R U {<s-extension của pat với j, Stemp, tất cảcác phần tửtrong Stemp lớn

hơnj>}.

7. FOR each item iIn,

8. IF mởrộng i-extension của pat là phổbiến THEN Itemp := ItempU {i}.

9. FOR each item jItemp,

10. SAVE(i-extension của pat với j, L, k, minsup).

11. R := R U {<s-extension của pat với j, Stemp , tất cảcác phần tửtrong Itemplớn

là các đối số đầu vào (dịng 4 và 5). Ngồi ra, bộ ba <s, Sinit, các items từ Sinit lớn hơns theo thứ tự từ điển> được lưu vàoRđể chỉ định rằng〈s〉có thể được mở rộng đểtạo các ứng viên (dịng 6). Sau đó, một vịng lặp WHILE được thực thi. Nó chọn đệ quybộ ba (tuple) đại điện cho mẫurcó độ hỗ trợ cao nhất trongR sao cho sup(r)

minsup (dòng 7 và 8). Tiếp đó, thuật tốn sử dụng bộ ba để tạo ra các mẫu bằng

cách gọi thủ tục SEARCH trong hình 3.6 (dịng 9) và loại bỏ bộ ba khỏi R ngay khi

tất cả các bộ ba cho các mẫu đã trở nên khơng phổ biến (dịng 11). Ý tưởng của vịng lặp WHILE là ln mở rộng các mẫu có độ hỗ trợ cao nhất đầu tiên bởi vì nó hầu như ln tạo ra các mẫu có độ hỗ trợ cao và vì vậy, cho phép tăng minsup

nhanh hơn để cắt tỉa nhiều khơng gian tìm kiếm hơn. Vịng lặp kết thúc khi khơng có mẫu nào trong R có độ hỗ trợ cao hơn minsup. Lúc này, L chứa k mẫu tuần tự

phổ biến (dòng 13).

Thủ tục SAVE được trình bày trong hình 3.7. Nhiệm vụ của nó là tăng minsup

và cập nhật danh sáchL khi có một mẫu phổ biến mớirđược tìm thấy. Đầu tiên, thủ tục SAVE thêm mẫu r vào L (dịng 1). Sau đó, nếu L chứa nhiều hơn k mẫu và độ

hỗ trợ cao hơn minsup thì các mẫu trong L có độ hỗ trợ bằng với minsup có thể

được loại bỏ cho đến khi chỉ cònđúngk mẫu được giữ lại (dòng 3, 4, 5). Cuối cùng, minsup được tăng lên bằng độ hỗ trợ nhỏ nhất của các mẫu trong L (dòng 6). Bằng cách này, k mẫu tuần tự phổ biến tìm thấy được lưu giữ trongL.

Nhận xét:Chọn cấu trúc dữ liệu cho L và R cũng rất quan trọng, nó ảnh hưởng

đến hiệu suất của thuật toán.Để nâng cao hiệu quả của thuật toán TKS, các tậpR và L nên được thực hiện bằng các cấu trúc dữ liệu hỗ trợ thêm, xóa và tìm kiếm phần tử lớn nhất/nhỏ nhất một cách hiệu quả. Trong phần thi cơng của mình, tác giả sử dụng Fibonacci heap choL và R với chi phí cho việc thêm và tìm kiếm phần tử lớn

nhất/nhỏ nhất là O(1), xóa là O(log(n)).

Chiến lược 3: Loi bcác items khơng phbiến trong khi tong viên

Ý tưởng: Chúng ta thấy rằng một chi phí lớn cho việc tạo ứng viên là thực thi các phép giao (AND) bit vector bởi vì các bit vector có thể rất dài đối với các bộ dữ liệu lớn. Chiến lược này cải thiện thời gian thi hành của thuật toán bằng cách giảm

số phép giao giữa các bit vector được thực thibởi thủ tục SEARCH.

Thực hiện:

 Dùng một bảng băm để lưu các itemsđã trở nên khơng phổ biến khi minsup

được tăng lên bởi thuật tốn. Điều này được thực hiện trong dòng 4 của thủ tục SAVE bằng cách thay thế “Loại bỏ s từL” bằng “Loại bỏ s từL và IF s

chứa một item đơnTHENđặtnó vào bảng bămchứacác items bị loại bỏ”.  Mỗi khi thủ tục SEARCH xem xét mở rộng (s-extension và i-extension) một

mẫu tuần tự với một item, item đó sẽ được kiểm tra trong bảng băm. Nếu bảng băm chứa item đó thì item đó sẽ bị bỏ qua (mẫu mở rộng sẽ không được tạo ra). Điều này cho phép tránh thực hiện các phép giao bit vector tốn kém trên các item này.

 Tích hợp chiến lược này không làm ảnh hưởng đến kết quả của thuật tốn bởi vì nối thêm một item khơng phổ biến vào một mẫu tuầntự không thể tạo ra một mẫu tuần tự phổ biến.

Chiến lược 4: Ct tang viên vi Precedence Map (bản đồthtự ưu tiên)

Ý tưởng: Đưa ra một cấu trúc dữ liệu mới gọi là Precedence Map (PMAP) cho biết số lần mà mỗi item xuất hiện sau mỗi item khác bởi s-extension và i-extension.

Mỗi lần mở rộng một mẫu với một item, thuật toán sẽ tra vào PMAP để phát hiện sớm mẫu mở rộng là không phổ biến nhằm tránh thực hiện phép giao bit vector không cần thiết và tốn nhiều chi phí. Từ đó cải thiện được thời gian thực thi của thuật toán.

Cấu trúcPMAP:

Item iđược trình bày bằng 1 danh sách các bộ ba theo mẫu<j, m, x> với m

là số chuỗi chứa cả i, j và j xuất hiện sau i trong CSDL bởix-extension (x {i, s})

Item i xuất hiện sau item j trong chuỗiA1, A2, …, An〉bởis-extension nếu j Axvà iAyvớix, y là số nguyên và 1x < yn.

Item i xuất hiện sau item j trong chuỗi A1, A2, …, An〉bởi i-extension nếu i, jAxvớix là số nguyên, 1xn và i lớn hơnj theo thứ tự từ điển.

Ví dụ:Cấu trúc dữ liệuPMAPđược xây dựng cho CSDLD4 ở bảng3.1

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 48 - 56)

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

(76 trang)