1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phát hiện tất cả các xu hướng thường xuyên trong dữ liệu chuỗi thời gian

121 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 121
Dung lượng 3,8 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Nghiên cứu việc áp dụng mảng hậu tố nâng cao để tìm tất cả các xu hướng thường xuyên và motif trong dữ liệu chuỗi thời gian.. Cây hậu tố, giải thuật được nghiên cứu trong rất nhiều đề

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

-

ĐỖ DUY QUỐC

Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số: 60.48.01.01

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM

Cán bộ hướng dẫn khoa học : PGS TS Dương Tuấn Anh

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

1 PGS.TS Quản Thành Thơ

2 TS Nguyễn Đức Dũng

3 TS Võ Thị Ngọc Châu

4 PGS.TS Đỗ Phúc

5 PGS TS Lê Trung Quân

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

CH Ủ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KH&KTMT

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự do – Hạnh phúc

Ngày, tháng, năm sinh: 12/04/1991 Nơi sinh: Nam Định Chuyên ngành: Khoa Học Máy Tính Mãsố: 60.48.01.01

I TÊN ĐỀ TÀI: PHÁT HIỆN TẤT CẢ CÁC XU HƯỚNG THƯỜNG XUYÊN

TRONG DỮ LIỆU CHUỖI THỜI GIAN

II NHI ỆM VỤ VÀ NỘI DUNG

- Nghiên cứu dữ liệu chuỗi thời gian

- Nghiên cứu về cách mã hóa xu hướng của dữ liệu thành ký tự

- Nghiên cứu về cây hậu tố, mảng hậu tố và các vấn đề liên quan

- Nghiên cứu việc áp dụng mảng hậu tố nâng cao để tìm tất cả các xu hướng thường xuyên và motif trong dữ liệu chuỗi thời gian

- So sánh kết quả của phương pháp nêu trên với kết quả của cây hậu tố và

giải thuật brute force

III NGÀY GIAO NHI ỆM VỤ: 17/08/2015

IV NGÀY HOÀN THÀNH NHI ỆM VỤ: 05/12/2016

V CÁN B Ộ HƯỚNG DẪN: PGS TS Dương Tuấn Anh

Trang 4

LỜI CẢM ƠN

  

Trước hết, tôi xin đặc biệt gửi lời cảm ơn chân thành và sâu sắc đến PGS.TS Dương Tuấn Anh, người đã trực tiếp hướng dẫn tôi trong quá trình làm luận văn này Thầy không chỉ hướng dẫn chu đáo, tận tình mà còn cung cấp cho tôi những kiến thức, những tài liệu hay và những lời khuyên quý giá trong suốt quá trình tôi học tập cũng như quá trình tìm hiểu và làm đề tài luận văn này Đây chính là một trong những nhân tố không thể thiếu để tạo động lực cho tôi hoàn thành đề tài này

Tôi cũng xin gửi lời cảm ơn đến gia đình, bạn bè, những bạn đồng nghiệp, những bạn học viên các khóa cao học đã chia sẻ kiến thức cho tôi, những người luôn sát cánh, động viên và tạo mọi điều kiện tốt nhất để tôi có thể học tập và hoàn tất được luận văn tốt nghiệp này

Tôi chân thành biết ơn sự tận tình dạy dỗ và sự giúp đỡ của tất cả quý thầy cô trong khoa Khoa học và Kỹ thuật Máy tính trường Đại học Bách khoa TP HCM

Cuối cùng tôi đã cố gắng hoàn thành tốt nhất có thể cho luận văn này, tuy nhiên khó tránh khỏi thiếu sót do tầm nhìn của bản thân còn hạn hẹp, rất mong nhận được sự góp ý của quý thầy cô và các bạn

Trang 5

TÓM TẮT LUẬN VĂN

Trong những thập niên gần đây các giải thuật tìm kiếm motif và các xu hướng thường xuyên trong dữ liệu chuỗi thời gian không ngừng phát triển và được cải thiện thường xuyên Trong đó có nhiều phương pháp giúp tối ưu các giải thuật cũng như cho khả năng tìm kiếm tốt hơn Cây hậu tố, giải thuật được nghiên cứu trong rất nhiều đề tài và được áp dụng vào các mô hình tìm kiếm motif và xu hướng thường xuyên thực tiễn của dữ liệu chuỗi thời gian nhờ vào khả năng xử lý tuyến tính và phát hiện được tất cả các mẫu xu hướng hoặc motif mà không cần phải xác định chiều dài chuỗi ban đầu Tuy nhiên, với những những bộ dữ liệu có tính xu hướng tăng giảm không đáng kể trong thời gian ngắn thì chất lượng tìm kiếm các xu hướng trong thời gian dài kém và đối với những bộ dữ liệu lớn, cây hậu tố tốn rất nhiều bộ nhớ để lưu trữ đồng thời thời gian để sử lý việc đệ qui tìm kiếm các nút trong cây rất chậm

Trong luận văn này, chúng tôi xây dựng và hiện thực mảng hậu tố nâng cao để tìm tất cả các xu hướng thường xuyên cũng như tất cả các motif trong dữ liệu chuỗi thời gian

Ý tưởng chính là áp dụng phương pháp xấp xỉ tuyến tính từng đoạn nhằm làm nhẵn dữ liệu đầu vào sau đó mã hóa dữ liệu thành chuỗi ký tự bằng phương pháp tính độ lệch góc giữa hai điểm liên tiếp để tìm các mẫu xu hướng trong khoảng thời gian dài Bên cạnh đó chúng tôi còn áp dụng phương pháp xấp xỉ gộp từng đoạn để thu giảm số chiều tăng tốc độ xử lý việc tìm kiếm tất cả các motif trong dữ liệu chuỗi thời gian, việc làm này làm tăng tốc đáng

kể thời gian xây dựng và tìm kiếm các motif của mảng hậu tố nâng cao

Trong quá trình thực nghiệm của việc xây dựng và tìm kiếm tất cả các mẫu xu hướng thường xuyên và motif trong dữ liệu chuỗi thời gian bằng mảng hậu tố nâng cao, giải thuật này đã cho thấy khả năng xử lý tốt hơn so với cây hậu tố cũng như các giải thuật tìm kiếm thông thường (brute force, phương pháp chiếu ngẫu nhiên)

Các từ khóa: Mảng hậu tố, mảng hậu tố nâng cao, cây hậu tố, maximal repeat

Trang 6

ABSTRACT

In recent decades, the motif search and the frequent trend search in time series data have been continuously developed and improved Among them, there are many methods to optimize the algorithms for better search Suffix tree algorithm is researched

in a variety of topics and it is applied to the search of frequent trends and motifs in time series, because it has linear complexity and it can detect all frequent trends or motifs without having to determine the length of the original string However, there are some data sets, which have negligible uptrend or negligible downtrend in the short term, so the suffix tree can not find the long frequent trends in the large data set Besides suffix tree was a lot of memory for storing data and the processing time to recursively search the nodes in the tree are very slowly

In this work, we study to implement and develop enhanced suffix array to find all the frequent trend, as well as all the motifs of time series data The main idea is to apply piecewise linear approximation method to smooth the input data, then we encode the data into strings by the method for calculating the deviation angle between two points to

represent the frequent trends in the long time Besides, we also applied the symbolic aggregate approximation – SAX method for dimension reduction of data set, that helps improve the processing time, and significantly accelerates processing times of the suffix array

Experimental results on several real datasets, the building of enhanced suffix array and the frequent trend searching or motif searching with enhanced suffix array are faster than suffix tree and another searching (brute force, probabilistic discovery)

Keywords: suffix array, enhanced suffix array, suffix tree, maximal repeat

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan rằng ngoại trừ các kết quả tham khảo từ các công trình khác như

đã ghi trong mục tham khảo của luận văn, các công việc trình bày trong luận văn này là do chính chúng tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường đại học nào khác

Hồ Chí Minh, ngày … tháng … năm……

Ký tên

Trang 8

MỤC LỤC

LỜI CẢM ƠN i

TÓM TẮT LUẬN VĂN ii

ABSTRACT iii

MỤC LỤC v

DANH MỤC HÌNH ẢNH viii

DANH MỤC BẢNG xiii

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1

1.1 GIỚI THIỆU ĐỀ TÀI 1

1.2 MỤC TIÊU VÀ GIỚI HẠN ĐỀ TÀI 3

1.3 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 3

1.4 CẤU TRÚC CỦA LUẬN VĂN 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 6

2.1 DỮ LIỆU CHUỖI THỜI GIAN 6

2.2 CÂY HẬU TỐ 6

2.3 MẢNG HẬU TỐ 10

2.4 MẢNG TIỀN TỐ CHUNG DÀI NHẤT 12

2.5 XÂY DỰNG MẢNG HẬU TỐ 13

2.6 MẢNG HẬU TỐ NÂNG CAO 14

2.7 XÂY DỰNG CÂY HẬU TỐ 17

2.8 MÃ HÓA DỮ LIỆU THÀNH XU HƯỚNG 22

2.9 XẤP XỈ DỮ LIỆU CHUỖI THỜI GIAN BẰNG PHƯƠNG PHÁP GỘP TỪNG ĐOẠN (Piecewise Aggregate Approximation - PAA) 22

2.10 RỜI RẠC HÓA DỮ LIỆU CHUỖI THỜI GIAN BẰNG PHƯƠNG PHẤP XẤP XỈ GỘP KÝ HIỆU HÓA (Symbolic Aggregate approximation - SAX) 24

2.11 PHƯƠNG PHÁP XẤP XI TUYẾN TÍNH TỪNG ĐOẠN (PLA) 26

CHƯƠNG 3 NHỮNG CÔNG TRÌNH LIÊN QUAN 28

3.1 PHÁT HIỆN TẤT CẢ CÁC XU HƯỚNG THƯỜNG XUYÊN TRONG DỮ LIỆU CHUỖI THỜI GIAN 28

Trang 9

3.1.1 Định nghĩa 28

3.1.2 Mã hóa dữ liệu xu hướng 30

3.1.3 Xác định các xu hướng thường xuyên 31

3.2 PHÁT HIỆN MOTIF TRÊN DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO GIẢI THUẬT BRUTE FORCE 32

3.3 PHÁT HIỆN MOTIF TRÊN DỮ LIỆU CHUỖI THỜI GIAN DỰA VÀO GIẢI THUẬT CHIẾU NGẪU NHIÊN 34

3.3.1 Định nghĩa 34

3.3.2 Rời rạc hóa dữ liệu chuỗi thời gian 35

3.3.3 Thuật toán chiếu ngẫu nhiên 36

3.4 TRUY VẤN HÌNH DẠNG DỮ LIỆU CỦA CHUỖI THỜI GIAN 38

3.4.1 Giới thiệu truy vấn hình dạng 38

3.4.2 Cú pháp 39

CHƯƠNG 4 PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ 42

4.1 ÁP DỤNG PHƯƠNG PHÁP XẤP XỈ TUYẾN TÍNH TỪNG ĐOẠN 42

4.1.1 Mô hình tìm tất cả các xu hướng thường xuyên sử dụng mảng hậu tố nâng cao và phương pháp xấp xỉ tuyến tính từng đoạn 43

4.1.2 Giải thuật chi tiết: 45

4.2 ÁP DỤNG PHƯƠNG PHÁP XẤP XỈ GỘP TỪNG ĐOẠN ĐỂ PHÁT HIỆN MOTIF 46

4.2.1 Mô hình tìm tất cả các xu hướng thường xuyên sử dụng mảng hậu tố nâng cao và phương pháp xấp xỉ tuyến tính từng đoạn 47

4.2.2 Giải thuật chi tiết: 49

CHƯƠNG 5 HIỆN THỰC VÀ THỬ NGHIỆM 51

5.1 MÔI TRƯỜNG PHÁT TRIỂN 51

5.2 KẾT QUẢ THỰC NGHIỆM CỦA CÁC GIẢI THUẬT 51

Trang 10

5.2.1 Nhận diện xu hướng thường xuyên bằng mảng hậu tố nâng cao hoặc cây hậu tố 52

5.2.2 Nhận diện motif bằng mảng hậu tố nâng cao 73

5.2.3 Nhận xét chung về phát hiện tất cả các xu hướng thường xuyên của dữ liệu thời gian 96 CHƯƠNG 6 KẾT LUẬN 97

6.1 ĐÁNH GIÁ KẾT QUẢ 97

6.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 98

PHỤ LỤC A BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH – VIỆT 1

Trang 11

DANH MỤC HÌNH ẢNH

Hình 1-1 Dữ liệu về giá vàng từ năm 2009 đến 2013 2

Hình 1-2 Xu hướng thường xuyên (repeateing trend) cuả chuỗi thời gian 2

Hình 2-1 Trie hậu tố 7

Hình 2-2 Không thể xây dựng được Trie với nút lá có nhãn AB 8

Hình 2-3 Thêm ký tự $ ở cuối mỗi chuỗi 9

Hình 2-4 Trie hậu tố 𝑻 = 𝑩𝑨𝑵𝑨𝑵𝑨$ 9

Hình 2-5 Cây hậu tố cho chuỗi xabxa$ 10

Hình 2-6 Mảng hậu tố theo thứ tự từ điển 11

Hình 2-7 Mảng hậu tố nâng cao của chuỗi S = acaaacatat$ 15

Hình 2-8 1-interval 16

Hình 2-9 Thêm chuỗi xabxa 17

Bước 2: Thêm chuỗi abxa (hình 2-10) 17

Hình 2-11 Thêm chuỗi bxa 18

Hình 2-12 Thêm chuỗi ax 18

Hình 2-13 Liên kết hậu tố của v tới nút gốc 19

Hình 2-14 Liên kết hậu tố của v tới nút trong 19

Hình 2-15 Cây hậu tố đầy đủ của chuỗi S 20

Hình 2-16 Bước chèn cho trường hợp 1 21

Hình 2-17 S = axbxacxfs 21

Hình 2-18 S = xbxacxfs 22

Hình 2-19 Dữ liệu chuỗi thời gian sau khi xấp xỉ từng đoạn 23

Trang 12

Hình 2-20 Một chuỗi thời gian được biến đổi PAA rồi mã hóa thành các ký hiệu

SAX 25

Hình 2-21 Dữ liệu ECG (điện tâm đồ) 26

Hình 2-22 Dữ liệu ECG sau khi làm nhẵn 27

Hình 3-1 Những xu hướng giống nhau 30

Hình 3-2 Góc giữa 2 điểm dữ liệu 31

Hình 3-3 Cây hậu tố 32

Hình 3-4 Motif trong dữ liệu chuỗi thời gian 34

Hình 3-5 Trùng khớp tầm thường của chuỗi con C 35

Hình 3-6 Dữ liệu sau khi xử lý qua phương pháp PPA và SAX 35

Hình 3-7 Mã hóa dữ liệu chuỗi thời gian 36

Hình 3-8 Kết quả ma trận đụng độ khi chon cột {1, 2} làm mặt nạ 37

Hình 3-9 Kết quả ma trận đụng độ khi chọn cột {2, 4} làm mặt nạ 37

Hình 3-10 Dữ liệu chuỗi thời gian 38

Hình 4-1 Dữ liệu sau khi làm nhẵn 43

Hình 4-2 Mô hình tìm kiếm tất cả các xu hướng thuường xuyên trong dữ liệu chuỗi thời gian 44

Hình 4-3 Xấp xỉ bằng PAA 46

Hình 4-4 Rời rạc hóa dữ liệu bằng SAX 47

Hình 4-5 Sơ đồ của quá trình tìm kiếm tất cả các motif trên dữ liệu chuỗi thời gian 48

Hình 5-1 Dữ liệu ECG (điện tâm đồ) với kích thước 2500 điểm 53

Hình 5-2 Dữ liệu ECG sau khi làm nhẵn 54

Trang 13

Hình 5-3 Sau khi thực hiện mảng hậu tố nâng cao 55

Hình 5-4 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PLA 55

Hình 5-5 Dữ liệu ECG với kích thước 10000 điểm 57

Hình 5-6 Dữ liệu ECG sau khi làm nhẵn 57

Hình 5-7 Sau khi thực hiện mảng hậu tố nâng cao 58

Hình 5-8 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PLA 58

Hình 5-9 Dữ liệu Memory với kích thước 6873 điểm 60

Hình 5-10 Dữ liệu Memory sau khi làm nhẵn 60

Hình 5-11 Sau khi thực hiện mảng hậu tố nâng cao 61

Hình 5-12 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PLA 61

Hình 5-13 Dữ liệu power_data với kích thước 7926 điểm 63

Hình 5-14 Dữ liệu power_data sau khi làm nhẵn 64

Hình 5-15 Sau khi thực hiện mảng hậu tố nâng cao 64

Hình 5-16 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PLA 65

Hình 5-17 Dữ liệu koski_ecg (Điện tâm đồ) với kích thước 9125 điểm 66

Hình 5-18 Dữ liệu koski_ecg sau khi làm nhẵn 67

Hình 5-19 Sau khi thực hiện mảng hậu tố nâng cao 67

Hình 5-20 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PLA 68

Hình 5-21 Dữ liệu eeg (điện não đồ) với kích thước 2477 điểm 69

Hình 5-22 Dữ liệu eeg sau khi làm nhẵn 70

Hình 5-23 Sau khi thực hiện mảng hậu tố 70

Hình 5-24 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PLA 71

Hình 5-25 Dữ liệu ECG (điện tâm đồ) với kích thước 2500 điểm 74

Trang 14

Hình 5-26 Dữ liệu ECG sau khi làm xấp xỉ gộp từng đoạn 75

Hình 5-27 Sau khi thực hiện mảng hậu tố nâng cao 75

Hình 5-28 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PAA 75

Hình 5-29 Sau khi thực hiện với phương pháp brute force 76

Hình 5-30 Dữ liệu ECG (điện tâm đồ) với kích thước 10000 điểm 77

Hình 5-31 Dữ liệu ECG sau khi xấp xỉ gộp từng đoạn 78

Hình 5-32 Sau khi thực hiện mảng hậu tố nâng cao 78

Hình 5-33 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PAA 79

Hình 5-34 Sau khi thực hiện với phương pháp brute force 79

Hình 5-35 Dữ liệu Memory với kích thước 6873 điểm 81

Hình 5-36 Dữ liệu Memory sau khi xấp xỉ gộp từng đoạn 81

Hình 5-37 Sau khi thực hiện mảng hậu tố nâng cao 82

Hình 5-38 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PAA 82

Hình 5-39 Sau khi thực hiện với phương pháp brute force 83

Hình 5-40 Dữ liệu power_data với kích thước 7926 điểm 84

Hình 5-41 Dữ liệu power_data sau khi xấp xỉ gộp từng đoạn 85

Hình 5-42 Sau khi thực hiện mảng hậu tố nâng cao 85

Hình 5-43 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PAA 86

Hình 5-44 Sau khi thực hiện với phương pháp brute force 86

Hình 5-45 Dữ liệu koski_ecg với kích thước 9125 điểm 88

Hình 5-46 Dữ liệu koski_ecg sau khi xấp xỉ gộp từng đoạn 88

Hình 5-47 Sau khi thực hiện mảng hậu tố nâng cao 89

Hình 5-48 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PAA 89

Trang 15

Hình 5-49 Sau khi thực hiện với phương pháp brute force 90

Hình 5-50 Dữ liệu eeg với kích thước 2477 điểm 92

Hình 5-51 Dữ liệu eeg sau khi xấp xỉ gộp từng đoạn 92

Hình 5-52 Sau khi thực hiện mảng hậu tố nâng cao 93

Hình 5-53 Sau khi thực hiện mảng hậu tố nâng cao với phương pháp PAA 93

Hình 5-54 Sau khi thực hiện với phương pháp brute force 94

Trang 16

DANH MỤC BẢNG

Bảng 3-1 Bảng ánh xạ dữ liệu từ giá trị thành ký tự 39

Bảng 5-1 Tóm tắt các thông số đầu vào cho các bộ dữ liệu 53

Bảng 5-2 Các thông số của bộ dữ liệu ECG 2500 điểm 54

Bảng 5-3 Kết quả các mẫu xu hướng tìm được và thời gian chạy bộ dữ liệu ECG (2500 điểm) 55

Bảng 5-4 Các thông số của bộ dữ liệu ECG 10000 điểm 57

Bảng 5-5 Kết quả mẫu xu hướng tìm được và thời gian chạy bộ dữ liệu ECG (10000 điểm) 59

Bảng 5-6 Các thông số của bộ dữ liệu Memory 6873 điểm 60

Bảng 5-7 Kết quả mẫu xu hướng tìm được và thời gian chạy bộ dữ liệu Memory (6873 điểm) 62

Bảng 5-8 Các thông số của bộ dữ liệu power_data 63

Bảng 5-9 Kết quả mẫu xu hướng tìm được và thời gian chạy bộ dữ liệu power_data (6873 điểm) 65

Bảng 5-10 Các thông số của bộ dữ liệu koski_ecg 66

Bảng 5-11 Kết quả mẫu xu hướng tìm được và thời gian chạy bộ dữ liệu koski_ecg (9125 điểm) 68

Bảng 5-12 Các thông số của bộ dữ liệu eeg 70

Bảng 5-13 Kết quả mẫu xu hướng tìm được và thời gian chạy bộ dữ liệu eeg (2477 điểm) 71

Bảng 5-14 Tóm tắt kết quả tìm kiếm tất cả các xu hướng thường xuyên 72

Bảng 5-15 Tóm tắt các thông số đầu vào cho các bộ dữ liệu 73

Bảng 5-16 Các thông số của bộ dữ liệu ECG 74

Trang 17

Bảng 5-17 Kết quả motif tìm được và thời gian chạy bộ dữ liệu ECG (2500 điểm) 76

Bảng 5-18 Các thông số của bộ dữ liệu ECG 10000 điểm 77

Bảng 5-19 Kết quả motif tìm được và thời gian chạy bộ dữ liệu ECG (10000 điểm) 79

Bảng 5-20 Các thông số của bộ dữ liệu Memory 6873 điểm 81

Bảng 5-21 Kết quả motif tìm được và thời gian chạy bộ dữ liệu Memory (6873 điểm) 83

Bảng 5-22 Các thông số của bộ dữ liệu power_data 84

Bảng 5-23 Kết quả motif tìm được và thời gian chạy bộ dữ liệu power_data (7926 điểm) 86

Bảng 5-24 Các thông số của bộ dữ liệu Memory 6873 điểm 88

Bảng 5-25 Kết quả motif tìm được và thời gian chạy bộ dữ liệu koski_ecg (9125 điểm) 90

Bảng 5-26 Các thông số của bộ dữ liệu eeg 2477 điểm 92

Bảng 5-27 Kết quả motif tìm được và thời gian chạy bộ dữ liệu eeg (2477 điểm) 94

Bảng 5-28 Tóm tắt kết quả tìm kiếm tất cả motif 95

Trang 18

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI

Phần đầu của chương giới thiệu sơ lược về đề tài sẽ thực hiện những gì, tại sao lại thực hiện và thực hiện như thế nào Một số khái niệm cơ bản được giới thiệu sơ lược trong chương này như: Dữ liệu chuỗi thời gian, xu hướng thường xuyên trong dữ liệu chuỗi thời gian

Phần thứ hai giới thiệu sơ lược về mục tiêu và phạm vi nghiên cứu

Phần cuối của chương sẽ trình bày tổng quan về cấu trúc tổng thể của toàn bộ luận văn

1.1 GIỚI THIỆU ĐỀ TÀI

Trong thời đại bùng nổ thông tin hiện nay, rất nhiều lĩnh vực kinh tế, xã hội như giáo dục, y tế, thương mại… đều sử dụng công nghệ thông tin nhằm đáp ứng việc khai thác

và quản lý các thông tin, dữ liệu một cách hiệu quả Việc dự báo và đưa ra các quyết định

từ một khối dữ liệu đã được lưu trữ ngày càng được quan tâm và tập trung nghiên cứu, từ

đó các ứng dụng công nghệ thông tin hỗ trợ việc dự báo và đưa ra quyết định trong thời gian cho phép đã ra đời và đang ngày càng phát triển không ngừng nhằm tăng độ chính xác

và tốc độ xử lý Điển hình trong các ứng dụng là những ứng dụng trong khai phá dữ liệu chuỗi thời gian (Time series Data mining) Chuỗi thời gian là một dãy số của các số thực,

biểu diễn các giá trị của một đại lượng nào đó được ghi nhận theo tuần tự thời gian Ví dụ:

số lượng sản phẩm bán ra của một công ty hằng năm, tỉ lệ bệnh nhân mắc bệnh HIV trong

những thập niên gần đây, giá vàng hăng năm (hình 1-1), lượng mưa hay hạn hán hằng năm

Trang 19

Hình 1-1 Dữ liệu về giá vàng từ năm 2009 đến 2013

Trong những năm gần đây, có rất nhiều công trình nghiên cứu về việc phát hiện

ra xu hướng thường xuyên (frequent trend), tức là một đoạn trong một chuỗi thời gian xuất hiện lặp đi lặp lại (hình 1-2) Việc phát hiện ra xu hướng thường xuyên như vậy

có rất nhiều ứng dụng trong thực tiễn như dự đoán tăng giảm giá vàng hay giá cổ phiếu

Ví dụ: trong trường hợp dự báo lượng mưa quan sát được trong hằng năm ở miền nam

bộ, vào những tháng đầu của năm hầu như không có mưa, và có mưa to vào những tháng 7, 8, 9 và kết thúc vào tháng 10

Hình 1-2 Xu hướng thường xuyên (repeateing trend) cuả chuỗi thời gian

Trang 20

Hiện nay có nhiều thuật toán để phát hiện xu hướng trong chuỗi thời gian như Indyk [1] nghiên cứu các vấn đề xác định xu hướng trong chuỗi thời gian, Qu [2] trình bày một cách tiếp cận để hỗ trợ tìm kiếm xu hướng trong dữ liệu chuỗi thời gian và giải thuật chiếu ngẫu nhiên để phát hiện motif trên dữ liệu chuỗi thời gian dựa vào xác xuất

Cậy hậu tố (suffix tree) là một trong những cấu trúc dữ liệu biểu diễn các hậu

tố của một chuỗi ký tự, là một trong những phương pháp giúp tìm kiếm tất cả các chuỗi con trong một chuỗi và được ứng dụng để tìm kiếm tất cả các xu hướng thường xuyên trong dữ liệu chuỗi thời gian bằng cách mã hóa sự tăng giảm giá trị của dữ liệu trong

từng điểm thời gian thành một chuỗi ký tự

1.2 MỤC TIÊU VÀ GIỚI HẠN ĐỀ TÀI

Mục tiêu nghiên cứu đề tài tập trung vào các vấn đề sau:

 Nghiên cứu dữ liệu chuỗi thời gian

 Nghiên cứu về cách mã hóa xu hướng của dữ liệu thành ký tự

 Nghiên cứu về cây hậu tố, mảng hậu tố và các vấn đề liên quan

 Nghiên cứu việc áp dụng mảng hậu tố nâng cao để tìm tất cả các xu hướng thường xuyên và motif trong dữ liệu chuỗi thời gian

 So sánh kết quả của phương pháp nêu trên với kết quả của cây hậu tố và giải thuật brute force

 Thiết lập mối liên hệ giữa bài toán “phát hiện mẫu xu hướng thường xuyên” trên dữ liệu chuỗi thời gian với bài toán “phát hiện motif” trên dữ liệu chuỗi

Trang 21

 Chúng tôi cũng đã xây dựng được sự kết hợp mảng hậu tố nâng cao, cây hậu

tố với phương xấp xỉ tuyến tính từng đoạn (PLA) để phát hiện tất cả các mẫu

xu hướng thường xuyên và phương pháp xấp xỉ gộp từng đoạn (PAA) để phát hiện tất cả các motif với độ dài khác nhau trên dữ liệu chuỗi thời gian

1.4 CẤU TRÚC CỦA LUẬN VĂN

Đề cương được chia thành 6 phần chính như sau:

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI

Chương này giới thiệu sơ lược về đề tài, mục tiêu và phạm vi nghiên cứu cũng như cấu trúc của đề tài

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Chương này trình bày chi tiết về các vấn đề lý thuyết sẽ được áp dụng trong

đề tài như: dữ liệu chuỗi thời gian, cây hậu tố, mảng hậu tố, mảng hậu tố nâng cao, mã hóa dữ liệu chuỗi thời gian thành chuỗi xu hướng

CHƯƠNG 3 NHỮNG CÔNG TRÌNH LIÊN QUAN

Chương này trình bày một số công trình nghiên cứu liên quan đến đề tài như công trình phát hiện tất cả các xu hướng thường xuyên trong dữ liệu chuỗi thời gian, công trình phát hiện motif trên dữ liệu chuỗi thời gian dựa vào xác xuất, và công trình về truy vấn hình dạng dữ liệu chuỗi thời gian

CHƯƠNG 4 PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ

Chương này trình bày về việc sử dụng mảng hậu tố nâng cao, cây hậu tố cùng với phương pháp xấp xỉ tuyến tính từng đoạn để phát hiện tất cả các mẫu xu hướng thường xuyên và phương pháp xấp xỉ gộp từng đoạn để phát hiện tất

cả các motif trong dữ liệu chuỗi thời gian CHƯƠNG 5 THỰC NGHIỆM VÀ ĐÁNH GIÁ

Trang 22

Chương này trình bày thực nghiệm, đánh giá độ chính xác và thời gian thực hiện để phát hiện tất cả các mẫu xu hướng và phát hiện tất cả các motif bằng mảng hậu tố nâng cao và cây hậu tố trong dữ liệu chuỗi thời gian

CHƯƠNG 6 KẾT LUẬN

Chương này đánh giá kết quả đạt được, các mặt hạn chế và hướng phát triển của đề tài

Trang 23

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT

Chương này sẽ trình bày về các công trình liên quan đến bài toán tìm tất cả các xu hướng thường xuyên trong dữ liệu chuỗi thời gian, các công trình về cây hậu tố, mảng hậu

tố, mảng hậu tố nâng cao, phương pháp thu giảm số chiều, phương pháp rời rạc hóa dữ liệu

2.1 DỮ LIỆU CHUỖI THỜI GIAN

Một chuỗi thời gian (Time Series) chiều dài 𝑚 là một tập hợp có thứ tự gồm 𝑚 giá

trị thực Ta ký hiệu chuỗi thời gian là 𝑇 = 𝑥1, 𝑥2, … , 𝑥𝑚 với 𝑥𝑖 là các số thực, 𝑚 là một số nguyên

Việc xác định các xu hướng thường xuyên của một chuỗi thời rất quan trọng trong bài toán dự báo chuỗi thời gian Nó giúp ta lựa chọn được mô hình dự báo phù hợp hay giúp cải tiến mô hình đã có chính xác hơn Và các mẫu quan sát được theo thời gian dựa trên các chuỗi thời gian chính là cơ sở để hiểu được đặc tính cũng như là dự báo các hành

vi tương lai của đối tượng đó

Chuỗi con (𝑠𝑢𝑏𝑠𝑒𝑞𝑢𝑒𝑛𝑐𝑒) 𝐶 có chiều dài 𝑛 của một chuỗi thời gian 𝑇 có chiều dài

𝑚 (𝑚 ≤ 𝑛) là một đoạn các giá trị liên tục nằm trong T Ta ký hiệu

𝐶 = 𝑥 𝑝, 𝑥𝑝+1, … , 𝑥𝑝+𝑛−1, với 1 ≤ 𝑝 ≤ 𝑚 − 𝑛 + 1

2.2 CÂY HẬU TỐ

Cho ∑ là một tập hữu hạn các phần tử, với mỗi phần tử là một ký tự trong tập ký tự (𝑎𝑙𝑝ℎ𝑎𝑏𝑒𝑡), các phần tử thuộc ∑ gọi là ký tự ∑* là một tập hợp con của ∑ mà không chứa chuỗi rỗng (∈) Ta có:

∑∗ = ∑ − {∈}

Chiều dài của một chuỗi 𝑥 ký hiệu là |𝑥|, là số ký tự trong chuỗi 𝑥 Các ký trong chuỗi 𝑥 được đánh số từ 0 đến|𝑥| – 1:=𝑥 = 𝑥0𝑥1𝑥2… 𝑥|𝑥|−1

Trang 24

Gọi chuỗi 𝑤 là tiền tố của chuỗi 𝑥, ký hiệu 𝑤 ⊏ 𝑥, nếu tồn tại chuỗi 𝑎 để 𝑥 = 𝑤𝑎, chuỗi 𝑤 là hậu tố của chuỗi 𝑥, ký hiệu 𝑤 ⊐ 𝑥, nếu tồn tại chuỗi 𝑎 để 𝑥 = 𝑎𝑤 Một chuỗi vừa có thể là tiền tố vừa là hậu tố của một chuỗi khác Ví dụ chuỗi XYX vừa là tiền tố vừa

là hậu tố của chuỗi XYXYX Chuỗi rỗng (∈) vừa là tiền tố vừa là hậu tố của tất cả các chuỗi

Trie hậu tố

Cho 𝑆 là một tập hợp gồm 𝑛 chuỗi, các chuỗi này không là tiền tố của nhau Trie là

một cấu trúc dữ liệu dạng cây (hình 2-1) biểu diễn các chuỗi của 𝑆 Trie có các tính chất

sau:

 Mỗi cạnh của Trie có nhãn là một ký tự Các cạnh đi từ một nút xuống các nút con

có nhãn khác nhau

 Mỗi nút trên Trie cũng có một nhãn, ký hiệu 𝑣̅ là chuỗi tạo thành bằng cách nối các

ký tự nhãn của cạnh trên đường đi trừ nút gốc xuống nút con Chiều dài của chuỗi 𝑣̅ được gọi là độ sâu của nút, ký hiệu: 𝑑𝑒𝑝𝑡ℎ(𝑣)

 Hai nút khác nhau có nhãn khác nhau

Ví dụ Trie hậu tố: 𝑆 = {𝐵𝐸𝐴𝑅, 𝐵𝐸𝐿𝐿, 𝐵𝐼𝐷, 𝐵𝑈𝐿𝐿, 𝐵𝑈𝑌, 𝑆𝐸𝐿𝐿, 𝑆𝑇𝑂𝐶𝐾, 𝑆𝑇𝑂𝑃}

Trang 25

Các chuỗi trong tập 𝑆 phải thỏa mãn tính chất phi tiền tố (prefix-free): tức là không

có chuỗi nào là tiền tố của một chuỗi khác trong 𝑆 Không thể xây dựng được cây không thỏa mãn tính chất trên Ví du: 𝑆 = {ABC, AB}, ta không thể xây dựng được trie hậu tố vì

từ nút góc đến các nút lá của Trie ta lần lượt đi qua các nút có nhãn A, AB, ABC Vì AB

∈ 𝑆 nên ta phải có nút lá của Trie mang nhãn AB, mà ta đã có nhánh của Trie có nhãn AB,

nên không thể xây dựng được nút lá có nhãn AB (hình 2.-2)

Hình 2-2 Không thể xây dựng được Trie với nút lá có nhãn AB

Tính chất phi tiền tố là một tính chất quan trọng của cây Trie Để đảm bảo ta luôn

có thể xây dựng được cây Trie, ta dùng một kỹ thuật là bổ sung vào mỗi chuỗi của 𝑆 một

ký tự $ ở cuối mỗi chuỗi (hình 2-3)

Cho 𝑆 là một tập chứa các hậu tố của 1 chuỗi 𝑇 (𝑇 ∈ ∑∗) được gọi là Trie hậu tố

của T (hình 2-4) Để thỏa mãn tính chất phi tiền tố, ta thêm vào cuối mỗi phần tử của S ký

tự $ Ví dụ: 𝑇 = BANANA$, ta có tập S gồm 7 chuỗi:

𝑆 = {BANANA$, ANANA$, NANA$, ANA$, NA$, A$, $}

Trang 26

Hình 2-3 Thêm ký tự $ ở cuối mỗi chuỗi

Hình 2-4 Trie hậu tố 𝑻 = 𝑩𝑨𝑵𝑨𝑵𝑨$

Cây hậu tố (suffix tree) là một cấu trúc dữ liệu biểu diễn các hậu tố của một

chuỗi khác rỗng tương tự như Trie Cây hậu tố được tạo thành từ Trie hậu tố bằng cách

Trang 27

ghép các nút con đơn nhánh lại với nhau Cây hậu tố cho chuỗi 𝑆 có chiều dài 𝑚 có các

tính chất sau:

Mỗi cạnh của cây có nhãn là một chuỗi thuộc ∑∗ Các cạnh đi từ một nút xuống các

nút con của nó phải có nhãn là các chuỗi có ký tự đầu tiên khác nhau

Mỗi nút 𝑣 trên cây cũng mang một nhãn, nhãn của nút 𝑣, ký hiệu 𝑣̅ là một chuỗi tạo

thành bằng các nối tiếp các nhãn cạnh trên đường đi xuống nút 𝑣 Chiều dài của chuỗi 𝑣̅ :

𝑣̅ được gọi là độ sâu của nút 𝑣, ký hiệu: 𝑑𝑒𝑝𝑡ℎ(𝑣)

Ngoại trừ nút góc, các nút phải có nhiều hơn một con

Với mỗi cạnh được gán nhãn bằng một chuỗi con khác rỗng của 𝑆

Mỗi chuỗi con 𝑎 của chuỗi 𝑆 xuất hiện trên một lối đi duy nhất nào đó từ nút gốc

Ví dụ cây hậu tố: 𝑆 = xabxa$

Hình 2-5 Cây hậu tố cho chuỗi xabxa$

2.3 MẢNG HẬU TỐ

Cho một chuỗi 𝑆 = 𝑥1, 𝑥2, 𝑥3, … 𝑥𝑚 ∈ ∑∗, có duy nhất 𝑥𝑚 = $ Mảng hậu tố (suffix

array ) của 𝑆 ký hiệu SA(T) là thứ tự từ điển của tất cả các hậu tố của 𝑆

Trang 28

Mảng hậu tố có thể được biểu diễn theo thứ tự từ điển (hình 2-6) Ví dụ:

𝑆= BANANA$, các hậu tố của 𝑆 và mảng hậu tố của 𝑆 theo thứ tự từ điển

Hình 2-6 Mảng hậu tố theo thứ tự từ điển

Mảng hậu tố được đề xuất bởi Manber và Myer [3] như một sự thay thế cho cây hậu

tố trong một số bài toán xử lý chuỗi Mảng hậu tố có ưu điểm là có cấu trúc đơn giản và

tiết kiệm bộ nhớ trong lúc hiện thực Manber và Mayer cũng đề xuất thuật toán xây dựng

mảng hậu tố trực tiếp mà không phải sử dụng cây hậu tố gọi là thuật toán nhân đôi tiền tố

(𝑑𝑜𝑢𝑏𝑙𝑖𝑛𝑔 𝑝𝑟𝑒𝑓𝑖𝑥) Thuật toán có độ phức tạp là Ω(𝑛𝑙𝑜𝑔𝑛) trong trường hợp xấu nhất và

𝑂(𝑛) trong trường hợp trung bình để xử lý chuỗi có độ dài 𝑛 Năm 2003, hai nghiên cứu

độc lập của Kärkkäinen [4] và Ko [5] đã tìm ra được hai thuật toán tuyến tính xây dựng

mảng hậu tố Một điểm đáng chú ý trong các thuật toán của Kärkkäinen [4] là chúng đều

dựa trên những nhận định rất tinh tế về tính chất của các hậu tố và mối quan hệ giữa các vị

trí trong chuỗi

Trang 29

2.4 MẢNG TIỀN TỐ CHUNG DÀI NHẤT

Tiền tố chung dài nhất (longest common prefix) của hai chuỗi (𝑥, 𝑦) là chuỗi 𝑧 sao

cho 𝑧 vừa là tiền tố của 𝑥, vừa là tiền tố của 𝑦 và 𝑧 có độ dài lớn nhất Ví dụ:

TIền tố chung của sâu banana và bank là ban

Mảng tiền tố chung dài nhất (LCP) là một mảng có kích thước n (giống như suffix

array) sao cho giá trị thứ 𝑖 (𝑙𝑐𝑝[𝑖]) là tiền tố chung dài nhất của hậu tố thứ 𝑖 và 𝑖 + 1

Cho T= t 0 t 1 … t n-1 𝑆𝐴(𝑇) = a 0 , a 1 ,…., a n-1 là mảng hậu tố của T Mảng tiền tố

chung dài nhất 𝐿𝐶𝑃(𝑇) là dãy số nguyên ( l0 , l 1 ,…., l n-1 ) định nghĩa như sau:

 l 0 =0;

 ∀𝑖 >=0: là độ dài tiền tố chung dài nhất giữa hậu tố tại vị trí a i và hậu tố tại

vị trí a i trong chuỗi

Ví dụ với chuỗi T = 𝐵𝐴𝑁𝐴𝑁𝐴, mảng hậu tố của T (hình 2-6), ta có mảng tiền tố

chung dài nhất như sau:

l 0 = 0;

l 1 = 0 (độ dài tiền tố chung dài nhất của A$ và $)

l 2 = 1 (độ dài tiền tố chung dài nhất của ANA$ và A$)

l 3 = 3 (độ dài tiền tố chung dài nhất của ANANA$ và ANA$)

l 4 = 0 (độ dài tiền tố chung dài nhất của BANANA$ và ANANA$)

l 5 = 0 (độ dài tiền tố chung dài nhất của NA$ và BANANA$)

l 6 = 2 (độ dài tiền tố chung dài nhất của NANA$ và NA$)

Trên cây hậu tố, có rất nhiều thuật toán 𝐿𝐶𝐴 có thể áp dụng để tìm nút tiền bối chung gần nhất của hai nút, mỗi truy vấn 𝐿𝐶𝐴 được thực hiện trong thời gian 𝑂(1) và vì thế có thể xây dựng mảng tiền tố chung dài nhất trong thời gian 𝑂(𝑛) Mặc dù vậy, Kasai [6] đã

đề xuất được thuật toán tuyến tính hết sức đơn giản và hiệu quả để xây dựng mảng tiền tố

Trang 30

2.5 XÂY DỰNG MẢNG HẬU TỐ

Cho chuỗi T = t 0 t 1 … t n-1 ta cần xây dựng mảng hậu tố 𝑆𝐴(𝑇) = a 0 , a 1 ,…., a n-1

.Việc xây dựng mảng hậu tố bằng cách so sánh và sắp xếp chuỗi là một phương pháp đơn giản, nhưng đây không phải là một phương pháp hay, vì độ phức tạp của thuật toán so sánh

sẽ tỉ lệ thuận với chiều dài của chuỗi Vì thế ta cần tìm một phương pháp khác để xử lý sắp xếp hiệu quả các chuỗi con của mảng hậu tố

Thuật toán nhân đôi tiền tố

Phương pháp nhân đôi tiền tố (prefix doubling) được đề xuất bởi Manber và Myers

[3] là một trong những phương pháp cổ điển nhất thường được dùng để xây dựng mảng hậu tố Thuật toán này thường được sử dụng nhiều vì việc cài đặt chương trình khá đơn giản, thích hợp với việc lập trình đòi hỏi thời gian ngắn Thuật có có độ phức tạp là 𝑂(𝑛𝑙𝑜𝑔𝑛), tuy nhiên trung bình thuật toán chỉ cần thời gian 𝑂(𝑛) để thực hiện nếu dữ liệu phân bố ngẫu nhiên trong một bảng chữ cái lớn Thuật toán được xây dựng như sau:

Trước hết coi văn bản đầu vào 𝑇[1,2,…,n] có chiều dài vô hạn bằng cách thêm vào cuối văn bản 𝑇 vô hạn ký tự $ Gọi văn bản vô hạn là 𝑇∞ Chú ý là $ là ký tự nhỏ hơn ( theo thứ tự từ điển) tất cả các ký tự khác trong bảng chữ cái 𝛴 và chỉ xuất hiện trong văn bản 𝑇[1,2,…,𝑛] đúng một lần tại vị trí cuối cùng Do 𝑇∞ vô hạn, với mỗi số 0 ≤ 𝑘 ≤

⌈𝑙𝑜𝑔2𝑛⌉ ta có đúng 𝑛 chuỗi con của 𝑇∞ chiều dài 2𝑘, mỗi chuỗi bắt đầu bằng một ký tự của 𝑇[1,2,…,𝑛] Thuật toán thực hiện theo 𝑙𝑜𝑔2𝑛 bước như sau:

Sắp xếp 𝑛 chuỗi con của 𝑇∞ độ dài 1 theo thứ tự từ điển

Sắp xếp 𝑛 chuỗi con của 𝑇∞ độ dài 2 theo thứ tự từ điển

Sắp xếp 𝑛 chuỗi con của 𝑇∞ độ dài 4 theo thứ tự từ điển

Trang 31

Nhận xét: Thứ tự của các chuỗi con thu được sau bước cuối cùng chính là thứ tự đã

sắp xếp của các hậu tố bắt đầu bằng ký tự đầu tiên của các chuỗi con đó

Thời gian thực hiện giải thuật phụ thuộc vào thuật toán sắp xếp theo hai dãy khóa

số tại mỗi bước Có thể dùng các thuật toán sắp xếp so sánh, chẳng hạn như QuickSort Tuy nhiên vì tập các giá trị khóa là các số nguyên nằm trong phạm vi từ 1 tới 𝑛, ta có thể

áp dụng các thuật toán sắp thứ tự cơ số (Radix Sort) hoặc sắp thứ tự đếm (Counting Sort)

để đạt tốc độ cao hơn với thời gian thực hiện giải thuật sắp xếp là 𝑂(𝑛) Từ đó thuật toán nhân đôi tiền tố có thể thực hiện trong thời gian 𝑂(𝑛)

2.6 MẢNG HẬU TỐ NÂNG CAO

Mảng hậu tố nâng cao (enhanced suffix array) là một cấu trúc dữ liệu bao gồm mảng hậu tố và một bảng bổ sung (hình 2-7) Đây cũng là 1 thuật toán dựa trên cấu trúc cây hậu

tố

Trang 32

Hình 2-7 Mảng hậu tố nâng cao của chuỗi S = acaaacatat$

Suffix array suftab là một mảng các số từ 0 đến 𝑛, với 𝑛 ∈ 𝑁+ , nhằm để xác định

vị trí của các hậu tố của chuỗi 𝑆 Suffix array suftab có thể xây dựng trong thời gian 𝑂(𝑛) Ví dụ:

Ssuftab[0] = aaacatat$  subtab[0] = 2 Chuỗi con aaacatat$ nằm ở vị trí thứ 2 trong chuỗi S = acaaaacatat$

Bảng bwttab

Nó là 1 bảng có 𝑛+1 phần tử mà với mỗi 𝑖, 𝑖 ≤ 𝑞 ≤ 𝑛, bwttab[𝑖] = S[suftab[𝑖] − 1] nếu suftab[𝑖] ≠ 0 bwttab[𝑖] không được định nghĩa nếu suftab[𝑖] = 0 Bảng bwttab được xây dựng trong thời gian 𝑂(𝑛) bằng cách duyệt qua các phần tử trong mảng hậu tố

Trang 34

2.7 XÂY DỰNG CÂY HẬU TỐ

Thuật toán chân phương

Để biểu diễn cây hậu tố 𝑆𝑇(𝑆) (𝑆 là chuỗi cho trước) dưỡi dạng cấu trúc Ta lần lượt thêm các hậu tố của 𝑆 vào cây Bắt đầu từ hậu tố thứ 2, tìm tiền tố chung dài nhất với tất

cả các hậu tố đã thêm vào cây Gọi 𝑢 là tiền tố chung dài nhất

Nếu vị trí kết thúc của 𝑢 là một nút thì ta chỉ cần tạo mới một nút lá 𝑦 làm con của

u và đặt nhãn cho cạnh mới (𝑢, 𝑦) là phần còn lại của hậu tố đang được thêm vào loại bỏ

tiền tố u

Ngược lại vị trí kết thúc của 𝑢 nằm giữa một cạnh thì ta thêm vào một nút trong 𝑤 làm nút con của 𝑢 và cha của v, 𝑢 nằm ngay sau vị trí cuối cùng của cạnh mà chữ cái cuối cùng của 𝑢 khác với chữ cái trên cạnh Sau đó tạo mới một nút lá 𝑦 𝑙àm con của w và đặt nhãn cho cạnh mới (𝑢, 𝑦) là phần còn lại của hậu tố đang được thêm vào loại bỏ tiền tố u

Ví du: xây dựng cây hậu tố cho chuỗi “xabxa$”

Bước 1: Thêm chuỗi xabxa (hình 2-9)

Hình 2-9 Thêm chuỗi xabxa

Bước 2: Thêm chuỗi abxa (hình 2-10)

Trang 35

Hình 2-10 Thêm chuỗi abxa

Bước 3: Thêm chuỗi bxa (hình 2-11)

Hình 2-11 Thêm chuỗi bxa

Bước 4: Thêm chuỗi ax (hình 2-12)

Hình 2-12 Thêm chuỗi ax

Thuật toán tốn 𝑛 vòng lặp để thêm lần lượt các hậu tố vào cây Và trong từng bước lặp tốn 𝑛 lần để tìm các tiền tố chung vì vậy thuật toán có độ phức tạp 𝑂(𝑛2)

Trang 36

Thuật toán McCreight

Thuật toán McCreight được đề xuất bởi McCreigh vào năm 1976 [7], đây là thuật toán trên ý tưởng của thuật toán chân phương và được cải tiến bằng cách thêm những liên kết cho những nút trong của cây hậu tố

Gọi v là nút trong của cây hậu tố với pathlabel(𝑣) = 𝑐𝑠 với c là ký tự đầu tiên trong

pathlabel (𝑣) và 𝑠 là một chuỗi (s có thể rỗng)

Nếu 𝑠 = ∈, liên kết hậu tố của 𝑣 sẽ trỏ đến nút gốc của cây hậu tố 𝑆𝑇 (hình 2-13)

Hình 2-13 Liên kết hậu tố của v tới nút gốc

Nếu s ≠ ∈, liên kết hậu tố của 𝑣 sẽ trỏ vào một nút trong u của ST thỏa mãn điều kiện sau: pathlabel(u)= s (hình 2-14)

Hình 2-14 Liên kết hậu tố của v tới nút trong

Trang 37

Ví dụ chuỗi S=xabxacxabxxabx$ có cây hậu tố và các liên kết hậu tố như hình sau (hình 2-15):

Hình 2-15 Cây hậu tố đầy đủ của chuỗi S

Nếu cây 𝑆𝑇𝑖−1 có tồn tại nút trong 𝑣 sao cho 𝑝𝑎𝑡ℎ𝑙𝑎𝑏𝑒𝑙(v)=cs là tiền tố chung lớn nhất ủa 𝑆𝑖 với 𝑆𝑇𝑖−1, ta sẽ đi theo liên kết hậu tố của v để chèn 𝑆𝑖+1 (hình 2-16)

Trang 38

Hình 2-16 Bước chèn cho trường hợp 1

Nếu cây 𝑺𝑻𝐢−𝟏 không có tồn tại nút trong 𝒗 sao cho pathlabel(𝒗)=𝒄𝒔 là tiền tố chung lớn

nhất của 𝑺𝒊 với 𝑺𝑻𝐢−𝟏, ta sẽ làm tương tự thuật toán chân phương, thêm vào một nút 𝒘

vào giữa, 𝒘 lúc này chưa có liên kết, ta sẽ đi theo liên kết cha của 𝐰 để chèn 𝑺𝒊+𝟏 Do

biết trước độ dài của cạnh (𝒘, parent(𝒘)), ký hiệu là 𝑳 nên ta có thể nhảy một số nút khi

so sánh 𝑺𝒊+𝟏𝑺𝑻𝐢 (hình 2-17, hình 2-18)

Hình 2-17 S = axbxacxfs

Trang 39

Hình 2-18 S = xbxacxfs

2.8 MÃ HÓA DỮ LIỆU THÀNH XU HƯỚNG

Dữ liệu trong chuỗi thời gian là những số thực, vì thế để xây dựng được cây hậu tố với dữ liệu thời gian ta cần phải mã hóa những dữ liệu đó thành những ký tự Có nhiều cách mã hóa dữ liệu, ví dụ: trong công trình của Agrawal [8] sử dụng một cách mã hóa đơn giản đó là khi có 1 sự thay đổi dữ liệu của từng từng điểm thời gian: tăng nhanh, tăng, không đổi, giảm, giảm nhanh, zero, vv… dữ liệu sẽ mã hóa thành các ký tự lấy từ một tập

ký tự

2.9 XẤP XỈ DỮ LIỆU CHUỖI THỜI GIAN BẰNG PHƯƠNG PHÁP GỘP TỪNG ĐOẠN (Piecewise Aggregate Approximation - PAA)

Phương pháp PAA được Keogh và các cộng sự đưa ra vào năm 2000 [9] Phương

pháp này tuần tự xấp xỉ sắp xếp k giá trị liền kề nhau thành cùng một giá trị bằng trung bình cộng của k điểm đó Quá trình cứ tiếp tục từ trái qua phải của chuỗi dữ liệu Kết quả nhận được là một đường thẳng có hình bậc thang (hình 2-19) Giá trị trung bình tại vị trí k

được tính bằng công thức sau:

𝑋̅ =𝑖 𝑁

𝑛

𝑁𝑖𝑛

Trang 40

Với 𝑛 là chiều dài dữ liệu chuỗi thời gian, N là số đoạn dữ liệu được xấp xỉ

Độ phức tạp của giải thuật PAA là O(n) trong mọi trường hợp

Hình 2-19 Dữ liệu chuỗi thời gian sau khi xấp xỉ từng đoạn

Mã giả của giải thuật PAA:

Algorithm PAA_Seg = PAA(T,N)

Ngày đăng: 26/01/2021, 15:42

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] P. Indyk , N. Koudas and . S. Muthukrishnan, "Identifying Representative Trends in Massive Time Series Data Sets Using Sketches,"Proceedings of the 26th International Conference on Very Large Data Bases, pp. 363-372, 2000 Sách, tạp chí
Tiêu đề: Identifying Representative Trends in Massive Time Series Data Sets Using Sketches
[2] Y. Qu, C. Wang and X. S. Wang, "Supporting fast search in time series for movement patterns in multiple scales," Proceedings of the seventh International Conference on Information and Knowledge management, pp.251-258, 1998 Sách, tạp chí
Tiêu đề: Supporting fast search in time series for movement patterns in multiple scales
[3] U. Manber and G. Myers, "Suffix arrays: a new method for on-line string searches," Proceedings of the first annual ACM-SIAM symposium on discrete algorithms, pp. 319-327, 1990 Sách, tạp chí
Tiêu đề: Suffix arrays: a new method for on-line string searches
[4] J. Kọrkkọinen, P. Sanders and S. Burkhardt, "Simple linear work suffix array," Proceedings of the 13th international conference on automata, languages and programming, pp. 943-955, 2003 Sách, tạp chí
Tiêu đề: Simple linear work suffix array
[5] P. Ko and S. Aluru, "Space efficient linear time construction of suffix," Proceedings of the 14th annual symposium on combinatorial pattern, pp. 200- 210, 2003 Sách, tạp chí
Tiêu đề: Space efficient linear time construction of suffix
[6] T. Kasai, . G. Lee, . H. Arimura, . S. Arikawa and K. Park, "Linear- time longest-common-prefix computation in suffix arrays and its applications," in Proceedings of the 12th Annual Symposium on Combinatorial, London, 2001 Sách, tạp chí
Tiêu đề: Linear-time longest-common-prefix computation in suffix arrays and its applications
[9] E. Keogh, S. Chu, D. Hart and M. Pazzani, "An online algorithm for segmenting time series," Proceedings of the IEEE International Conference on Data Mining, California,USA, pp. 289-296, 2001 Sách, tạp chí
Tiêu đề: An online algorithm for segmenting time series
[10] A. Udechukwu, K. Barker and R. Alhajj, "Discovering All Frequent Trends in Time Series," Proceedings of the winter international synposium on Information and Communication Technologies, pp. 1-6, 2004 Sách, tạp chí
Tiêu đề: Discovering All Frequent Trends in Time Series
[11] J. Lin, E. Keogh, P. Patel and S. Lonardi, "Mining motifs in massive time series databases," Proceedings of the 2002 IEEE International Conference on Data Mining , p. 370 Sách, tạp chí
Tiêu đề: Mining motifs in massive time series databases
[12] B. Chiu, E. Keogh and S. Lonardi, "Probabilistic discovery of time series motifs," Proceedings of the ninth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 493-498, 2003 Sách, tạp chí
Tiêu đề: Probabilistic discovery of time series motifs
[13] E. Keogh and M. Pazzani, "An enhanced representation of time series which allows fast and accurate classification, clustering and relevance feedback," Proceedings of the 4th International Conference on Knowledge Discovery and Data Mining, New York,NY, pp. 239-241, 27-31 Aug 1998 Sách, tạp chí
Tiêu đề: An enhanced representation of time series which allows fast and accurate classification, clustering and relevance feedback
[14] G. Roberto and G. F. Italiano, "Suffix trees and their applications in string algorithms," Proceedings of the 1st South American Workshop on String Processing, pp. 57-76, 1993 Sách, tạp chí
Tiêu đề: Suffix trees and their applications in string algorithms
[15] A. T. Dương, "An overview of similarity search in time series data," Tạp chí phát triển khoa học và Công nghệ - Đại học Quốc Gia, vol. 14, no.k2, pp. 71-79, 2011 Sách, tạp chí
Tiêu đề: An overview of similarity search in time series data
[17] R. S. Kosaraju, "Real-time pattern matching and quasi-real-time," Proceedings of the 26th annual ACM symposium on theory of computing, pp.310-316, 1994 Sách, tạp chí
Tiêu đề: Real-time pattern matching and quasi-real-time
[18] J. Lin, E. Keogh, S. Lonardi and B. Chiu, "A Symbolic Representation of Time Series, with Implications for Streaming Algorithms," Proceedings of the 8th ACM SIGMOD workshop on Research issues in data mining and knowledge discovery, pp. 2-11, 2003 Sách, tạp chí
Tiêu đề: A Symbolic Representation of Time Series, with Implications for Streaming Algorithms
[19] M. Barsky, U. Stege and A. Thomo, "A survey of practical algorithms for suffix tree construction in external memory," Software—Practice &Experience, vol. 40, pp. 965-988, 2010 Sách, tạp chí
Tiêu đề: A survey of practical algorithms for suffix tree construction in external memory
[20] A. Moffat and S. J. Puglisi , "Reducing Space Requirements for Disk Resident Suffix Arrays," Proceedings of the 14th International Conference on Database Systems for Advanced Applications, pp. 730 - 744, 2009 Sách, tạp chí
Tiêu đề: Reducing Space Requirements for Disk Resident Suffix Arrays
[21] A. Turpin and S. J. Puglisi, "Space-Time Tradeoffs for Longest- Common-Prefix Array Computation," School of Computer Science and Information Technology, RMIT University, Melbourne, Australia Sách, tạp chí
Tiêu đề: Space-Time Tradeoffs for Longest-Common-Prefix Array Computation
[22] R. Sinha, S. Puglisi, A. Moffat and A. Turpin, "Improving suffix array locality for fast pattern matching on disk," Proceedings of the 2008 ACM SIGMOD international conference on Management of data , pp. 661-672 , 2008 Sách, tạp chí
Tiêu đề: Improving suffix array locality for fast pattern matching on disk

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm