3.2 THUẬT TOÁN TKS (Top-K Sequential pattern mining)
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ẫu 〈i1, 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 s∈Sinit,
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 i∈Sn,
4. IF mởrộng s-extension của pat là phổbiến THEN Stemp:= StempU {i}.
5. FOR each item j∈Stemp,
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 i∈In,
8. IF mởrộng i-extension của pat là phổbiến THEN Itemp := ItempU {i}.
9. FOR each item j∈Itemp,
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ẫu 〈i1, 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 qt 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).