Luận văn cũng đề xuất sử dụng các độ dài motif tìm được từ cách tiếp cận này để làm tham số chiều dài cho các giải thuật phát hiện motif khác, đồng thời áp dụng các motif tìm được để phá
GIỚI THIỆU ĐỀ TÀI
Dữ liệu chuỗi thời gian
Dữ liệu chuỗi thời gian là dữ liệu đo đạc đƣợc một cách tuần tự theo thời gian Đối tƣợng dữ liệu có thể có hai hay nhiều chiều nhƣng trong đó phải có một chiều là thời gian Có rất nhiều dữ liệu có yếu tố thời gian nhƣ dữ liệu về giá chứng khoán, điện tâm đồ (Hình 1.1), mực nước, lưu lượng truyền trên mạng, dữ liệu tài chính, thiên văn, thời tiết, mức độ ô nhiễm môi trường, …
Hình 1.1 Dữ liệu điện tâm đồ
Dữ liệu chuỗi thời gian thường được đo đạc liên tục trong thời gian dài nên thường có kích thước rất lớn và gia tăng nhanh Các giải thuật khai phá dữ liệu chuỗi thời gian thường có chi phí rất lớn về thời gian thực thi và tài nguyên bộ nhớ
Do đó việc nghiên cứu các phương pháp hiệu quả để khai phá các dữ liệu chuỗi thời gian rất quan trọng và thu hút rất nhiều sự quan tâm.
Khai phá thông tin trên dữ liệu chuỗi thời gian
Việc khai phá dữ liệu chuỗi thời gian đã và hiện thu hút rất nhiều sự nghiên cứu trên thế giới Dữ liệu chuỗi thời gian xuất hiện rất nhiều trong các lĩnh vực trong công nghệ hiện nay, cụ thể là một số lĩnh vực nghiên cứu sau:
Lập chỉ mục (Indexing): cho một chuỗi thời gian truy vấn Q, và một hàm tính độ tương tự hoặc độ sai biệt D(Q,C), tìm những chuỗi thời gian tương tự nhất với Q trong cơ sở dữ liệu nào đó
Gom cụm (Clustering): tìm những sự phân nhóm, gom cụm dữ liệu theo tự nhiên của những chuỗi thời gian trong cơ sở dữ liệu thông qua một hàm tính độ tương tự D(Q,C)
Phân lớp (Classification): cho một dữ liệu chuỗi thời gian chƣa gán nhóm Q, gán nó vào một trong những nhóm dữ liệu đã được định nghĩa trước
Tổng hợp (Summarization): cho chuỗi thời gian Q có n điểm dữ liệu trong đó n là con số rất lớn, tạo một sự xấp xỉ của Q để vừa khít theo một giới hạn nào đó (chẳng hạn màn hình máy tính, trang giấy…) sao cho vẫn duy trì những đặc trƣng bản chất của nó
Phát hiện bất thường (Abnormaly detection): cho một chuỗi thời gian Q,
Khai phá bất thường (anomaly) là tìm một chuỗi con khác biệt nhất với tất cả các chuỗi con khác trong dữ liệu chuỗi thời gian
Phát hiện Motif ( Motif detection ) cho một chuỗi thời gian Q, motif là chuỗi con chưa biết trước xuất hiện nhiều lần trong một chuỗi dữ liệu chuỗi thời gian dài hơn Khái niệm này đƣợc tổng quát hóa thành bài toán tìm kiếm k- motif , với kết quả cần tìm là k nhóm motif đầu tiên Phát hiện motif trong dữ liệu chuỗi thời gian là một công việc quan trọng trong khai phá dữ liệu chuỗi thời gian
Vì dữ liệu chuỗi thời gian là rất lớn, không lưu trữ đủ trong bộ nhớ chính, do đó cần rất nhiều lần truy cập bộ nhớ ngoài, gây ra hiện tƣợng thắt cổ chai cho các nhiệm vụ khai phá dữ liệu (dù là hiện nay tốc độ truy xuất đĩa đã đƣợc cải thiện đáng kể, nhưng tốc độ gia tăng kích thước dữ liệu chuỗi thời gian là nhanh hơn rất nhiều lần) Để hạn chế tối đa số lần truy cập đĩa người ta thường dùng xấp xỉ các chuỗi dữ liệu sao cho vừa khớp với bộ nhớ chính Một khung chung để thực hiện các tác vụ khai phá dữ liệu chuỗi thời gian đƣợc đề ra ở [1] Cách tiếp cận cơ bản này đƣợc chỉ ra trong Bảng 1.1 nhƣ sau:
3 1 Tạo một sự xấp xỉ dữ liệu để nó vừa khớp với bộ nhớ chính, nhƣng vẫn duy trì các đặc trƣng cần quan tâm
2 Giải quyết bài toán với dữ liệu xấp xỉ trong bộ nhớ chính
3 Truy cập dữ liệu gốc để sau đó kiểm lời giải ở bước 2, bổ sung lời giải sao cho chính xác với dữ liệu gốc
Bảng 1.1 Cách tiếp cận chung cho các nhiệm vụ khai phá dữ liệu
Hiệu quả của khung chung này phụ thuộc nhiều vào chất lượng của phương pháp mà ta xấp xỉ ở bước 1 Nếu ta xấp xỉ càng gần với dữ liệu gốc thì lời giải mà ta có đƣợc trong bộ nhớ chính sẽ càng gần với lời giải có đƣợc với dữ liệu gốc và dẫn đến số lần truy cập đĩa ngoài ở bước 3 là càng ít Do vậy nên đã có nhiều nghiên cứu về việc xấp xỉ và để so sánh các phương pháp xấp xỉ.
Phát hiện motif trên chuỗi dữ liệu thời gian
Phát hiện motif là tìm ra những chuỗi con tương tự nhau xuất hiện lặp đi lặp lại trong dữ liệu chuỗi thời gian (Hình 1.2) Phát hiện bất thường (abnormaly) là tìm một chuỗi con khác biệt nhất với tất cả các chuỗi con khác trong dữ liệu chuỗi thời gian (Hình 1.3)
Trong khi phát hiện bất thường kết quả trả về đòi hỏi phải là kết quả chính xác thì phát hiện motif kết quả trả về có thể là một kết quả xấp xỉ Hai hướng tiếp cận chính của các giải thuật phát hiện motif là:
Phát hiện motif chính xác (exact motif): là việc ta thực hiện trực tiếp trên dữ liệu thô thông qua giải thuật brute-force làm nền tảng từ đó có thể cải tiến giải thuật bằng cách áp dụng một số heuristic nhằm giảm độ phức tạp cho giải thuật cho giải thuật Hầu hết các giải thuật theo hướng này có tính đúng và tính đầy đủ cao tuy nhiên tính hiệu quả không cao và chỉ phù hợp với dữ liệu có kích thước nhỏ
Phát hiện motif xấp xỉ (approximate motif): dữ liệu chuỗi thời gian sẽ đƣợc xử lý trước khi thực hiện việc khai phá như thu giảm số chiều, rời rạc hóa dữ
4 liệu Trong quá trình khai phá dữ liệu có thể áp dụng một số tính chất dựa trên xác suất, tính ngẫu nhiên Hướng tiếp cận này giúp tăng tính hiệu quả của giải thuật trong khi tính đúng và tính đầy đủ vẫn có thể chấp nhận đƣợc đồng thời nó phù hợp với dữ liệu có kích thước lớn
Hình 1.2 Một minh hoạ chuỗi con motif
Hình 1.3 Một minh hoạ chuỗi con bất thường
Mục tiêu và giới hạn của đề tài
Mục tiêu chính của luận văn là nghiên cứu phương pháp phát hiện motif trên dữ liệu chuỗi thời gian Đề tài này dựa trên nghiên cứu Yuan Li và Jessica Lin đề xuất năm 2010 và 2012 [11, 17] về cách sử dụng suy diễn văn phạm của giải thuật Sequitur để phát hiện motif trên dữ liệu chuỗi thời gian Tuy nhiên nhóm tác giả bài báo trên chƣa tiến hành thực nghiệm, so sánh với các giải thuật phát hiện motif trước đó, cũng như nhóm tác giả chỉ tiến hành thực nghiệm trên 02 tập dữ liệu là ECG và WINDING Do đó, để có cái nhìn khách quan hơn về phương pháp phát hiện motif này chúng tôi tiến hành thực hiện với các nội dung sau:
5 - Tìm hiểu về phép gộp xấp xỉ ký hiệu hóa SAX và phép gộp xấp xỉ kí hiệu hóa mở rộng ESAX
- Tìm hiểu về giải thuật Sequitur với phép biến đổi SAX và ESAX
- Đề xuất phương pháp phát hiện motif trên dữ liệu chuỗi thời gian dựa vào giải thuật Sequitur và phép biến đổi ESAX
- Trực quan hóa kết quả phát hiện motif thu đƣợc
- Chúng tôi tiến hành thực nghiệm trên nhiều tập dữ liệu, so sánh giữa các phương pháp phát hiện motif với nhau: giải thuật Sequitur với phép biến đổi SAX và ESAX để lựa chọn ra phương pháp tiếp cận phù hợp Ứng dụng kết quả độ dài motif thu được từ phương pháp đề xuất để xác định tham số độ dài motif cho các giải thuật phát hiện motif khác nhƣ giải thuật chiếu ngẫu nhiên RP Sau đó chúng tôi so sánh, đánh giá kết quả đạt đƣợc giữa giải thuật Sequitur với phép biến đổi ESAX và giải thuật chiếu ngẫu nhiên RP
- Ứng dụng phát hiện motif tìm đƣợc để phát hiện tính chu kì trên dữ liệu chuỗi thời gian.
Những kết quả đạt đƣợc
Trong giới hạn thời gian làm luận văn, chúng tôi đã hiện thực hệ thống phát hiện motif dữ liệu chuỗi thời gian, gồm 5 phần chính: phần tiền xử lý dữ liệu, phần rời rạc hoá chuỗi dữ liệu chuỗi thời gian, phần các giải thuật phát hiện motif , phần trực quan hóa dữ liệu và phần ứng dụng để tìm tính chu kì trên dữ liệu chuỗi thời gian
Trong phần thứ nhất, dữ liệu gốc sau khi đã đƣợc chuẩn hoá và qua phép biến đổi thu giảm số chiều PAA, qua phép biến đổi thu giảm số chiều mở rộng
EPAA chúng tôi trích ra các chuỗi con từ tập dữ liệu tập dữ liệu đã đƣợc thu giảm đó và tạo thành tập dữ liệu các chuỗi con
Trong phần thứ hai, chúng tôi hiện thực hai phương pháp rời rạc hóa dữ liệu chuỗi thời gian là SAX và ESAX từ tập dữ liệu đã thu giảm số chiều PAA và thu giảm số chiều mở rộng EPAA
6 Phần thứ ba, chúng tôi hiện thực các giải thuật dùng để phát hiện motif giải thuật Random Projection trên phép biến đổi SAX, phương pháp đề xuất dựa vào giải thuật Sequitur trên phép biến đổi ESAX để phát hiện motif
Phần thứ tƣ, chúng tôi trực quan hóa kết quả thu đƣợc
Phần cuối cùng, chúng tôi ứng dụng kết quả phát hiện motif để hiện thực việc phát hiện tính chu kì trên dữ liệu chuỗi thời gian
Hệ thống của chúng tôi chạy thực nghiệm với các bộ dữ liệu khác để đánh giá, so sánh độ hiệu quả giữa giải thuật chiếu ngẫu nhiên với phép biến đổi SAX, giải thuật Sequitur với phép biến đổi SAX và phương pháp đề xuất dựa vào giải thuật Sequitur trên phép biến đổi ESAX để áp dụng vào bài toán phát hiện motif
Qua thực nghiệm, chúng tôi thấy phương pháp đề xuất dựa vào giải thuật Sequitur trên phép biến đổi ESAX cho kết quả motif với các độ dài khác nhau và nhanh hơn các giải thuật truyền thống, từ đó chúng tôi ứng dụng kết quả độ dài motif thu đƣợc từ phương pháp đề xuất để làm tham số độ dài motif cho các giải thuật phát hiện motif khác Cũng dựa vào việc phát hiện motif này, chúng tôi cũng đã ứng dụng để phát hiện tính chu kì trên dữ liệu chuỗi thời gian với kết quả khá chính xác.
Cấu trúc của luận văn
Chương 1, giới thiệu vấn đề, sự cần thiết và phương thức thực hiện trên dữ liệu chuỗi thời gian
Chương 2, trình bày tổng quan các khái niệm cơ bản về dữ liệu thời gian, các công trình liên quan về các hàm tính độ tương tự, các phương pháp thu giảm số chiều, các phương pháp rời rạc hóa dữ liệu chuỗi thời gian Chương 3, làm rõ cơ sở lý thuyết nền tảng của các phương pháp biểu diễn và các giải thuật được chọn sau khi khảo sát các công trình có liên quan ở chương 2
Chương 4, trình bày hệ thống phát hiện motif trên dữ liệu chuỗi thời gian của chúng tôi
Chương 5, các kết quả thực nghiệm được công bố, so sánh và chạy thực nghiệm hệ thống trên các tập dữ liệu khác nhau
Chương 6, một số kết luận và hướng mở rộng của đề tài
CƠ SỞ LÝ THUYẾT
Một số khái niệm cơ bản
Dữ liệu chuỗi thời gian là một tổ hợp tuần tự của những mẫu dữ liệu đo đạc đƣợc một cách liên tục theo thời gian Một mẫu dữ liệu chuỗi thời gian có thể là một giá trị đơn (là một con số thực), thì ta gọi là chuỗi thời gian một kênh (single- chanel time series) hoặc có thể là một véctơ các giá trị (véc tơ những con số thực), thì đƣợc gọi là chuỗi thời gian nhiều kênh (multi-chanel time series) Dữ liệu chuỗi thời gian một kênh ta có thể thấy trong dữ liệu chứng khoán, dữ liệu điện tim đồ, dữ liệu năng lƣợng Dữ liệu nhiều kênh ta thể thấy trong dữ liệu (motion capture) ghi nhận nhiều góc độ khác nhau của một hành động Trong luận văn này chúng tôi chỉ làm việc trên dữ liệu một kênh, đồng thời giả sử rằng tất cả những mẫu giá trị đƣợc đo đạc liên tục tại các thời khoảng bằng nhau
2.1.1 Chuỗi thời gian (Time series)
Chuỗi thời gian (Time Series) T = t 1 , t 2 … t m là tập hợp có thứ tự các quan sát đơn biến hoặc đa biến đƣợc đo sau những khoảng thời gian bằng nhau theo thời gian
Cho một dữ liệu chuỗi thời gian T có chiều dài là n, một chuỗi con C ( Hình 2.1) trong T có chiều dài w là một mẫu của những giá trị liên tục đƣợc trích từ T
Hình 2.1 Một minh hoạ về chuỗi con
2.1.3 Cửa sổ trƣợt (Slide window)
Cho một dữ liệu chuỗi thời gian T có chiều dài n, một cửa sổ có kích thước w do người dùng định nghĩa (thường w 2R, với mọi 1 ≤ i ≤ k (Hình 2.3B là minh họa)
9 Định nghĩa này muốn nhấn mạnh rằng các chuỗi con trong tập các motif phải tách biệt nhau Điều này rất quan trọng vì nếu nhƣ hai motif mà có những chuỗi con chung thì nó nên đƣợc xem là một motif (Hình 2.3A là minh họa)
Hình 2.3 Khoảng cách hai motif < 2R (A); Khoảng cách hai motif > 2R (B)
2.1.7 Chu kì Định nghĩa 1: Đặt S = t 0 , t 1 …t n-1 là một chuỗi đại diện của chuỗi dữ liệu thời gian có độ dài n, kí hiệu |S|=n S đƣợc nói là có tính chu kì nếu S(t) = S(t+p), với t
N, t ≥ 0, t < n-p, T là một chuỗi con của S sao cho T = t 0 , t 1 …t p-1 , |T|=p, p ≥ 1 và p ≤ n/2 Chuỗi con T nhỏ nhất đƣợc gọi là chu kì của S Nếu không tìm ra đƣợc chu kì T nào trong S, ta nói S không có tính chu kì Ví dụ, nếu S = wxywxywxy, thì chu kì T = wxy, p = 3 Để rõ ràng, chúng ta không xem xét những chuỗi con có độ dài (m*p) là một chu kì của S với m bất kì sao cho m ≠ 1 [15] Định nghĩa 2: Đặt S là chuỗi có độ dài n trên bảng kí tự ∑ Gọi r là hàm sai số đƣợc định nghĩa trên các chuỗi S đƣợc gọi là có tính chu kì với sai số k trên T nếu tồn tại một chuỗi T trên ∑ sao cho r(S, T)=k, r là đánh giá sai số T là chu kì của S
Chuỗi T làm cho giá trị k nhỏ nhất đƣợc gọi là chu kì xấp xỉ của S [15]
Các công trình về độ đo tương tự
Trong các bài toán về dữ liệu chuỗi thời gian, việc tính mức độ tương tự giữa hai chuỗi con đóng vai trò rất quan trọng Khi so sánh hai chuỗi con có tương tự với nhau hay không ta phải dùng một phương pháp để tính mức độ tương tự giữa chúng gọi là hàm khoảng cách Nếu nhƣ khoảng cách giữa hai chuỗi con bằng không, ta nói hai chuỗi con là giống hệt nhau Nếu nhƣ khoảng cách giữa hai chuỗi con càng lớn (càng xa) thì mức độ khác biệt của hai chuỗi con càng cao Phương pháp tính độ đo trong luận văn này chỉ đề cập những phương pháp tính độ đo trên hai chuỗi con có chiều dài bằng nhau
Hầu hết các công trình đều dựa trên độ đo khoảng cách này Khoảng cách Minkowski đƣợc định nghĩa nhƣ sau: p n i p i i y
Tuy p có thể có nhiều giá trị khác nhau nhưng trong các nghiên cứu p thường nhận
Trong luận văn này chúng tôi sẽ sử dụng độ đo Euclid Một số ƣu điểm và nhược điểm của phương pháp này: Ƣu điểm:
- Quá trình tính toán đơn giản và dễ dàng
- Phù hợp khi sử dụng các biến đổi DFT, DWT, PAA, APCA, SAX (các phương pháp biến đổi này sẽ được trình bày bên dưới của chương)
- Không hiệu quả với dữ liệu đƣợc đo ở nhiều thang đo khác nhau
2.2.2 Độ đo xoắn thời gian động (Dynamic Time Warping- DTW)
Phương pháp DTW do Berndt và các cộng sự đề ra năm 1994 [5] Việc so trùng 2 đường biểu diễn dữ liệu bằng cách tính khoảng cách từng cặp điểm 1-1 (điểm thứ i của đường thứ I so với điểm thứ i của đường thứ II) như phương pháp Minkowski là không phù hợp trong trường hợp hai đường này không hoàn toàn giống nhau nhưng hình dạng biến đổi rất giống nhau Như trong (Hình 2.4a), hai đường biểu diễn rất giống nhau về hình dạng nhưng lệch nhau về thời gian Trong trường hợp này, nếu tính khoảng cách bằng cách ánh xạ 1-1 giữa 2 đường thì kết quả rất khác nhau và kết quả cuối cùng có thể không nhƣ mong muốn Để khắc phục, một điểm có thể ánh xạ với nhiều điểm và ánh xạ này không thẳng hàng (Hình 2.4b) Phương pháp này gọi là xoắn thời gian động [5] Để tìm DTW của S = s 1 , s 2 ,…,s n và T = t 1 , t 2 ,…,t m , ta sắp xếp 2 chuỗi thời gian này lên mặt phẳng lưới n x m, trong đó mỗi điểm lưới (i ,j) tương ứng với một sự ánh xạ giữa s i và t j Đường đi xoắn W, ánh xạ các thành phần của S và T, để
“khoảng cách” giữa chúng là nhỏ nhất
Trong đó w k tương ứng với điểm (i, j) k như trong Hình 2.5 bên dưới Có rất nhiều cách tính khoảng cách giữa 2 thành phần s i và t j , có thể tính theo một trong hai cách sau: δ(i, j) = |s i – t j | δ(i, j) = (s i – t j ) 2
∑ , nhƣ vậy DTW(S, T) = min w [ ∑ ] Để giới hạn không gian tìm kiếm đường đi xoắn, những ràng buộc sau phải được thỏa mãn:
Tính đơn điệu (monotonicity): những điểm ánh xạ phải có thứ tự theo thời gian, tức là i k-1 ≤ i k và j k-1 ≤ j k
Tính liên tục (continuity): những bước chuyển trên lưới chỉ giới hạn ở những điểm lân cận, i k – i k-1 ≤ 1 và j k – j k-1 ≤ 1
Cửa sổ xoắn (warping window): những điểm cho phép ánh xạ phải nằm trong cửa sổ xoắn cho trước, tức là |i k – j k | ≤ ω, trong đó ω là chiều rộng của cửa sổ xoắn (số nguyên dương) (Hình 2.5)
Ngoài ra, còn một số ràng buộc khác cần thỏa mãn để việc tìm kiếm có hiệu quả và nhanh hơn ta có thể tìm kiếm đường đi xoắn theo giải thuật quy hoạch động, dựa trên công thức truy hồi định nghĩa khoảng cách tích lũy λ(i, j), của mỗi điểm λ(i, j) = δ(i, j) + min[λ(i-1, j), λ(i-1, j-1), λ(i, j-1)] Ƣu điểm:
Cho kết quả chính xác hơn độ đo Euclid
Cho phép nhận dạng mẫu có hình dạng giống nhau nhƣng chiều dài hình dạng về thời gian có thể khác nhau
Nhƣợc điểm: Thời gian chạy lâu Một số ràng buộc đƣợc đề ra để tăng tốc độ tìm kiếm [5]
(a) Tính theo khoảng cách Euclid (b) Tính theo khoảng cách DTW
Hình 2.4 Minh hoạ sự khác nhau giữa hai độ đo Euclid và DTW
Hình 2.5 Một ví dụ đường xoắn [5]
Các công trình về biểu diễn chuỗi thời gian
Vì dữ liệu chuỗi thời gian là rất lớn, không thể xử lý trong bộ nhớ chính mà phải tốn nhiều lần truy cập đĩa ngoài, chi phí truy cập đĩa ngoài là rất đáng kể so với chi phí tính toán, thường gây ra hiện tượng thắt cổ chai khi thực hiện các nhiệm vụ khai phá dữ liệu Do đó, nhiều phương pháp xấp xỉ chuỗi thời gian được đề xuất để có thể dễ dàng xử lý trong bộ nhớ chính và giảm thiểu số lần truy cập đĩa ngoài
Những phương pháp này thường được gọi là những kỹ thuật thu giảm số chiều
(dimensionality reduction) Một số phương pháp vừa thu giảm số chiều vừa rời rạc hóa dữ liệu chuỗi thời gian đƣợc gọi là phương pháp rời rạc hóa (discretization) và phương pháp tổng quát để thu giảm số chiều có thể tóm tắt như sau:
Thiết lập một độ đo tương tự d (hay còn gọi là hàm tính khoảng cách, thường dùng là hàm tính khoảng cách Euclid)
Thiết kế một kỹ thuật thu giảm số chiều để rút trích một đặc trƣng có chiều dài k (tức là một đặc trƣng gồm k giá trị), với k có thể đƣợc xử lý một cách hữu hiệu nhờ một cấu trúc chỉ mục không gian (đa chiều)
Cung cấp một độ đo tương tự d k trên không gian đặc trưng k chiều trên và chứng tỏ rằng nó thỏa điều kiện chặn dưới sau: d k (X’, Y’) ≤ d(X, Y) Điều kiện chặn dưới như trên có nghĩa là hàm khoảng cách tính trên không gian đặc trƣng (hay không gian thu giảm) của hai chuỗi thời gian đã đƣợc biến đổi X’, Y’ từ hai chuỗi ban đầu X, Y phải chặn dưới khoảng cách thật của chúng trên không gian nguyên thủy, điều này đảm bảo không xảy ra false dismissal (những đối tƣợng thỏa điều kiện nhƣng bị bỏ sót)
Sau đây là một số phương pháp biểu diễn cụ thể
2.3.1 Phương pháp xấp xỉ gộp từng đoạn (PAA)
Phương pháp PAA, do Keogh và các cộng sự đề xuất năm 2001[6], tuần tự xấp xỉ k giá trị liền kề nhau thành một giá trị, là giá trị trung bình cộng của k giá trị đó
Quá trình bắt đầu từ đầu chuỗi thời gian đến cuối chuỗi Kết quả của phép biến đổi là đường thẳng có dạng bậc thang (Hình 2.6) Cho (với j = 1,…,n) là một chuỗi dữ liệu thời gian sẽ đƣợc thu giảm về một chuỗi con ̅ ̅ ̅ ̅̅̅ ( với i = 1,…,w), biết rằng w là số chiều thu giảm của nó đƣợc tính theo công thức sau: ̅ ∑
([7]) Phương pháp PAA rất trực quan và đơn giản trong tính toán nhưng nó đã được chứng minh là rất hữu hiệu, thích hợp và hỗ trợ các phương pháp tính khoảng cách khác như: khoảng cách Euclid, DTW, Minkowski Ngoài ra, một phương pháp đo khoảng cách đƣợc đề xuất nhƣ sau trên không gian thu giảm số chiều sau khi qua phép biến đổi PAA: ̅ ̅ √ √∑ ̅ ̅ ([7])
Hình 2.6 Phương pháp biểu diễn PAA với n = 128, w =8 ([7])
Trong đó ̅ ̅ ̅ ̅ là hai chuỗi biến đổi xấp xỉ của hai chuỗi dữ liệu thời gian Phương pháp này không phụ thuộc vào cấu trúc chỉ mục cụ thể nào, có thể sử dụng F-index, R-tree… Ƣu điểm:
Thời gian tính toán nhanh và dễ dàng
Hỗ trợ câu truy vấn có chiều dài khác nhau
Hàm khoảng cách được đề nghị có giá trị chặn dưới chặt so với dữ liệu gốc
Xây dựng lại chuỗi ban đầu khó và thường sinh lỗi lớn, trong khi các phương pháp trên có công thức để tái tạo lại chuỗi ban đầu với tỉ lệ lỗi nhỏ
Không quan tâm đến những điểm đặc biệt khác nhƣ điểm giá trị nhỏ nhất, lớn nhất của mỗi đoạn xấp xỉ
2.3.2 Phương pháp xấp xỉ gộp từng đoạn mở rộng EPAA (Extended PAA)
Do phương pháp PAA chỉ giữ lại giá trị trung bình của một chuỗi dữ liệu nên có thể làm mất đi các thông tin quan trọng trong đoạn dữ liệu đó Hình 2.7 sau đây là một minh hoạ một số điểm quan trọng sẽ bị mất nếu chỉ biểu diễn bằng PAA
Hình 2.7 Vài điểm quan trọng bị mất khi chỉ biểu diễn bằng PAA [10]
Phương pháp Extended PAA (EPAA) được Lkhagva và các cộng sự đề nghị vào năm 2006 [10] Phương pháp này giống như PAA nhưng mỗi đoạn được minh hoạ bằng ba giá trị nhỏ nhất, trung bình và lớn nhất thay vì chỉ lưu giá trị trung bình như phương pháp PAA Thứ tự và vị trí của ba giá trị được biểu diễn như sau:
Trong đó: S k , E k là vị trí đầu và vị trí cuối của đoạn cần tính EPAA
Hình 2.8 Minh hoạ các vị trí Pmin, Pmax, Pmid [10] Ƣu điểm:
Có tất cả các ƣu điểm của PAA
Hàm khoảng cách được đề nghị có giá trị chặn dưới chặt hơn so với hàm tính khoảng cách DR của phương pháp PAA (do lưu trữ ba giá trị trong một đoạn chuỗi dữ liệu điểm thay vì một điểm nhƣ PAA) nên kết quả sẽ chính xác hơn
Xây dựng lại chuỗi ban đầu khó và thường sinh lỗi lớn, trong khi các phương pháp trên có công thức để tái tạo lại chuỗi ban đầu với tỉ lệ lỗi nhỏ
Làm tăng số chiều của dữ liệu thu giảm
2.3.3 Phép xấp xỉ gộp ký hiệu hóa SAX
Phương pháp SAX, do Lin và các cộng sự đề xuất năm 2003 [7], được xây dựng dựa trên phương pháp thu giảm số chiều PAA và giả sử dữ liệu thu giảm số chiều đã đƣợc chuẩn hóa theo trung bình zero và độ lệch chuẩn một Dữ liệu ban đầu được chia thành từng đoạn dùng phương pháp PAA Sau đó, ánh xạ từng đoạn này thành các ký tự rời rạc Vì không gian thu giảm là không gian các ký tự, nên không thể sử dụng các hàm tính khoảng cách nhận đối số là các giá trị thực mà cần có cơ chế ánh xạ sự khác biệt giữa hai ký tự thành giá trị số Phương pháp SAX sử dụng hàm tính khoảng cách MINDIST [7] trên không gian thu giảm, thỏa điều kiện chặn
18 dưới Phương pháp lập chỉ mục được sử dụng là phương pháp tập tin xấp xỉ hóa vector (Vector Approximation File), ngoài ra có thể sử dụng R-tree và các kỹ thuật lập chỉ mục cho chuỗi ký tự cổ điển nhƣ cây hậu tố (suffix tree) Để biến đổi theo SAX, ta thực hiện các bước sau:
Kết luận
Sau khi tìm hiểu các phép biến đổi rời rạc, chúng tôi nhận thấy mỗi phép biến đổi đều có những ƣu và khuyết điểm riêng tuỳ thuộc vào mục đích và nhu cầu sử dụng của người dùng mà vận dụng cho phù hợp Tuy nhiên, trong trường hợp dữ liệu có nhiều đặc tính quan trọng cần tìm kiếm chính xác thì phép biến đổi EPAA và phép rời rạc ký hiệu hoá mở rộng ESAX cho kết quả tìm kiếm chính xác hơn nhiều so với các phép biến đổi PAA và phép rời rạc ký hiệu hoá SAX
TỔNG THUẬT CÁC CÔNG TRÌNH LIÊN QUAN
Phát hiện 1-Motif dựa vào giải thuật Brute Force
Giải thuật phát hiện motif chân phương (Brute Force) (bảng 3.1) là một giải thuật đơn giản và trực quan Giải thuật so sánh một chuỗi con với tất cả những chuỗi con khác trong tập dữ liệu để tìm láng giềng gần nhất của nó, và không trùng khớp không tự thân do đó độ phức tạp tính toán cũng là O(m 2 ) với m là số chuỗi con trong tập dữ liệu
Với dữ liệu có kích thước lớn, số chuỗi con tăng thì giải thuật Brute-Force là không khả thi
Tuy nhiên Brute_Force là giải thuật nền tảng cho nhiều giải thuật cải tiến với một số heuristic giúp cho độ phức tạp giảm đi đáng kể tiêu biểu nhất là giải thuật MK do Mueen, Keogh cùng các cộng sự đề xuất năm 2009 [14] sử dụng tính chất bất đẳng thức tam giác, tính không âm của hàm khoảng cách nhằm kết thúc sớm quá trình tính toán không cần thiết
Motif tìm thấy trong giải thuật Brute – Force là motif chính xác
Algorithm Find-1-Motif-Brute-Force (T, n, R) 1
2 3 4 best_motif_count_so_far = 0; best_motif_location_so_far = null; for i = 1 to length (T) – n + 1 count = 0;
6 7 8 9 10 11 12 13 14 15 16 17 pointers = null; for j = 1 to length (T) – n + 1 if non_trivial_match( C [i: i+n-1] , C [j: j+n-1] , R ) count = count + 1; pointers = append(pointers , j); end; end; if count > best_motif_count_so_far best_motif_count_so_far = count; best_motif_location_so_far = i; motif_matches = pointers; end; end;
Bảng 3.1 Giải thuật Brute Force phát hiện 1- Motif [8]
Phát hiện Motif dựa vào giải thuật Random Projecttion
Do những hạn chế của các giải thuật khai phá motif chính xác, nhiều công trình nghiên cứu khai phá motif xấp xỉ đã đƣợc biết đến vì tính hiệu quả của nó Các giải thuật khai phá motif xấp xỉ thường cải thiện tốc độ một cách đáng kể và có khả năng làm việc trên tập dữ liệu lớn nhƣng vẫn cho kết quả khá tốt Tiêu biểu và rất nổi tiếng là giải thuật chiếu ngẫu nhiên (Random Projection) do Chiu và các cộng sự đƣa ra vào năm 2003 [8] đƣợc biết nhƣ là một giải thuật rất hiệu quả trong khai phá motif xấp xỉ Ý tưởng của giải thuật chiếu ngẫu nhiên là dữ liệu sau khi đã rút trích thành các chuỗi con thông qua cửa sổ trƣợt sẽ đƣợc xử lý thu giảm số chiều và rời rạc hóa SAX sẽ được lưu vào bảng ̂ (Hình 3.1)
Hình 3.1 Bảng ̂ chứa tất cả các chuỗi con từ cửa sổ trƣợt
Từ bảng ̂ (Hình 3.1) ta chiếu ngẫu nhiên lên hai cột bất kì và sau đó băm (hash) các giá của nó trị trên từng hàng của hai cột đƣợc chiếu vào các thùng băm (bucket) Kiểm tra các thùng băm đó nếu có hai chuỗi con bất kì thuộc cùng một thùng băm thì ta cập nhật giá trị vào ô tương ứng của ma trận vuông ̂ ̂ Quá trình này được lặp lại i lần (i do người dùng định nghĩa) trên các cột chiếu khác nhau (Hình 3.2) Sau đó chọn ô có giá trị lớn nhất trên ma trận ̂ ̂ , chỉ số mà ta nhận được dựa vào hàng và cột tương ứng với ô này chính là chỉ số của motif ứng viên Trong (Hình 3.3) bên dưới đây với i = 2 thì ta có hai ứng viên motif là hai chuỗi con 1 và 58 Sau khi có đƣợc ứng viên motif , giải thuật sẽ dựa vào đó để hậu kiểm trên chuỗi thời gian ban đầu để tìm ra motif bậc nhất thực sự
Ta thấy chuỗi con ứng viên được chọn từ ma trận xung đột ̂ ̂ chƣa chắc là 1- Motif vì giá trị chứa trong ma trận ̂ ̂ phụ thuộc vào quá trình chiếu ngẫu nhiên Do đó motif tìm đƣợc là motif xấp xỉ
Giải thuật cần m 2 (với m là số chuỗi con) các số nguyên cho ma trận xung đột ̂ ̂
Khi dữ liệu kích thước lớn m tăng nhanh thì không gian lưu trữ là rất lớn nên không khả thi
Trong mỗi lần lặp, tại mỗi lần lặp chi phí để tổ chức cấu trúc dữ liệu bảng băm và cập nhật ma trận xung đột là ((f * m) + ((m/f) 2 /2)) với f là số khóa trung bình trong bảng băm Do đó nếu i lớn chi phí này sẽ tăng đáng kể
Chi phí duyệt qua ma trận xung đột để tìm motif ứng viên là (m 2 /2)
Hình 3.2 Minh họa việc chiếu ngẫu nhiên lên cột 1 và 2, cập nhật vào ̂ ̂
Hình 3.3 Minh họa việc chiếu ngẫu nhiên lên cột 2 và 4, cập nhật vào ̂ ̂
Phát hiện Motif dựa vào giải thuật Sequitur
3.3.1 Giải thuật Sequitur Định nghĩa văn phạm phi ngữ cảnh (context-free grammar): là văn phạm trong đó các sản xuất có dạng: A với A; ()*
: bảng chữ cái, gọi là bảng chữ cái cơ bản (bảng kí tự kết thúc – terminal symbol);
: =, gọi là bảng ký hiệu phụ (bảng kí tự không kết thúc – nonterminal symbol);
S: kí hiệu xuất phát hay tiền đề (start variable);
Ví dụ: Trong văn phạm tiếng Việt có các quy tắc:
|
Kí hiệu không kết thúc: , , , , ,
Kí hiệu kết thúc: “bò”, “mèo”, “tôi”, “nó”, “ăn”, “nằm”… là các từ tiếng Việt
Sequitur [11] là một giải thuật nén chuỗi sử dụng suy luận văn phạm phi ngữ cảnh (context-free grammar) từ một chuỗi các kí hiệu rời rạc Sequitur đƣợc áp dụng trong các lĩnh vực khác nhau: dùng để tìm các chuỗi DNA lặp đi lặp lại [10], trình tự các hàm được gọi lặp lại trong một chương trình và áp dụng vào chuỗi thời gian phân đoạn
Sequitur tạo ra một văn phạm từ một chuỗi dựa trên các cụm từ lặp đi lặp lại trong chuỗi đó Mỗi sự lặp lại tạo ra một quy tắc trong văn phạm và chuỗi con lặp đi lặp lại đƣợc thay thế bằng một kí hiệu không kết thúc (nonterminal symbol) làm ra một biểu diễn ngắn gọn hơn của chuỗi tổng thể ban đầu Cách tiếp cận này ngắn gọn để hình thành và duy trì văn phạm, ngoài ra giải thuật còn cung cấp một cấu trúc phân cấp cho các chuỗi
Sequitur đọc chuỗi đầu vào và tái cơ cấu các quy tắc văn phạm để duy trì các tính chất bất biến sau đây:
- Không có cặp liền kề kí hiệu xuất hiện nhiều hơn một lần trong ngữ pháp
- Mọi quy luật (trừ quy luật bắt đầu) đƣợc sử dụng nhiều hơn một lần
Ví dụ, chuỗi đầu vào S1="12131213412" đƣợc biến đổi nhƣ sau
Bảng 3.2 Ví dụ về giải thuật Sequitur
Giải thuật Sequitur đƣợc mô tả bằng mã giả nhƣ sau
As each new input symbol is observed, append it to rule S
Each time a link is made between two symbols if the new digram is repeated elsewhere and the repetitions do not overlap, if the other occurrence is a complete rule, replace the new digram with the non-terminal symbol that heads the rule, otherwise, form a new rule and replace both digrams with the new non-terminal symbol otherwise, insert the digram into the index Each time a digram is replaced by a non-terminal symbol if either symbol is a non-terminal symbol that only occurs once elsewhere, remove the rule, substituting its contents in place of the other non-terminal symbol
Sequitur là một giải thuật trực tuyến (online algorithm), hiệu quả về mặt không gian bộ nhớ và thời gian thực thi, có độ phức tạp O(m) để nén một chuỗi có kích thước m, trong trường hợp xấu nhất là O(m) (không nén) và O(logm) trong trường hợp tốt nhất [11, 17] Ƣu điểm của giải thuật Sequitur (và các thuật toán suy luận văn phạm nói chung):
Tự động nhận diện các mẫu lặp đi lặp lại, ví dụ “1213” ở ví dụ trên
Các mẫu lặp đi lặp lại đƣợc phát hiện có thể có độ dài bất kì
Phù hợp cho dữ liệu dạng luồng (streaming data) vì đƣợc xây dựng văn phạm theo kiểu gia tăng
Với những ƣu điểm này cho thấy chúng ta có thể áp dụng Sequitur để phát hiện motif có độ dài thay đổi trên chuỗi thời gian
3.3.2 Phát hiện motif dựa vào giải thuật Sequitur
Các bước thực hiện của giải thuật này như sau [11, 17]:
- Bước 1: Rời rạc hóa SAX (tiền xử lí)
Ví dụ: sau rời rạc hóa ta thu đƣợc chuỗi S=1131-1132-1232-1223-1344-1131- 1132-1232…
- Bước 2: Áp dụng Sequitur với chuỗi SAX Ví dụ: một quy tắc văn phạm đƣợc tạo ra từ ví dụ trên là: A->1131-1132-1232
- Bước 3: Hậu xử lí (vì chúng ta đã rời rạc hóa dữ liệu để chạy giải thuật, nên cần phải ánh xạ các quy luật và chuỗi thường xuyên trở lại chuỗi con trong chuỗi thời gian.)
Chất lượng của việc phát hiện motif bị ảnh hưởng trực tiếp bởi SAX và Sequitur Cả hai thuật toán đều cực kì hiệu quả (cả hai đều thực hiện trong thời gian tuyến tính)
Đây là một cách tiếp cận nhanh và dễ dàng để phát hiện motif gần đúng trên dữ liệu chuỗi thời gian mà không cần biết chính xác độ dài, tuy nhiên các motif tìm thấy thường không đầy đủ [11]
PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ
Đặt vấn đề
Nhƣ đã trình bày bên trên, việc phát hiện motif trên dữ liệu chuỗi thời gian dựa vào các giải thuật truyền thống cần phải xác định trước tham số chiều dài motif , không thể phát hiện đƣợc các motif có chiều dài khác nhau, đôi khi tham số này không dễ dàng để xác định trước Đối với các giải thuật truyền thống như chiếu ngẫu nhiên, giải thuật chân phương thì độ phức tạp khá lớn, do đó cách tiếp cận này không hiệu quả trên các tập dữ liệu lớn
Bên cạnh đó dựa trên các công trình nghiên cứu trên, chúng tôi nhận thấy mỗi giải thuật đều có ưu và khuyết điểm riêng tuỳ vào nhu cầu của người sử dụng, tuy nhiên với ý tưởng tìm kiếm nhanh và cho kết quả motif xấp xỉ thì giải thuật dựa vào
Sequitur là một lựa chọn, tuy nhiên do áp dụng trên phép biến đổi SAX nên kết quả có thể chƣa chính xác do mất một số thông tin quan trọng và hàm tính độ đo khoảng cách MINDIST giữa các ký tự của hai chuỗi con sẽ cho kết quả không chính xác cao so với dữ liệu gốc nên các chuỗi con motif không khớp chính xác với nhau
Do đó, chúng tôi đề xuất phương pháp phát hiện motif trên dữ liệu chuỗi thời gian dựa trên giải thuật Sequitur với phép biến đổi ESAX nhằm phát hiện đƣợc các motif với độ dài khác nhau mà không cần xác định tham số chiều dài motif cho trước, cải thiện hiệu quả về chất lượng và thời gian thực thi, có thể dùng làm bước tiền xử lí để ƣớc lƣợng độ dài motif bậc nhất dùng trong các giải thuật phát hiện motif khác
Hướng giải quyết
4.2.1 Thu giảm số theo phép biến đổi EPAA
Dữ liệu sau khi đƣợc chuẩn hóa sẽ đƣợc thu giảm số chiều theo hệ số PAA_Ratio cho trước theo phép biến đổi xấp xỉ gộp từng đoạn mở rộng (Extended PAA) Nếu PAA_Ratio = 1 thì ta có lại đƣợc không gian gốc nguyên thủy ban đầu, tuy nhiên nhƣ vậy thì giải thuật phát hiện motif sẽ rất chậm Nếu dữ liệu đầu vào lớn, ta sẽ chọn hệ số PAA_Ratio càng lớn, dẫn đến số chiều sẽ càng thu giảm thì giải thuật phát hiện motif sẽ nhanh hơn rất nhiều
4.2.2 Rời rạc hoá dữ liệu theo phép biến đổi ESAX
Dữ liệu sau khi qua phép biến đổi thu giảm số chiều mở rộng EPAA ở trên sẽ đƣợc rời rạc hoá dữ liệu và tạo ra các ký tự ESAX Mỗi đoạn chuỗi dữ liệu con tương ứng từ tập dữ liệu EPAA được biểu diễn bằng 3 ký tự dựa vào bảng Breakpoint thông qua phép biến đổi ESAX
4.2.3 Xây dựng phương pháp đề xuất dựa vào giải thuật Sequitur
Như đã trình bày ý tưởng ở chương 3, giải thuật Sequitur cho phép tạo ra một văn phạm từ một chuỗi dựa trên các cụm từ lặp đi lặp lại trong chuỗi đó Do đó chúng tôi áp dụng giải thuật Sequitur trên chuỗi thu đƣợc sau phép biến đổi ESAX để thu đƣợc các quy tắc văn phạm
Ví dụ: chuỗi ESAX dữ liệu đầu vào S1 = "abacabacdab", sau khi áp dụng giải thuật Sequitur thì thu đƣợc các quy tắc văn phạm nhƣ bảng sau:
Bảng 4.1 Ví dụ về giải thuật Sequitur
35 Các văn phạm thu đƣợc từ giải thuật Sequitur chính là tất cả các motif cần tìm với các độ dài khác nhau Tuy nhiên, các motif này là các motif trên chuỗi đã biến đổi ESAX nên chúng ta cần thực hiện bước hậu xử lý sau đây:
- Loại bỏ các motif tầm thường (trivial matches), sự trùng khớp tầm thường của chuỗi con M là bất kì dãy nào chồng lên M
- Sắp xếp các quy tắc văn phạm theo nhu cầu nhƣ: tần số xuất hiện, độ dài của motif
- Truy vết để tìm ra các motif trên chuỗi dữ liệu gốc ban đầu Độ phức tạp của giải thuật phát hiện motif này như đã nói ở chương 3, có thời gian thực hiện tuyến tính
4.2.4 Ƣớc lƣợng chiều dài 1-motif
Dựa vào bảng kết quả văn phạm thu đƣợc, kết hợp với minh họa motif tìm đƣợc chúng ta có thể xác định đƣợc vùng có mật độ motif dày đặc nhất, đây chính là vùng chứa những motif bậc nhất và chúng ta sẽ sử dụng để ƣớc lƣợng chiều dài motif bậc nhất Quá trình này gồm 3 bước sau:
1 Dựa vào hình minh họa motif (mỗi văn phạm tương ứng với một motif ), chúng ta dễ dàng tìm ra vùng có mật độ motif dày đặc nhất Từ vùng này, chúng ta xác định đƣợc chiều dài n của các motif bậc nhất trên chuỗi dữ liệu gốc Từ đó ta có thể chuyển đổi chiều dài n này tương ứng thành chiều dài trên chuỗi dữ liệu đã đƣợc biến đổi ESAX là w
2 Kết hợp với bảng luật văn phạm thu đƣợc, ta có thể thấy đƣợc những văn phạm có độ dài xấp xỉ bằng w, đồng thời biết đƣợc tần suất xuất hiện của các văn phạm đó
3 Sau bước (1) ta tìm được độ dài n của motif bậc nhất Ta dùng giá trị này làm tham số độ dài motif bậc nhất trên các giải thuật phát hiện motif khác, chẳng hạn nhƣ giải thuật Random Projection Để trực quan hóa motif tìm được bằng giải thuật Sequitur, ở bước tìm luật văn phạm (grammar rules) sau mỗi bước tìm ra văn phạm ta ghi nhận độ dài của văn
36 phạm và vị trí bắt đầu của văn phạm đó để phục vụ việc trực quan hóa các motif tìm đƣợc
4.2.5 Phát hiện tính chu kì dựa vào motif
Chu kì xảy ra nhiều trong hiện tượng tự nhiên và hoạt động con người, ví dụ: lịch trình làm việc hàng ngày của nhân viên, mô hình di chuyển của động vật hàng năm, chu kì vết đen mặt trời,… Việc phát hiện ra tính chu kì trong dữ liệu cung cấp cái nhìn sâu sắc hơn về dữ liệu, phát hiện các dị thường, ứng dụng dự báo trên dữ liệu chuỗi thời gian
Năm 2014, nhóm tác giả Rasaq Otunba, Jessica Lin, Pavel Senin [15] đã đƣa ra cách tiếp cận cho việc phát hiện tính chu kì trên dữ liệu chuỗi thời gian dựa vào việc phát hiện ra motif , sau đó tìm motif định kì nhất
Algorithm 1 Motif-based Period Detection
INPUT: String S of length n over alphabet Σ
OUTPUT: The approximate period of S, T
/* Find the rule/motif objects M = {m 1 , m 2 , m d } from Sequitur-based algorithm */
/* Compute periods and errors for each motif, return the one with the smallest error*/ m 1 = periodicity(m 1 ); p 1 = m 1 getPeriod(); r 1 = m 1 getError(); rMin = r 1 // store the minimum error in rMin for each m i M do m i = periodicity(m i ); p i = m i getPeriod(); r i = m i getError(); if (r i < rMin)
14 15 16 approxP = p i ; rMin = r i ; end for return approxP;
Bảng 4.2 Giải thuật phát hiện chu kì [15]
Giải thuật 1 cho thấy mã giả của thuật toán phát hiện chu kì dựa vào motif
MBPD Các đối tượng motif được trả về trên dòng 2 được lưu cùng với các vị trí xuất hiện trong dữ liệu chuỗi thời gian Ở đây tác giả chỉ xem xét tính chu kì với mỗi đối tƣợng xuất hiện ít nhất 3 lần, tuy nhiên cũng dễ dàng để chỉnh sửa thuật toán để phát hiện chu kì xảy ra 2 lần nếu muốn Các dòng 3-7 và vòng lặp từ 8-14 tính toán chu kì cho mỗi motif , sai số r (xem định nghĩa 2.1.7) đƣợc xác định bởi độ lệch chuẩn của các khoảng của các lần xuất hiện và chu kì xấp xỉ
Chu kì của mỗi motif đƣợc tính là trung bình của các khoảng (giữa vị trí bắt đầu của hai lần xuất hiện liên tiếp) của tất cả các lần xuất hiện của motif đó trong chuỗi thời gian Chu kì xấp xỉ của chuỗi thời gian là chu kì tương ứng với sai số thấp nhất
Hàm tính chu kì đƣợc gọi từ dòng 4-9 của giải thuật 1 đƣợc thể hiện bởi giải thuật 2 sau đây:
INPUT: Motif M with start positions A = {a 1 , a 2 , a b } for all b occurrences
OUTPUT: Motif M with the period and error set respectively sum_Interval = 0, sqd = 0; for each a i A do sum_Intervals = sum_Intervals + a i - a i-1 ; end for
M.period = sum_Intervals/(b-1); for each a i A do
8 9 10 sqd = sqd + ((a i - a i-1 - M.period) ^ 2); end for M.error = (sqd/(b-1)) ^ 0.5; return M;
Bảng 4.3 Giải thuật tính chu kì dựa vào motif [15]
Mức độ hiệu quả của giải thuật MBDP phần lớn phụ thuộc vào sự hiệu quả của giải thuật phát hiện motif dựa vào giải thuật Sequitur Giải thuật phát hiện motif đề xuất phía trên có độ phức tạp tuyến tính về thời gian và không gian bộ nhớ Kết quả là độ phức tạp về thời gian của giải thuật MBDP là O(n*k) trên chuỗi thời gian có kích thước n, với k là số lần xuất hiện trung bình của mỗi motif được trích xuất bởi
THỰC NGHIỆM
Thực nghiệm 1: so sánh kết quả motif của giải thuật Sequitur trên phép biến đổi SAX và ESAX
phép biến đổi SAX và ESAX Ở phần này, chúng tôi sẽ tiến hành đánh giá số lƣợng và chất lƣợng motif tìm đƣợc trên giải thuật Sequitur với phép biến đổi SAX (gọi tắt là Sequitur_SAX) và giải thuật Sequitur với phép biến đổi ESAX (gọi tắt là Sequitur_ESAX)
5.1.1 Tập dữ liệu ECG 3500 điểm
Giải thuật Sequitur_SAX cho kết quả:
Hình 5.1 Biểu diễn motif của giải thuật Sequitur_SAX trên dữ liệu ECG
Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.2 Biểu diễn motif của giải thuật Sequitur_ESAX trên dữ liệu ECG
Giải thuật Sequitur_SAX tìm đƣợc 12 motif , giải thuật Sequitur_ESAX tìm đƣợc 37 motif
41 Những số trên hình chỉ là số thứ tự của những motif và đƣợc đánh ngẫu nhiên để chọn màu cho từng motif
5.1.2 Tập dữ liệu ECG 14000 điểm
Giải thuật Sequitur_SAX cho kết quả:
Hình 5.3 Biểu diễn motif của giải thuật Sequitur_SAX trên dữ liệu ECG
Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.4 Biểu diễn motif của giải thuật Sequitur_ESAX trên dữ liệu ECG
Giải thuật Sequitur_SAX tìm đƣợc 12 motif , giải thuật Sequitur_ESAX tìm đƣợc 19 motif
5.1.3 Tập dữ liệu RIVER 7500 điểm
Giải thuật Sequitur_SAX cho kết quả:
Hình 5.5 Biểu diễn motif của giải thuật Sequitur_SAX trên dữ liệu RIVER
Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.6 Biểu diễn motif của giải thuật Sequitur_ESAX trên dữ liệu RIVER
Giải thuật Sequitur_SAX tìm đƣợc 64 motif , giải thuật Sequitur_ESAX tìm đƣợc 132 motif
5.1.4 Tập dữ liệu WINGDING 2500 điểm
Giải thuật Sequitur_SAX cho kết quả:
Hình 5.7 Biểu diễn motif của giải thuật Sequitur_SAX trên dữ liệu
Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.8 Biểu diễn motif của giải thuật Sequitur_ESAX trên dữ liệu
Giải thuật Sequitur_SAX tìm đƣợc 36 motif , giải thuật Sequitur_ESAX tìm đƣợc 78 motif
Giải thuật Sequitur_SAX cho kết quả:
Hình 5.9 Biểu diễn motif của giải thuật Sequitur_SAX trên dữ liệu ERP
Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.10 Biểu diễn motif của giải thuật Sequitur_ESAX trên dữ liệu ERP
Giải thuật Sequitur_SAX tìm đƣợc 87 motif , giải thuật Sequitur_ESAX tìm đƣợc
Tập dữ liệu Số lƣợng motif
Bảng 5.1 So sánh kết quả số lƣợng motif tìm thấy bởi Sequitur_SAX và
Nhận xét: Thông qua thực nghiệm 1, chúng tôi nhận thấy các thể hiện motif trong giải thuật đề xuất Sequitur trên phép biến đổi ESAX cho kết quả chính xác hơn giải thuật Sequitur trên phép biến đổi SAX, đồng thời phát hiện đƣợc nhiều motif hơn (bảng 5.1) Điều này có thể giải thích nhƣ sau: để tránh đƣợc việc mất dữ liệu do quá trình rời rạc hóa nên phép ESAX giữ lại 3 điểm min, mid và max ở mỗi phân đoạn (segment) còn trên phép biến đổi SAX sẽ chỉ dữ lại một điểm duy nhất trên mỗi phân đoạn, ngoài ra motif tìm đƣợc là chính xác hơn do không bị dƣ thừa dữ liệu so với phép biến đổi SAX Điều này cho thấy lựa chọn của chúng tôi ban đầu là đúng
5.2 Thực nghiệm 2: ƣớc lƣợng độ dài 1-motif và phát hiện 1-motif
5.2.1 Ƣớc lƣợng độ dài 1-motif và phát hiện 1-motif
Trong các thực nghiệm này, chúng tôi đánh giá tiềm năng sử dụng giải thuật Sequitur để ƣớc lƣợng 1-motif trên dữ liệu chuỗi thời gian
45 a Dữ liệu điện tâm đồ (ECG) 3500 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.11 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu ECG
Giải thuật tìm đƣợc có tất cả 37 motifs đối với tập dữ liệu này
Tần suất Văn phạm Độ dài motif
Bảng 5.2 Ví dụ một phần luật văn phạm thu đƣợc của dữ liệu ECG 3500 điểm
Sau khi xác định đƣợc độ dài motif w, chúng tôi thực nghiệm tìm 1-motif trên giải thuật chiếu ngẫu nhiên RP, kết quả nhƣ hình 5.12 với 9 thể hiện 1-motif đƣợc tìm thấy Bằng cách kiểm tra chúng tôi thấy các motif tìm thấy ở hình 5.12 giống hoàn toàn với motif đƣợc tìm thấy ở hình 5.11 của giải thuật đề xuất trong khoảng 100 điểm dữ liệu Chúng tôi cũng sẽ tiến hành thực nghiệm tương tự trên 9 bộ dữ liệu còn lại
Giải thuật RP_SAX cho kết quả:
Hình 5.12 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu ECG b Dữ liệu điện tâm đồ (ECG) 7000 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.13 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu ECG
Giải thuật tìm đƣợc có tất cả 18 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.14 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu ECG c Dữ liệu điện tâm đồ (ECG) 10000 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.15 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu ECG
Giải thuật tìm đƣợc có tất cả 162 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.16 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu ECG d Dữ liệu điện tâm đồ (ECG) 14000 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.17 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu ECG
Giải thuật RP_SAX cho kết quả:
Hình 5.18 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu ECG e Dữ liệu chứng khoán (STOCK) 5056 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.19 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu STOCK
Giải thuật tìm đƣợc có tất cả 132 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.20 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu
STOCK f Dữ liệu chứng khoán (STOCK) 5508 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.21 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu STOCK
Giải thuật tìm đƣợc có tất cả 76 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.22 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu
51 g Dữ liệu công nghiệp (WINDING) 2500 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.23 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu WINDING
Giải thuật RP_SAX cho kết quả:
Hình 5.24 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu
WINDING h Dữ liệu doanh nghiệp (ERP) 10120 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.25 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu ERP
Giải thuật tìm đƣợc có tất cả 219 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.26 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu ERP i Dữ liệu điện não đồ (EEG) 12137 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.27 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu EEG
Giải thuật tìm đƣợc có tất cả 37 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.28 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu EEG j Dữ liệu dòng chảy (RIVER) 7500 điểm Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.29 Kết quả mọi motif tìm thấy của giải thuật Sequitur_ESAX của dữ liệu RIVER
Giải thuật tìm đƣợc có tất cả 16 motifs đối với tập dữ liệu này
Giải thuật RP_SAX cho kết quả:
Hình 5.30 Kết quả 1-motif tìm thấy của giải thuật RP_SAX của dữ liệu
Trong phần dưới đây, chúng tôi sẽ tiến hành đánh giá chất lượng motif tìm được trên phương pháp đề xuất dựa vào giải thuật Sequitur trên phép biến đổi ESAX và giải thuật tìm 1-motif chiếu ngẫu nhiên RP với phép biến đổi SAX Để tiện cho việc theo dõi, chúng tôi đã loại bỏ các kết quả motif tìm đƣợc với giải thuật
Sequitur_ESAX với các độ dài nhỏ hơn w a Tập dữ liệu ECG 3500, độ dài 1-motif w = 100 Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.31 Motif tìm đƣợc với giải thuật Sequitur_ESAX trên dữ liệu ECG
Giải thuật RP_SAX cho kết quả:
Hình 5.32 1-motif tìm đƣợc với giải thuật RP_SAX trên dữ liệu ECG
Dựa vào các thể hiện motif tìm thấy của giải thuật Sequitur_ESAX, chúng tôi ƣớc lƣợng độ dài 1-motif tìm đƣợc nhƣ trong phần 5.2.1 và dùng làm tham số độ dài motif trên giải thuật RP Chúng tôi nhận thấy kết quả 1-motif của giải thuật RP có hình dạng khá giống với motif màu xanh da trời ( ) của giải thuật
Sequitur_ESAX Nhƣ vậy trong các motif tìm thấy của giải thuật Sequitur_ESAX cũng có sự xuất hiện của motif bậc nhất b Tập dữ liệu ERP 10120, độ dài 1-motif w Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.33 Motif tìm đƣợc với giải thuật Sequitur_ESAX trên dữ liệu ERP
Giải thuật RP_SAX cho kết quả:
Hình 5.34 1-motif tìm đƣợc với giải thuật RP_SAX trên dữ liệu ERP
Chúng tôi nhận thấy kết quả 1-motif của giải thuật RP có hình dạng khá giống với motif màu vàng mà motif màu tím của giải thuật Sequitur_ESAX ở phần vòng cung Nhƣ vậy trong các motif tìm thấy của giải thuật Sequitur_ESAX cũng có sự xuất hiện của motif bậc nhất c Tập dữ liệu RIVER 7500 điểm, độ dài 1-motif w Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.35 Motif tìm đƣợc với giải thuật Sequitur_ESAX trên dữ liệu RIVER
Giải thuật RP_SAX cho kết quả:
Hình 5.36 1-motif tìm đƣợc với giải thuật RP_SAX trên dữ liệu RIVER
Chúng tôi nhận thấy kết quả 1-motif của giải thuật RP có hình dạng khá giống với motif màu đỏ mà motif màu hồng của giải thuật Sequitur_ESAX Nhƣ vậy trong các motif tìm thấy của giải thuật Sequitur_ESAX cũng có sự xuất hiện của motif bậc nhất d Tập dữ liệu Winding 2500 điểm, độ dài 1-motif w` Giải thuật Sequitur_ESAX cho kết quả:
Hình 5.37 Motif tìm đƣợc với giải thuật Sequitur_ESAX trên dữ liệu WINDING
Giải thuật RP_SAX cho kết quả:
Hình 5.38 1-motif tìm đƣợc với giải thuật RP_SAX trên dữ liệu WINDING
Chúng tôi nhận thấy kết quả 1-motif của giải thuật RP có hình dạng khá giống với motif màu xanh lá của giải thuật Sequitur_ESAX Nhƣ vậy trong các motif tìm thấy của giải thuật Sequitur_ESAX cũng có sự xuất hiện của motif bậc nhất
Qua 04 thực nghiệm trên, chúng tôi nhận thấy mặc dù chúng tôi chỉ dùng kết quả của giải thuật Sequitur_ESAX để tìm ra các motif bậc nhất trên giải thuật
RP_SAX nhưng kết quả motif tìm được từ hai giải thuật trên khá tương đồng với nhau Chúng tôi dùng kết quả các motif tìm thấy của giải thuật Sequitur_ESAX để xác định tham số chiều dài motif cho giải thuật RP; sau khi có kết quả 1-motif của giải thuật RP, chúng tôi đối chiếu lại với các motif tìm thấy của giải thuật
Sequitur_ESAX thì tìm thấy sự xuất hiện của các motif bậc nhất này trong kết quả của giải thuật Sequitur_ESAX
Tuy nhiên, vì tính chất giải thuật Sequitur là tham lam và trực tuyến nên đối với riêng tập dữ liệu ERP và STOCK các motif phát hiện ra thường ngắn và không đầy đủ nên chất lƣợng motif không tốt hơn so với giải thuật RP, điều này không ảnh hưởng khi chúng tôi sử dụng giải thuật đề xuất làm bước tiền xử lí dùng xác định tham số chiều dài motif cho các giải thuật phát hiện motif khác
Chúng tôi đo lường thời gian thực thi của phương pháp đề xuất để ước lượng độ dài motif bậc nhất và thời gian thực thi của giải thuật chiếu ngẫu nhiên RP để phát hiện motif bậc nhất Các kết quả thực nghiệm đƣợc trình bày trong bảng 5.3 Từ bảng 5.3, chúng ta có thể thấy thời gian của giải thuật đề xuất như là một bước tiền xử lí, đòi hỏi chỉ một tỉ lệ nhỏ (khoảng 4,6%) thời gian của giải thuật chiếu ngẫu nhiên RP để phát hiện ra motif bậc nhất trên chuỗi dữ liệu thời gian
STT Tập dữ liệu Kích thước
Random Projection Thời gian (msecs)
Bảng 5.3 Thời gian thực thi của giải pháp đề xuất và giải thuật RP
Kết quả thời gian thực thi của giải pháp đề xuất và giải thuật chiếu ngẫu nhiên RP được minh họa qua biểu đồ hình 5.39 bên dưới
Hình 5.39 Kết quả đánh giá thời gian thực thi (msec) trên các tập dữ liệu
Giải pháp đề xuất Random Projection
Thời gian thực thi của giải thuật đề xuất đòi hỏi chỉ một tỉ lệ nhỏ (khoảng 4,6%) thời gian của giải thuật chiếu ngẫu nhiên RP để phát hiện ra motif bậc nhất trên chuỗi dữ liệu thời gian
Phương pháp chúng tôi đề xuất có thể được dùng trong bước tiền xử lí dùng xác định tham số độ dài motif đầu vào để áp dụng trên các giải thuật phát hiện motif bậc nhất khác
5.3 Thực nghiệm 3: Ứng dụng phát hiện chu kì dựa vào motif
Trong phần này, chúng tôi trình bày các thực nghiệm phát hiện chu kì trên dữ liệu chuỗi thời gian dựa vào giải thuật phát hiện motif đề xuất
5.3.1 Dữ liệu điện tâm đồ ECG 14000 điểm
Hình 5.40 Kết quả phát hiện chu kì trên tập dữ liệu ECG 14000 điểm
Giải thuật tìm đƣợc chu kì có độ dài pp0 và sai số r=0
5.3.2 Dữ liệu điện tâm đồ ECG 7000 điểm
Hình 5.41 Kết quả phát hiện chu kì trên tập dữ liệu ECG 7000 điểm
Giải thuật tìm đƣợc chu kì có độ dài p50 và sai số r=0
5.3.3 Dữ liệu dòng chảy RIVER 7500 điểm
Hình 5.42 Kết quả phát hiện chu kì trên tập dữ liệu RIVER 7500 điểm
Giải thuật tìm đƣợc chu kì có độ dài p0 và sai số r
5.3.4 Dữ liệu công nghiệp WINDING 5990 điểm
Hình 5.43 Kết quả phát hiện chu kì trên tập dữ liệu WINDING 5990 điểm
Giải thuật tìm đƣợc chu kì có độ dài p00 và sai số r=0
Nhận xét: Bằng trực quan chúng tôi nhận thấy kết quả các chu kì tìm đƣợc là khá chính xác.
Thực nghiệm 3: Ứng dụng phát hiện chu kì dựa vào motif
Trong phần này, chúng tôi trình bày các thực nghiệm phát hiện chu kì trên dữ liệu chuỗi thời gian dựa vào giải thuật phát hiện motif đề xuất
5.3.1 Dữ liệu điện tâm đồ ECG 14000 điểm
Hình 5.40 Kết quả phát hiện chu kì trên tập dữ liệu ECG 14000 điểm
Giải thuật tìm đƣợc chu kì có độ dài pp0 và sai số r=0
5.3.2 Dữ liệu điện tâm đồ ECG 7000 điểm
Hình 5.41 Kết quả phát hiện chu kì trên tập dữ liệu ECG 7000 điểm
Giải thuật tìm đƣợc chu kì có độ dài p50 và sai số r=0
5.3.3 Dữ liệu dòng chảy RIVER 7500 điểm
Hình 5.42 Kết quả phát hiện chu kì trên tập dữ liệu RIVER 7500 điểm
Giải thuật tìm đƣợc chu kì có độ dài p0 và sai số r
5.3.4 Dữ liệu công nghiệp WINDING 5990 điểm
Hình 5.43 Kết quả phát hiện chu kì trên tập dữ liệu WINDING 5990 điểm
Giải thuật tìm đƣợc chu kì có độ dài p00 và sai số r=0
Nhận xét: Bằng trực quan chúng tôi nhận thấy kết quả các chu kì tìm đƣợc là khá chính xác