Phƣơng pháp phát hiện motif dựa vào cấu trúc chỉ mục đa chiều và kỹ thuật từ

Một phần của tài liệu Khai phá dữ liệu chuỗi thời gian dựa vào rút trích đặc trưng bằng phương pháp điểm giữa và kỹ thuật xén ( 167 trang ) (Trang 96 - 102)

từ bỏ sớm.

Ý tƣởng cơ bản của phƣơng pháp này là sử dụng một cấu trúc chỉ mục đa chiều truyền thống nhƣ R*-tree [48] để tìm kiếm lân cận gần nhất hay các lân cận trong phạm vi một ngƣỡng cho trƣớc của một chuỗi thời gian và sử dụng ý tƣởng từ bỏ sớm

79

(early abandoning) đƣợc giới thiệu trong [71] để làm giảm độ phức tạp tính toán khoảng cách Euclid.

Với mỗi chuỗi thời gian có chiều dài n trong cơ sở dữ liệu, chúng tôi tạo một

vùng bao chữ nhật nhỏ nhất (Minimum Bounding Rectangle – MBR) cho nó trong không gian m chiều (m << n). Sau đó mỗi chuỗi thời gian đƣợc chèn vào R*-tree dựa vào MBR của nó. Để tìm lân cận gần nhất hay các lân cận trong phạm vi một ngƣỡng cho trƣớc của một chuỗi s bằng cách tìm kiếm trên R*-tree, chúng ta cần một hàm tính khoảng cách Dregion(s, R) của chuỗi s với một vùng bao MBR R đƣợc kết hợp với một nút trong cấu trúc chỉ mục sao cho Dregion(s, R) ≤ D(s, C), với mọi chuỗi thời gian C

trong MBR R.

Trƣớc khi giới thiệu định nghĩa của Dregion(s, R), chúng tôi sẽ mô tả cách tính khoảng cách này sao cho thỏa mãn điều kiện chặn dưới nhóm (group lower bound

condition), nghĩa là Dregion(s, R) ≤ D(s, C), với mọi chuỗi C trong MBR R.

Chú ý là mỗi chuỗi thời gian có chiều dài n có thể đƣợc xem nhƣ một điểm trong không gian n chiều. Giả sử rằng chúng ta đã xây dựng đƣợc một cấu trúc chỉ mục cho các chuỗi thời gian bằng cách chèn các điểm C = {c1, c2, ..., cn} vào trong một cấu trúc chỉ mục đa chiều dựa trên MBR. Giả sử chúng ta đã xấp xỉ chuỗi thời gian có chiều dài

n bằng m đoạn có chiều dài bằng nhau (m << n). Cho U là một nút của chỉ mục đó và R = {R1, R2, …, Rm} là MBR đƣợc kết hợp với U, trong đó Rj= {Lj, Hj}={(xjmin, yjmin), (xjmax, yjmax)} là một cặp điểm đầu cuối thấp nhất và cao nhất của đƣờng chéo chính của

Rj. Rj là vùng bao chữ nhật 2 chiều trong không gian giá trị - thời gian. Rj chứa các đoạn thứ jth của tất cả chuỗi thời gian đƣợc lƣu trong nút U. Giá trị và thời gian đƣợc biểu diễn tƣơng ứng bởi chiều y và chiều x. Theo định nghĩa, R là vùng bao chữ nhật nhỏ nhất chứa đựng chuỗi thời gian C đƣợc chèn vào nút U. Vùng bao MBR đƣợc kết hợp với nút không phải nút lá là vùng bao chữ nhật nhỏ nhất chứa các MBRs của các nút con trực tiếp của nó [47]. Chúng ta có thể xem MBR nhƣ là hai chuỗi: chuỗi chặn dƣới L = {L1, …, Lm} và chuỗi chặn trên H = {H1, …, Hm} của chuỗi thời gian đƣợc lƣu trong nút U. Để tính Dregion(s, R), chúng ta tính tích lũy các khoảng cách từ mọi giá trị trong s với R bằng cách tính khoảng cách, d(sji, Rj), từ các giá trị sji trong mỗi đoạn j (1≤ j ≤ m) của chuỗi thời gian s với vùng bao thứ j tƣơng ứng, Rj, của MBR R tùy theo giá trị đó ở trên, ở trong hay ở dƣới Rj.

80

Hình 4.1 Một ví dụ về cách tính Dregion(s, R).

Hình 4.1 minh họa một ví dụ về cách tính Dregion(s, R). Trong ví dụ này s = {s1, …, s9}= {s11, …, s33}, R ={R1, R2, R3} và chúng ta có 2 min 3 32 2 min 2 21 2 max 1 11 ) ( ) ( ) ( ) , (s R s y s y s y Dregion       Các giá trị khác bằng 0 vì chúng nằm trong R.

Định nghĩa 14. Cho mộtchuỗi thời gian s có chiều dài n, một tập chuỗi thời gian C và một vùng bao tƣơng ứng MBR R của C trong không gian m chiều (m << n), nghĩa là R = {R1, R2, …, Rm}, trong đó Rj = {(xjmin, yjmin), (xjmax, yjmax)} là một cặp điểm đầu cuối thấp nhất và cao nhất của đƣờng chéo chính của Rj. Hàm tính khoảng cách

Dregion(s, R) của chuỗi s với MBR R đƣợc tính theo công thức sau.

Trong đó

N là chiều dài của đoạn j.

Để đảm bảo việc dùng độ đo khoảng cách Dregion(s, R) khi tìm kiếm các lân cận của một chuỗi thời gian dựa vào cấu trúc chỉ mục đa chiều đƣợc đúng đắn, độ đo này cần thỏa mãn điều kiện chặn dƣới nhóm đƣợc nêu lên bằng bổ đề sau đây.

Bổ đề 3. Dregion(s, R) ≤ D(s, C), với mọi chuỗi thời gian C trong MBR R.

Trong đó

Chứng minh.

Theo định nghĩa của MBR đƣợc kết hợp với nút U trong cấu trúc chỉ mục và định nghĩa của hàm tính khoảng cách Dregion(s, R), với bất kỳ chuỗi C đƣợc đặt trong nút U

s R s11 s12 s13 s21 s22 s23 s31 s32 s33 y1max y1min y2max y2min y3max y3min R1 R2 R3    N i j ji j j region s R d s R D j 1 ) , ( ) , (          m j N i ji ji n i i i c s c s C s D 1 1 2 1 2 ) ( ) ( ) , (    m j j j region region s R D s R D j 1 ) , ( ) , ( (4.1) ngƣợc lại nếu sji > yjmax          0 ) ( ) ( ) , ( max 2 2 min j ji ji j j i j s y s y R s d nếu sji < yjmin

81 và MBR R đƣợc kết hợp với U, chúng ta có

yjmin ≤ cji ≤ yjmax, i = 1, .., N, j = 1, .., m

Suy ra , j = 1, .., m

Trong đó

Vì vậy Dregion(s, R) ≤ D(s, C), C trong MBR R □ Công thức (4.1) đƣợc sử dụng trong R*-tree để tìm kiếm chuỗi lân cận gần nhất hoặc các chuỗi lân cận trong phạm vi một ngƣỡng cho trƣớc của chuỗi thời gian si.

Trong bài toán phát hiện những motif bậc k hàng đầu với một ngƣỡng R cho (adsbygoogle = window.adsbygoogle || []).push({});

trƣớc theo định nghĩa căn bản của motif (Định nghĩa 5), khi một danh sách X chứa vị trí các chuỗi con lân cận không tầm thƣờng của si đƣợc tìm thấy, các chuỗi con tƣơng ứng với các vị trí có trong danh sách X đƣợc khôi phục. Nếu có chuỗi con sj nào trong

X có khoảng cách với chuỗi con si lớnhơn R thì xóa j khỏi X. Cuối cùng si sẽ đƣợc đƣa vào danh sách những motif bậc k hàng đầu nếu thỏa điều kiện đƣợc cho trong định

nghĩa căn bản của motif (Định nghĩa 5).

Tiến trình trên đƣợc lặp lại cho đến khi không còn chuỗi hay chuỗi con nào cần đƣợc xem xét. Độ đo khoảng cách giữa hai chuỗi (si, sj) đƣợc sử dụng trong nghiên cứu này là khoảng cách Euclid vì nó đƣợc xem là bằng hay tốt hơn nhiều độ đo phức tạp khác trong nhiều lĩnh vực khác nhau [92].

Các lân cận tầm thường của một chuỗi con đƣợc loại bỏ trong thuật toán đề xuất bằng cách dùng vị trí tƣơng quan của các chuỗi con. Nghĩa là, một cặp chuỗi con là một cặp lân cận không tầm thường nếu chúng là hai chuỗi con tƣơng tự nhau và cách nhau một khoảng ít nhất là w vị trí (w đƣợc xác định bởi ngƣời dùng).

Kỹ thuật từ bỏ sớm.

Vì độ phức tạp tính toán khoảng cách Euclid giữa hai chuỗi thời gian có chiều dài n là O(n), chúng ta cần giảm độ phức tạp tính toán này. Trong bài toán phát hiện motif, chúng ta phải tìm các lân cận cho một chuỗi thời gian xác định. Vì thế ta có thể áp dụng ý tƣởng từ bỏ sớm [71] để làm giảm thiểu độ phức tạp này. Ý tƣởng này đƣợc thực hiện nhƣ sau: Cho khoảng cách BestSoFar là ngƣỡng tƣơng tự của một cặp chuỗi con. Để tìm các lân cận không tầm thƣờng của chuỗi con si trong phạm vi ngƣỡng

BestSoFar, khoảng cách Euclid đƣợc tính cho chuỗi con si và chuỗi con sj đang xét,

) , ( ) , ( j j j j region s R D s C D j      N i ji ji j j C s c s D 1 2 ) ( ) , (

82

khi tổng tich lũy của khoảng cách Euclid lớn hơn ngƣỡng tƣơng tự BestSoFar tại một điểm nào đó, chúng ta có thể hủy bỏ việc tính toán bởi vì chuỗi con sj không thể là lân cận không tầm thƣờng của si.

Hình 4.2 minh họa trực quan ý tƣởng của kỹ thuật này. Trong ví dụ này ngƣỡng tƣơng tự BestSoFar đƣợc giả định là 12. Tại điểm mà bình phƣơng khoảng cách các điểm đƣợc tính trƣớc đó lớn hơn 144, chúng ta có thể dừng việc tính toán này.

Hình 4.2 Minh họa trực quan ý tưởng của kỹ thuật từ bỏ sớm ( [71]).

Mô tả giải thuật.

Hình 4.3 minh họa thuật toán phát hiện những motif bậc k hàng đầu xấp xỉ theo định nghĩa căn bản (Định nghĩa 5, chƣơng 2) với sự hỗ trợ của R*-tree và ý tƣởng từ bỏ sớm. Trong thuật toán ở Hình 4.3, thủ tục NEAREST_THRESHOLD_R(si, R*-tree,

R) đƣợc dùng để tìm các lân cận không tầm thƣờng của chuỗi con si trong phạm vi ngƣỡng tƣơng tự R dựa vào sự hỗ trợ của cấu trúc chỉ mục R*-tree. Thủ tục NEAR- EST_THRESHOLD_R sử dụng hàm tính khoảng cách Dregion(s, R) giữa một chuỗi s và một MBR R trong R*-tree, đƣợc xác định trong Định nghĩa 14 (chƣơng 4) và thỏa Bổ đề 3 (chƣơng 4). Thủ tục này trả về danh sách X chứa vị trí các chuỗi con lân cận

không tầm thƣờng của chuỗi con si. Khi có danh sách X, lần lƣợt các chuỗi con sx

tƣơng ứng với các phần tử x trong X sẽ đƣợc khôi phục và gọi hàm

DIS_EARLY_ABAN(si, sx, R) để tính khoảng cách Euclid giữa hai chuỗi con si, sx có áp dụng ý tƣởng từ bỏ sớm (xem Hình 4.4). Nếu DIS_EARLY_ABAN(si, sx, R) > R

thì x sẽ đƣợc xóa bỏ trong X. Nếu X thỏa các điều kiện trong định nghĩa căn bản của

motif (Định nghĩa 5, chƣơng 2), nó sẽ đƣợc chèn vào danh sách những motif bậc k

hàng đầu sao cho các phần tử trong danh sách luôn đƣợc sắp thứ tự giảm dần theo số đối tƣợng của các phần tử trong danh sách. Quá trình trên đƣợc lặp lại cho đến khi không còn chuỗi con nào cần đƣợc xem xét.

83

Thuật toán Phát hiện những motif bậc k hàng đầu xấp xỉ (theo định nghĩa căn bản của mo- tif) với sự hỗ trợ của R*-tree và ý tƣởng từ bỏ sớm.

// S là một chuỗi thời gian có chiều dài n, si là một chuỗi con có chiều dài m trong S

// L là danh sách top k-motif, Ck là motif thứ k, R là ngƣỡng tƣơng tự để tìm chuỗi lân cận //X là danh sách vị trí các chuỗi con lân cận không tầm thƣờng tìm đƣợc của chuỗi con si

Procedure L = FINDING_TOP_k_MOTIF(S, k, m, R)

Fori = 1 ton-m+1

{

Dùng một cửa sổ có chiều dài m trƣợt qua S để trích chuỗi con si bắt đầu tại vị trí i. If (R*-tree != null) X = NEAREST_THRESHOLD_R(si, R*-tree, R) (adsbygoogle = window.adsbygoogle || []).push({});

For mỗi phần tử x trong X

if (DIS_EARLY_ABAN(si, sx,R) > R) Xóa x khỏi X if (X is null) Break

else {

if (L is null) L1 = X

else if (DIS_EARLY_ABAN (si, Cj, 2R) > 2RCj trong L) {

if (số phần tử trong L < k)

Chèn X vào L sao cho các phần tử trong L luôn theo thứ tự giảm dần của số đối tƣợng có trong mỗi phần tử

ElseIf (số đối tƣợng trong X > số đối tƣợng trong phần tử Lk ) Xóa phần tử Lk khỏi L.

Chọn vị trí y trong L có số đối tƣợng lớn nhất thỏa điều kiện

số đối tƣợng trong phần tử Ly < số đối tƣợng trong X Chèn X vào L tại vị trí y

}

}

Tìm vùng bao chữ nhật nhỏ nhất của chuỗi si (MBRi) ADD(MBRi, R*-tree)

}

// tìm các lân cận không tầm thƣờng của chuỗi con si trong phạm vi ngƣỡng R bằng R*-tree

NEAREST_THRESHOLD_R(si, R*-tree, R)

Duyệt R*-tree bắt đầu từ gốc để tìm các nút lá mk có Dregion(si, MBRk) ≤ R. Với mỗi nút lá mk tìm đƣợc,

Tìm phần tử x trong mk là lân cận không tầm thƣờng trong phạm vi ngƣỡng R của si. Đƣa vị trí của x vào danh sách (X) các lân cận không tầm thƣờng của chuỗi si. Trả về X.

ADD(MBRj, R*-tree) //Chèn chuỗi thời gian j vào R*-tree dựa vào MBRj.

Chọn cây con trong R*-tree sao cho MBR của nó cần mở rộng ít nhất khi chèn MBRjvào.

Thêm phần tử mới vào nút lá của cây con. Nếu nút lá bị đầy

-Tách nút thành hai nút con sao cho tổng diện tích của hai vùng bao của hai nút con sau khi tách là nhỏ nhất.

- Tiến trình tách nút đƣợc lặp lại cho các nút cha nếu nút cha bị đầy do việc tách nút con gây ra.

Hình 4.3 Thuật toán phát hiện những motif bậc k hàng đầu (theo Định nghĩa 5) với sự hỗ trợ của R*-tree.

84

// Hàm tính khoảng cách Euclid kết hợp với ý tƣởng từ bỏ sớm.

DIS_EARLY_ABAN(x, y, BestSoFar)

sum = 0; Bsf = BestSoFar * BestSoFar

For (i = 0; i < x.length andsumBsf; i++) sum = sum + (xi- yi) * (xi - yi)

return square_root(sum) (adsbygoogle = window.adsbygoogle || []).push({});

Hình 4.4 Minh họa thuật toán tính khoảng cách Euclid kết hợp với ý tưởng từ bỏ sớm. Để giảm độ phức tạp, các thuật toán trên có thể đƣợc áp dụng cho bài toán phát hiện motif xấp xỉ trong chuỗi thời gian đƣợc biến đổi bởi các phƣơng pháp thu giảm số chiều có thể dùng đƣợc với R*-tree nhƣ PAA, APCA, DFT, DWT, v.v...

Một phần của tài liệu Khai phá dữ liệu chuỗi thời gian dựa vào rút trích đặc trưng bằng phương pháp điểm giữa và kỹ thuật xén ( 167 trang ) (Trang 96 - 102)