.7 Khai thác cây trong thuật toá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 43)

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 toá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 toá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ựkhố 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 khố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ự đoá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…

Ngồ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 ngun giới hạn (thời gian và khơng gian lưu trữ) nên không thể phân tích quá 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 tốn TKS [15].

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

Thuật toá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

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

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 ln ở 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.

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

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

(76 trang)