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

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 40)

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 tốn PLWAP

sửdụng thuật tố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 quá 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.

2.4 CÁC ỨNG DỤNG CỦA KHAI THÁC MẪU TUẦN TỰ

Ứng dụng của khai thác mẫu tuần tựcó thể được dùng để hỗ trợ ra quyết định hoặc dựbáo, dự đốn. Điển hìnhnhư:

Khai thác dữ liệu giao dịch: Có thểkhai thác mẫu tuần tự trong chuỗi các giao dịch từ một cửa hàng. Trong trường hợp này, mỗi một chuỗi đại diện cho các giao dịch từmột khách hàng tại các cửa hàng. Từ đây, một thuật tốn khai thác mẫu tuần tự có thểtìm thấy các mẫu chung cho một số khách hàng. Ví dụ, 30% khách hàng mua bia và bánh pizza, sau đó sẽ mua sữa.Điều này có thể được sử dụng cho việc ra các quyết định tiếp thị hoặc đưa ra các gợi ý sản phẩm trên một trang web bán hàng.

Khai thác web log: Khai thác mẫu tuần tựcó thể được thực hiện trên web logs. Trong trường hợp này có thểlà các chuỗi trình tự của các trang web được truy cập bởi người dùng trên một website. Từdữliệu này, một thuật tốn khai thác mẫu tuần tự có thể sử dụng để khám phá ra trình tựcủa các trang web thường được truy cập bởi người dùng. Sau đó, trang web này có thể sử dụng các mẫu đó để tạo đề nghị cho người sửdụng như là các liên kết được đềnghị.

Khai thác hồ sơ y tếhay dữliệu sức khỏe: Thuật tốn khai thác mẫu tuần tựcó thể được sử dụng để tìm kiếm các mẫu trong hồ sơ y tế. Ví dụ, giả sử rằng mỗi chuỗi là các hồ sơ y tế của một người trong một bệnh viện. Các mẫuđược tìm thấy có thể giúp chúng ta chẩn đốn bệnh hay dự báo được tình hình sức khỏe của một hay một nhóm người nào đó. Ví dụ như người lấy thuốc A và thuốc B, và sau đó là thuốc C, sẽcó một cơn đau tim chẳng hạn.

Khai thác dữliệu giáo dục: Khai thác mẫu tuần tự có thể được sử dụng để tìm kiếm các mẫu trong dữliệu giáo dục. Ví dụ, giảsửrằng mỗi chuỗi của một cơ sởdữ liệu chuỗi là các khóa học mà một học sinh thi tại trường đại học. Chúng ta có thể khám phá ra rằngngười học khóa học A và B sẽln ln tham dựkhoá C.

Khai thác dữ liệu thị trường chứng khoán: Khai thác mẫu tuần tự có thể được áp dụng cho chuỗi các sự kiện trên thị trường chứng khoán nhằm phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán, phát hiện gian lận…

Khai thác dữliệu các thảm họa tựnhiên: Khai thác mẫu tuần tựcó thể được áp dụng cho các thảm họa. Ví dụsau trận động đất thì những thay đổi nào có thểxảy ra trong tựnhiên (chẳng hạn như sóng thần, lở đất, dư chấn…).

Khai thác dữliệu sinh họcnhư phân tích chuỗi DNA, phân tích kết cấu protein, tìm kiếm trên gen, dự đốn các quy tắc tổ chức của một số thành phần trong gen, phân tích biểu hiện gen, dự đốn chức năng protein…

Ngoài ra, khai thác mẫu tuần tự còn nhiều ứng dụng khác như phát hiện xâm nhập mạng, khám phá xu hướng thị trường, phân loại văn bản và xác định quyền tác giả, dự đoán và cảnh báo người sửdụng các lỗi tiềm tàng của hệthống…

CHƯƠNG 3

KHAI THÁC K MẪU TUẦN TỰ PHỔ BIẾN DỰA TRÊN ROARING BITMAP

3.1 GIỚI THIỆU

Khai thác mẫu tuần tự đãđược nghiên cứu rộng rãi trong cộng đồng khai thác dữ liệu và có rất nhiều ứng dụng trong thực tế. Khai thác mẫu tuần tự là tìm tất cả các chuỗi con chung (subsequences) xuất hiện nhiều hơnminsup lần trong các chuỗi

(sequences) của CSDL, với minsup là ngưỡng hỗ trợ tối thiểu do người dùng định nghĩa [15]. Cho đến nay, mặc dù nhiều nghiên cứu để thiết kế ra các thuật toán khai thác mẫu tuần tự đã được thực hiện nhưng một vấn đề quan trọng là làm cách nào để người sử dụng có thể chọn được ngưỡng minsup nhằm tạo ra một số lượng mong

muốn các mẫu.Tùy thuộc vào sự lựa chọn ngưỡngminsup, thuật tốn có thể trở nên

rất chậm và tạo ra một số lượng rất lớn các kết quả hoặc q ít kết quả hoặc khơng có kết quả nào, bỏ qua các thơng tin có giá trị. Vấn đề này rất quan trọng bởi vì trong thực tế, người sử dụng chỉ có nguồn tài nguyên giới hạn (thời gian và không gian lưu trữ) nên khơng thể phân tích q nhiều mẫu kết quả và việc tinh chỉnh thông số minsup là rất tốn thời gian. Để giải quyết vấn đề này, người ta đãđề xuất xác định lạivấn đề của khai thác các mẫu tuần tự như làkhai thác k mẫu tuần tự phổ

biến, vớik là số mẫu tuần tự được tìm ra (được trả về) và được định nghĩa bởi người

sử dụng.

Ví dụ: Cho CSDL chuỗi như trong bảng 3.1 và k = 10, thì k mẫu tuần tự phổ biến sẽ là{g},{a},{f}, {a},{b}, {e},{b}, {g},{a}, {e},{e}với độ hỗ trợ là 3 và{b}, {f},{b},{f}với độ hỗ trợ là 4. Bảng3.1 CSDL chuỗiD4 SID Sequences 1{a, b},{c},{f, g},{g},{e}2 {a, d},{c},{b},{a, b, e, f} 3 {a},{b},{f},{e}〉 4 {b},{f, g}

Thuật toán tốt nhất hiện nay để giải quyết vấn đề này là thuật toán TKS [15].

3.2 THUẬT TỐN TKS (Top-K Sequential pattern mining)

Thuật tốn TKS sử dụng CSDL bitmap dọc để trình bày dữ liệu và sử dụngthủ tục tạoứng viên căn bản của SPAM (SPAM Search) [4] để dị tìm và mở rộng các mẫu, đồng thời áp dụngmột vài chiến lược để tăng hiệu quả khai tháck mẫu tuần tự

phổ biến.

3.2.1 Cơ sở dữ liệu bitmap dọc (vertical bitmap database)

Cho CSDL chuỗi D chứa q item và m chuỗi (sequence), size(i) là số itemset

trong chuỗi thứ i. CSDL bitmap dọc của D, ký hiệu V(D) được định nghĩa như là một tập củaqbit vector có kích thướt ∑ , sao cho:

 Mỗi itemx có một bit vector tương ứngbv(x).

 Nếu itemx xuất hiện trong itemset thứ p của chuỗi thứ t trong D thì bit thứ

+ p của bit vector bv(x)được gán là 1, ngược lại là 0.

Ví dụ: Bảng bên dưới trình bày các bit vector được xây dựng cho mỗi item từ CSDL chuỗiD4được cho trong bảng3.1

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

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

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 40)