1.1. Các khái niệm cơ bản
Cho tập R các loại sự kiện, mỗi sự kiện là một cặp (A,t) với: A ∈ R (A là loại sự kiện) và t là một số nguyên chỉ thời gian xuất hiện của loại sự kiện.
Chuỗi sự kiện S trên R là bộ ba (s, Ts, Te) với Ts là thời gian bắt đầu và Te là thời gian kết thúc. Ta có Ts < Te là các số nguyên và s = ((A1,Ts) , (A2,T2) , … , (An,Te)), trong đó:
Ai ∈ R và Ts ≤ ti ≤ Te , i = 1 , … , n
Ví dụ: Cho chuỗi sự kiện:
D C A B D A B C A D C A B D A
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 trong đó:
A, B, C, D là các loại sự kiện.
10…150 là khoảng thời gian xuất hiện các loại sự kiện. s = ((D,10) , (C,20) , (A,30) , (B,40) , … , (A,150)) Ts = thời điểm bắt đầu = 10
Te = thời điểm kết thúc = 150
1.2. Dãy phổ biến trong một chuỗi
Dãy phổ biến trong một chuỗi (gọi tắt là episode) α, là một cặp (V,≤) với V là tập hợp các loại sự kiện và ≤ là quan hệ thứ tự trên V. Cho chuỗi sự kiện S = (s, Ts, Te), một episode α = (V,≤) xảy ra trong phạm vi S nếu các loại sự kiện trong V xuất hiện trong s theo thứ tự được xác định bằng quan hệ thứ tự “≤”.
1.3. Các loại episode
Cho episode α = (V,≤), nếu quan hệ thứ tự ≤ là quan hệ thứ tự riêng phần trên V thì episode α là episode song song. Nếu quan hệ thứ tự ≤ là quan hệ thứ tự toàn phần trên V thì episode α là episode tuần tự.
1.4. Tiếp cận WINEPI
Cửa sổ trượt là một cửa sổ được trượt qua chuỗi dữ liệu các sự kiện. Một cửa sổ là một “khe” và tạo ra một bản ghi trong CSDL.
Ví dụ:
D C A B D A B C A D C A B D A
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 Bề rộng cửa sổ là 40 giây. Các cửa sổ trượt sẽ tạo ra bảng dữ liệu sau:
D C A B C A B D A B D A B D A B D A B C A B C A
Một cách hình thức ta có: cho tập E các loại sự kiện, một chuỗi sự kiện S = (s,Ts,Te) là một chuỗi thứ tự các sự kiện sao cho eventi ≤ eventi+1 với mọi i = 1 , … , n-1 và Ts ≤ eventi ≤ Te với mọi i = 1, … ,n.
Cửa sổ trên một chuỗi sự kiện S là một chuỗi sự kiện Sw = (w; ts, te) với ts ≤ Te và Ts ≤ te và w chứa các cặp (event, t) từ s với ts ≤ t ≤ te. Giá trị ts ≤ t ≤ te được gọi là bề rộng cửa sổ. 34 A B A B A B C Episode tuần tự Episode song song
Episode vừa tuần tự vừa song song
Theo định nghĩa, cửa sổ đầu tiên và cửa sổ cuối cùng trên chuỗi có thể vươn rộng ra ngoài chuỗi sao cho cửa sổ đầu tiên chỉ chứa điểm đầu tiên của chuỗi và cửa sổ cuối cùng chỉ chứa điểm cuối cùng của chuỗi.
1.5. Tần suất
Tần suất của một episode α là tỷ số của các cửa sổ có chứa episode trên tổng số các cửa sổ khả dĩ. Tần suất được tính bằng công thức sau:
Trong đó, α xuất hiện trong SW, W(S,W) là tập tất cả các cửa sổ Sw của chuỗi S sao cho bề rộng cửa sổ là W. Khi tìm các episode, ta cần chỉ định ngưỡng tần suất nhỏ nhất min_fr.
Episode α là phổ biến theo ngưỡng min_fr nếu tần suất của α lớn hơn hay bằng min_fr. Gọi F(s, win, min_fr) là tập các episodes phổ biến theo ngưỡng min_fr so với win.
Cũng có thể sử dụng nguyên lý Apriori cho bài toán tìm episode phổ biến. Nếu một episode α là phổ biến trong một chuỗi sự kiện S thì tất cả các episode con β < α là phổ biến trong S.
1.6. Luật Episode
Một luật episode là biểu thức β ⇒ α với β và α là các episode sao cho β là episode con của α. Episode β là episode con của α nếu đồ thị biểu diễn β là đồ thị con của đồ thị biểu diễn α. Độ tin cậy của luật episode β ⇒ α được tính bởi công thức sau:
Luật Episode giống luật kết hợp nhưng có thêm yếu tố thời gian. Nếu sự kiện thỏa vế trái của luật thì sẽ xuất hiện sự kiện bên vế phải của luật trong khoảng thời gian W được xác lập bằng quan hệ thứ tự riêng phần “≤”.
1.7. Thuật toán WINEPI
- Vào: Tập R các loại sự kiện, một chuỗi sự kiện S trên R, tập E các episodes, bề rộng cửa sổ win và ngưỡng tần số min_fr.
- Ra: Tập hợp F(s, win, min_fr) Các bước thuật toán:
(1) Tính C1 = {α ∈ E | |α| = 1} (2) k = 1 ) , ( ) , ( ) , , ( W S W W S W S W S fr w∈ = α ) , , ( ) , , ( W S fr W S fr β α
(3) While Ck ≠ ∅ do
(4) Tính F(s, win, min_fr) = {α ∈ Ck | fr(α, s, win) ≥ min_fr //quét CSDL (5) k = k + 1
(6) Tính Ck = {α ∈ E | |α| = k và β ∈ F(s, win, min_fr) cho tất cả β ∈ E và β < α //Tạo ứng viên
(7) EndWhile
* Bài toán: Cho một chuỗi sự kiện và một episode, vấn đề đặt ra là khẳng định episode có xuất hiện trong chuỗi sự kiện đó hay không? Tìm số các cửa sổ chứa một lần xuất hiện của episode.
Cách giải quyết bài toán:
1. Dùng ý tưởng từ bài toán tìm luật kết hợp.
2. Episode ứng viên phải là tổ hợp của các episode có kích thước nhỏ hơn.
(a) Episode song song
Đối với từng ứng viên α, ta dùng bộ đếm α.event_count để đếm số lần xuất hiện sự kiện α trong cửa sổ.
Khi α.event_count bằng |α| lúc đó α đã lấp đầy cửa sổ thì lưu thời điểm bắt đầu của cửa sổ vào α.inwindow.
Khi α.event_count giảm trở lại thì tăng α.freq_count lên một lượng bằng số cửa sổ mà α lấp đầy.
(b) Episode nối tiếp
Ví dụ: Chuỗi sự kiện:
D C A B D A B C
0 10 20 30 40 50 60 70 80 90
Bề rộng cửa sổ là 40 giây, bước dịch chuyển là 10 giây. Chiều dài của chuỗi sự kiện là 70 giây (10 đến 80). Bằng cách trượt cửa sổ, ta có được 11 cửa sổ:
Cửa sổ Ui Nội dung Ui Episode song song trong Ui
U1,[-20,20] [-,-,-,D] {D}
U2,[-10,30] [-,-,D,C] {C, D} , {CD}
U3,[0,40] [-,D,C,A] {A, C, D} , {AC, AD, CD} , {ACD}
U4,[10,50] [D,C,A,B] {A, B, C, D} , {AB, AC, AD, BC, BD, CD} , {ABC, ABD, ACD, BCD} , {ABCD}
U5,[20,60] [C,A,B,D] {A, B, C, D} , {AB, AC, AD, BC, BD, CD} , 36
{ABC, ABD, ACD, BCD} , {ABCD} U6,[30,70] [A,B,D,A] {A, B, D} , {AB, AD, BD} , {ABD} U7,[40,80] [B,D,A,B] {A, B, D} , {AB, AD, BD} , {ABD}
U8,[50,90] [D,A,B,C] {A, B, C, D} , {AB, AC, AD, BC, BD, CD} , {ABC, ABD, ACD, BCD} , {ABCD}
U9,[60,100] [A,B,C,-] {A, B, C} , {AB, AC, BC} , {ABC} U10,[70,110] [B,C,-,-] {B, C} , {BC}
U11,[80,120] [C,-,-,-] {C} - Tìm tất cả các episode song song:
• Đầu tiên, ta tìm các episode song song có chiều dài 1 (A, B, C, D) gọi tắt là 1- episode.
• Sau đó, ta nhận diện các 1-episode phổ biến (trong ví dụ này là tất cả các episode, với ngưỡng tần số được ấn định là 40%).
• Từ các episode phổ biến, ta tạo các ứng viên có chiều dài là 2: AB, AC, AD, BC, BD, CD.
• Nhận diện các episode song song phổ biến (ở đây là tất cả các episode ứng viên).
• Từ các episode phổ biến, ta tạo các ứng viên có chiều dài là 3: ABC, ABD, ACD, BCD.
• Nhận diện các episode phổ biến, ta chỉ có episode ABD. • Không có ứng viên với chiều dài là 4.
- Các tần suất của Episode và luật do thuật toán WINEPI tạo ra:
D : 73% C : 73% A : 64% B : 64% D C : 45% D A : 55% D⇒ A [40] (55%, 75%) D B : 45% C A : 45% C B : 45% A B : 45% D A B : 45% D A ⇒ B [40] (45%, 82%)