Gi違i thu壱t FMG

Một phần của tài liệu Nhận dạng motif và bất thường trên dữ liệu chuỗi thời gian dựa vào kỹ thuật băm (Trang 42 - 56)

I QUY TV

3.4 Gi違i thu壱t FMG

D li u s i r c hóa, ta dùng m t c a s c w i dùng

rút trích t t c nh ng chu i con i d ng tràng ký hi u c g i là t (word). M i t c xem là m (feature) c a chu i con, c

m t b c cho là kh p s c ch a trong cùng

m . t s d ng trong gi i thu t.

a w

A鵜pj"pij c"320"Khずr"8pe"vt⇔pi"(Feature Match): p nhau n u hai

không ph lp (not overlap) nhau và t ng c p ký t trong

cách nhau không quá m t . ng cách MINDIST gi a hai t ng s b ng không.

Ví d : ta có chu i d li i r c hóa là T = aacbaccacbc, c a s t w = 3 Feature f1: aac Feature f4: bac | f1i Î f4i | : 100 f1 và f4 là kh p v i nhau, chúng s c ch a trong cùng m t thùng a trong Hình 3.9. Feature f1: aac Feature f5: acc | f1i Î f5i | : 020

f1 và f5 là không kh p v i nhau, chúng s c ch a trong hai thùng khác nhau a trong Hình 3.9.

A鵜pj"pij c"330"Khずr"8pe"vt⇔pi"vZo"vj⇔ぜng (Trivial Feature Match

kh p t m th ng n ph lp (overlap) nhau và kh c v i nhau.

A鵜pj"pij c"340"ng viên motif tt (Good motif candidate): m t m t ng

viên motif t t n u ký t c i và ký t c c ti này cách nhau t i thi u s . i dùng có th ch nh giá tr s.

M nh: v i a là s ký t dùng r i r c hóa SAX.

i dùng có th ch nh hình d ng motif ng viên mong mu n cho gi i thu t. c th c hi n c a gi i thu t FMG c mô t chi ti t b ng

mã gi ti .

a. Gi i thu t xây d ng b Build_FM_HashTable t chu i d li i r c hóa c mô t trong Hình 3.8.

Hình 3.8: Gi違i thu壱t Build_FM_HashTable xây d詠ng b違pi"d<o"v瑛 chu厩i d英 li羽u 8«"t運i r衣c hóa Gi i thu t Build_FM_HashTable /* T : chu i d li i r c hóa * w : c c a s * FM_HashTable : c u trúc b ch */ input : T, w output : FM_HashTable 1 foreach feature in T // t c trích ra t T b ng c a s t 2 found = false;

3 foreach key in FM_HashTable // tìm trong t t c các khóa c a b

4 if( Match(feature, key) ) // tìm th y khóa kh c v 5 found = true; // xác nh y

6 trivial = false;

7 foreach index in FM_HashTable[key].bucket

8 if( |index Î feature.index| < w) // ki m tra là kh p t ng 9 trivial = true; // xác ng h p kh p t ng 10 break;

11 end;

12 end;

13 if( trivial == false ) p không t ng

// ng c a khó

14 FM_HashTable[key].bucket.Add(featute.index);

// p v i nhau thì không th là b ng

15 Anomaly_candidates[ feature ] = false;

16 Anomaly_candidates[ key] = false;

17 end;

18 end;

19 end;

20 if( found = false ) /* n u xác nh n là không tìm th y khóa nào kh p v i c

i ch */

21 FM_HashTable[feature].bucket.Add(feature.index);

22 end;

Hình 3.9: Minh h丑a quá trình rút trích các 8員e"vt逢pi."n逢w"x q"d違pi"d<o"x "v·o" 泳ng viên motif và 泳ng viên b医v"vj逢運ng t瑛eƒe"vj́pi"d<o v噂i T = aacbaccacbc, c穎a

s鰻vt逢嬰t w = 3

Chi ti t gi i thu t Build_FM_HashTable :

Dùng c a s t l y t t c các . ng v i t , tìm t t c nh ng khóa (mi khóa là mじv"8pe"vt⇔pi) c a b p không t ng c

v chèn ch m c c vào trong ng

v (dòng 14).

N u không có khóa nào kh c v o m t i

ch a ch m c c , khóa c .

K t qu c a gi i thu t là m t b ng v i m t

nhóm c a nh c tr , trung tâm nhóm , các i

trong nhóm có kho ng cách MINDIST t i trung tâm nhóm b ng không. Ch n nhóm

ng v c l n nh t , trung tâm nhóm này làm

ng viên motif. Các khóa 1: aac aac 1 2: acb acb 2 3: cba 4: bac 5: acc 6: cca 7: cac cba 3 4 5 6 cac 7 8: acb 8 9: cbc Kh p t ng,

không thêm 9 vào

n nh t v c 2:acb c ch n làm motif ng viên. ch a m c 7:cac là m t ng viên b ng.

a. Gi i thu t Get_Motif_Candidate tìm ng viên motif t b t trong

Hình 3.10:

Hình 3.10: Gi違i thu壱t Get_Motif_Candidate ch丑n 泳ng viên motif t瑛 b違pi"d<o.

Gi i thu t Get_Motif_Candidate

/* FM_HashTable : c u trúc b

* motif_candidate : ng viên motif ch c t b

*/

input : FM_HashTable

output : motif_candidate 1 max_bucket_size = 1;

2 filter = true; // t tiêu chí ch n ng viên motif t t

3 while ( true )

/* m l n nh ng v i khóa

trong b n nh t */

4 foreach key in FM_HashTable // xét t ng khóa trong b

5 if(filter == true) // tìm v i tiêu chí là m t ng viên t c

6 if ( IsAGoodCandidate( key ) ) 7 if ( max_bucket_size < FM_HashTable[key].bucket.Count ) 8 max_bucket_size = FM_HashTable[key].bucket.Count; 9 motif_candidate = key; 10 end; 11 end;

12 else // i trà không có tiêu chí ng viên t t

13 if ( max_bucket_size < FM_HashTable[key].bucket.Count ) 14 max_bucket_size = FM_HashTable[key].bucket.Count; 15 motif_candidate = key; 16 end; 17 end; 18 end; // khi ng viên t c v c nhóm i trà

19 if ( max_bucket_size < 2 and filter == true)

20 filter = false; // b tiêu chí tìm ng viên t t

21 continue; // quay l i vòng l p tìm i trà

22 else

23 break; // thoát vòng l p while sau khi tìm ki m

24 end;

Vi c l a ch n ng viên motif t b c th c hi n b ng cách duy t qua t t

c khóa c a b t n. L n th nh t gi i thu t a ch n

nh ng viên t t (da vào thông s s) k t thúc l n duy t này n u ch n c nhóm t a tiêu chí thì k t thúc. N u không ch c thì gi i thu t b tiêu chí ng viên t t và th c hi n l i l n hai ch i trà.

b. c ng viên motif gi i thu t duy t qua t t c các m t l tìm t t c nh ng th hi n motif. Gi i thu t tìm t t c các th hi n motif t ng viên motif chi ti t trong Hình 3.11.

Hình 3.11: Gi違i thu壱t Find_Motif tìm t医t c違 nh英ng th吋 hi羽n motif t瑛 motif 泳ng xk‒p"x "pi逢叡ng kho違ng cách t嘘k"8c"Tmax

Gi i thu t Find_Motif /* T : chu i d li i r c hóa * w : c c a s * Rmax ng kho ng các t * motif_instances : t p các th hi n motif tìm th y */ input : T, w, Rmax output : motif_instances

1 foreach feature in T // duy t qua t t c n

2 is_ok = true;

3 foreach instance in motif_instances // xét t t c các th hi c 4 if( isTrivial(feature, instance) or MINDIST(feature, instance) > Rmax) 5 is_ok = false; /* là th hi n motif n u vi ph m kh p t ng ho c có kho ng cách l max v i 1 th hi */ 6 break; 7 end; 8 end;

9 if( is_ok == true) u ki n là th hi n motif

10 motif_instances.Add(feature); // thê p các th hi n

11 Anomaly_candidates[ feature] = false; /* là ng viên

b c n a */

12 end;

M t th hi n motif n u và ch n u kho ng cách t n t t c nh ng th hi n khác trong motif không l ng Rmax.

nh n di n chu i con b u t t c nh trích t c a s u là ng viên b ng, các c lo i tr d n qua gi i thu t xây

d ng b Hình 3.8 (nh c l n

t thì không th là b c lo ). Các ng viên b ng ti p t c lo i tr qua gi i thu t tìm các th hi n motif trong Hình 3.11 (nh c hi n motif thì không th là b ng). i m ng kho ng cách Rmax i dùng ch p nh n là motif thì m t ng viên b ng ph i có kho n láng gi ng g n nh t c a nó l Rmax là hoàn toàn h p lý. Sau

c lo i tr này, s ng ng viên b ng thu gi m m .

Ti là b ng th c s t nh ng ng viên b ng còn

l xu t m t gi i thu t Forward_Backward Hình 3.12 th c hi u này. Gi i thu t Forward_Backward là gi i thu t l , lo i tr các ng viên b ng n khi s ng ng viên b ng còn l i là m t. c tiên gi i thu t kh i t o bi n r có giá tr kh u b ng giá tr Rmax, t i m i l n l p giá tr r s c gia v gia delta. M t h s thu gi m (reduce_ratio) cho bi t t l ph ng viên b lo i sau m i l n l p. Giá tr delta c tính d a trên s ng viên hi n t i và t l ng viên b lo i l n l theo công th c.

deltai = 潔欠券穴件穴欠建結 _軽剣件 堅結穴憲潔結_堅欠建件剣件伐1

(3.8)

Giá tr delta t l thu n v i s ng ng viên hi n t l ngh ch v i t l

lo i tr l n l m gi m kh a gi i thu t.

N u t i l n l ng ng viên b lo i quá nhi u thì t i l n l p hi n t i nên gi m giá tr delta h n ch ng h p s ng viên b ng không khi n gi i thu t ph i quay lui.

c l i n u t i l n l ng ng viên b lo i quá ít thì t i l n l p hi n t delta y quá trình lo i tr ng viên.

N u sau m c l p s ng viên còn l i b ng m t thì ta d ng ngay. N u sau m t c l p làm cho s ng ng viên b ng h p c n xem xét:

Hình 3.12: Gi違i thu壱t Forward_Backward nh壱n d衣pi"8員e"vt逢pi"d医v"vj逢運ng nh医t Gi i thu t Forward_Backward

input : Anomaly_candidates, T, w , Rmax //T: chu i d li u; w: c c a s t

output : anomaly // chu i con b ng th c s

1 candidate_No = Anomaly_candidates.Count;

2 r = Rmax;

3 back_track = false;

4 delta = 0.01;

5 reduce_ratio = Calculatereduce_ratio(); // tính h s lo i tr t ng viên sau quá trình tìm motif

6 while ( candidate_No > 1 )

7 copy = Anomaly_candidates.Copy(); // t o b ng h p quay lui n u có

8 if( back_track == true )

9 delta = delta / 2; // t i m i l n quay lui ta gi ng ½ l n l

10 else

11 delta = candidate_No / reduce_ratio; // tính delta d a trên t l lo i tr c a l n l c

12 end;

13 r += delta;

14 foreach candidate in Anomaly_candidates // t ng ng viên b c xem xét

15 foreach feature in T // v i t t c p d li u

16 if ( NonTrivialMatch(candidate, feature, r) == true) // n u kh p không t ng

17 Anomaly_candidates[candidate] = false; // lo i ng viên b ng

18 Anomaly_candidates[feature] = false; // feature v n có th là m t ng viên nên ta lo i

19 break; // thoát vòng l ki m tra ng viên ti p theo trong t p ng viên

20 end;

21 end;

22 end;

23 candidate_No = Anomaly_candidates.Count; //c p nh t s ng ng viên hi n t i

24 if (candidate_No == 0 ) // t i l n l p làm cho s ng ng viên = 0

25 Anomaly_candidates = copy; //chu n b c quay lui n u có

26 if ( delta < 0.02) // giá tr c c ti u mong mu n là 0.01

27 if ( r == Rmax + delta )

28 anomaly = null; // không có b ng khi v a m r = Rmax +0.01

29 break; // d ng gi i thu t v i k t qu null

30 else

31 break; // k t qu là u tiên tìm th y trong t p ng viên backup

32 end;

33 else

34 back_track = true; //quay lui

35 r = r delta; //khôi ph c giá tr

36 end;

37 else if (candidate_No == 1 )

38 break; // ng viên duy nh t còn l i là b ng th c s

39 else

40 reduce_ratio = Calculatereduce_ratio();//c p nh t l i t l lo i tr ng viên l n l p hi n t i

41 end;

X ng h p 1: delta = 0.01 thì có hai tình hu ng có th xãy ra:

o N u giá tr r = Rmax t ng viên b ng nào

có kho ng cách t i láng gi ng g n nh t l ng Rmax y không th tìm th y b ng h p này.

o N u giá tr r > Rmax sau l n l t

ng viên b ng gi i thu t r v i delta = 0.01 thì các ng u b lo i. Ta ch n m t ng viên tìm th u tiên là b ng.

X ng h p 2: delta > 0.01 delta quá l n làm cho t t c các ng viên b lo i thì th c hi n quay lui, gi m delta = delta lo i ít

Nh壱n xét:

G i m là s c a s t có c w. Gi s c c

thu gi m s chi u và r i r .

X Gi i thu t ch s d ng m t c u trúc b g m có các

khóa và các ch m c ch S ng là nh m

r t nhi u, không gian l x p x là m các s nguyên cho các ch m c.

X xây d ng b i thu t ch duy t t t c t l n, m i ki m tra có kh p v i các khóa hi n t i trong b hay không. N u s ng khóa r t nh so v i m thì gi i thu t ch c n x p x m l n ki m tra kh

X Quá trình tìm motif ng viên ch duy t qua các khóa trên b

l vì s ng r t nh so v i m.

X i v i quá trình nh n d ng chu i con b ng tùy thu c và c tính c a d li u. N u ta g i k là s ng viên b c sau quá trình tìm motif. ng h p x u nh t là quay lui nhi u l n, v i là s l n quay lui và g là h s thu gi m trung bình sau m i l n l p. S l n g i hàm kho ng cách ng là: k * m + * (k / g) * m

3.5Gi違i thu壱t RFMG

M t phiên b n lai ghép gi a gi i thu t FMG và gi i thu t chi u ng u nhiên, gi i thu t

RFMG (Random Feature Match Grouping) hình thành trên ý u t ng u nhiên vào quá trình xây d ng b c t

nh t thi t ph i so trùng t ng c p ký t mà ch c n so trùng i c c l a ch n ng u nhiên mà thôi. Giá tr i i dùng có th can thi p khi c n thi t.

A鵜pj"pij c"35. Khずr"8pe"vt⇔pi ngu nhiên (Random Feature Match c

kh p nhau ng u nhiên n không ph lp (not overlap) nhau và tr

tuy i c a hi u kho ng cách c a t ng c p ký t trong tt c các cpr"8⇔ぢc ly ngu

nhiên t t.

Ví d : ta có chu i d li i r c hóa là T = aacbaccacbc, c a s t w = 3, i = 2 Feature f1: aac Feature f9: cbc | f1i Î f9i | : 10 f1 và f9 là kh p c v i nhau vì c c xem xét. Nh壱n xét:

X V i tính ch t này gi i thu t RFMG cho th y quá trình gom nhóm

trong b gi i thu t FMG, ch p nh n nhi u trong nhóm, và k t qu motif tìm th y s vì mang tính ng u nhiên.

X Tuy nhiên gi i thu t không còn phù h p cho vi c nh n di n b ng vì các c cùng m t nhóm lúc b y gi không có m rõ ràng nên quá trình lo i tr ng viên b ng không còn chính xác n a.

X ng b ng th c s có th n m trong m t nhóm trong

b .

X Chi phí tính toán gi FMG FMG nhanh p

ch xem xét m t s c c ch n ng u nhiên mà thôi.

3.6 So sánh rj逢挨pi"rjƒr"vj詠c hi羽n c栄a các gi違i thu壱t 8q"vt逢噂c

n ti n khai phá, t t c các gi i thu t RP, FMG, RFMG u s d ng chung m s chi u PAA và r i r c hóa SAX.

n này gi a các gi i thu t

n khai phá motif, c ng viên motif, c ba gi i thu t RP, FMG, và RFMG ch duy t qua t t c các chu i con m t l c các th

hi n motif Các gi i thu t ch khác nhau

ch c d li u c n tìm ng viên motif. G i m là s chu i con, i là s l n l p trong chi u ng u nhiên, f là s ng khóa trong b .

a. V i gi i thu t chi u ng u nhiên (RP)

o D li c t ch c trong ma tr n 傘撫 và ma tr t 傘撫x傘撫. Không gian là: m các word và m2 các s nguyên trong ma tr n.

o Quá trình xây d ng ma tr t ph i tr i qua i l n l p trong phép chi u.T i m i l n l p ph i duy t qua t t c các word, m i word ph i th c hi n l n so trùng ký t v i t t c các khóa c a b , v i m

ph i duy t t t c các ch m c p nh t ma tr t s l n duy t và c p nh t ma tr t là t ng chi phí là: i * (f * m) + (m / f)2 / 2.

o Vi c tìm motif ng viên ph i duy t qua toàn b ma tr t tìm giá

Một phần của tài liệu Nhận dạng motif và bất thường trên dữ liệu chuỗi thời gian dựa vào kỹ thuật băm (Trang 42 - 56)

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

(87 trang)