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

Cấu trúc chỉ mục ts tree cho dữ liệu chuỗi thời gian với độ đo xoắn thời gian động

98 14 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 98
Dung lượng 4,12 MB

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

Nội dung

Để khắc phục cả hai vấn đề trên trong các cấu trúc chỉ mục dữ liệu chuỗi thời gian thì cấu trúc chỉ mục TS-Tree được nghiên cứu như là một biện pháp tốt nhất để có thể tăng tốc tìm kiếm

Trang 1

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

NGUYỄN MINH HIẾU

CẤU TRÚC CHỈ MỤC TS-TREE CHO DỮ LIỆU CHUỖI THỜI GIAN VỚI ĐỘ ĐO XOẮN THỜI GIAN ĐỘNG

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM –ĐHQG -HCM

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

Cán bộ chấm nhận xét 1:

Cán bộ chấm nhận xét 2:

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm

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

2

3

4

5

Trang 3

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

-

Độc Lập – Tự Do – Hạnh Phúc -o0o -

NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Nguyễn Minh Hiếu MSHV: 13070231

Ngày, tháng, năm sinh: 22/07/1990 Nơi sinh: Đồng Nai

Chuyên ngành: Khoa học máy tính Mã số: 604801

I TÊN ĐỀ TÀI:

CẤU TRÚC CHỈ MỤC TS-TREE CHO DỮ LIỆU CHUỖI THỜI GIAN VỚI ĐỘ ĐO XOẮN THỜI GIAN ĐỘNG II NHIỆM VỤ LUẬN VĂN:

III NGÀY GIAO NHIỆM VỤ:

IV NGÀY HOÀN THÀNH NHIỆM VỤ:

V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị): PGS.TS Dương Tuấn Anh

Nội dung và đề cương luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua Tp HCM, ngày tháng năm 20

CÁN BỘ HƯỚNG DẪN

(Họ tên và chữ ký)

CHỦ NHIỆM BỘ MÔN KHOA

(Họ tên và chữ ký)

TRƯỞNG KHOA

(Họ tên và chữ ký)

Trang 4

Chúng tôi 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 rõ trong 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 này hoặc trường khác

Ngày tháng năm 2015

Nguyễn Minh Hiếu

Trang 5

Lời nói đầu tiên, chúng tôi xin gửi lòng tri ân sâu sắc cùng lời cảm ơn chân thành đến PGS.TS Dương Tuấn Anh, người Thầy đã hết lòng giúp đỡ và tạo điều kiện cho chúng tôi hoàn thành tốt đề tài tốt nghiệp này bằng sự hướng dẫn, định hướng hết sức tận tình, chu đáo

Kế đến, chúng con xin dành tặng thành quả lao động này đến Cha Mẹ và những người thân trong gia đình, Người đã luôn giáo dục, động viên, khuyến khích chúng con biết phấn đấu vươn lên trong cuộc sống và đã tạo mọi điều kiện bằng sự hy sinh cao cả của mình để trao cho chúng con cơ hội bước chân vào giảng đường Đại học - môi trường mà chúng con

có thể tiếp cận những chân trời kiến thức mới và tự rèn giũa để hoàn thiện bản thân mình Kết lời, chúng con xin gửi lời kính chúc sức khỏe đến Thầy Dương Tuấn Anh cùng Đấng Sinh Thành Chúng con cam kết với Thầy và Cha Mẹ rằng sẽ tiếp tục tự ý thức hơn nữa để trở thành những công dân sống tốt trong xã hội

Trang 6

Dữ liệu chuỗi thời gian tồn tại trong nhiều ứng dụng thực tế, từ các lĩnh vực khoa học kỹ thuật cho đến kinh tế, tài chính Các dữ liệu chuỗi thời gian ngày càng giữ vai trò quan trọng trong công tác khai phá dữ liệu Cho đến hiện nay có rất nhiều bài toán liên quan đến quá trình khai thác loại dữ liệu này như: gom cụm, phân lớp, tìm mô típ, phát hiện mẫu bất thường, khám phá luật kết hợp và trực quan hóa dữ liệu Trong số rất nhiều bài toán đó thì việc tìm kiếm tương tự trên dữ liệu chuỗi thời gian là một tài toán cực kỳ quan trọng và được nhiều nhà nghiên cứu quan tâm

Một vấn đề then chốt cho bài toán tìm kiếm tương tự là làm sao có thể có được một cấu trúc chỉ mục hỗ trợ việc tìm kiếm nhanh hơn và đạt độ chính xác cao hơn Đã có rất nhiều công trình nghiên cứu về các loại chỉ mục này như R*-Tree, M-Tree, A-Tree…Tuy nhiên cho đến nay thì những cấu trúc này ít nhiều vẫn để lộ những khuyết điểm như tốc độ tìm kiếm chưa thật sự hiệu quả khi dữ liệu nhiều chiều, hay độ chính xác chưa cao trong khi độ đo Euclid mà các cấu trúc chỉ mục này hỗ trợ lại khá cứng nhắc dẫn đến kết quả tìm kiếm chưa cao

Để khắc phục cả hai vấn đề trên trong các cấu trúc chỉ mục dữ liệu chuỗi thời gian thì cấu trúc chỉ mục TS-Tree được nghiên cứu như là một biện pháp tốt nhất để có thể tăng tốc tìm kiếm trong bài toán tìm kiếm tương tự với độ chính xác cao hơn khi áp dụng dụng

độ đo xoắn thời gian động Đề tài này tập trung nghiên cứu cấu trúc chỉ mục TS-Tree áp dụng độ đo xoắn thời gian động (DTW), qua đó so sánh hiệu quả của nó mang lại so với cấu trúc chỉ mục trước đó, mà cụ thể là R*-Tree

Trang 7

Time series data exist in many practical applications, from the fields of science, technology to economy, financie The time series data plays an increasingly important role

in the work of data mining Until now there are many problems related to the exploitation

of this kind of data, such as clustering, classification, finding motifs, detect unusual patterns, association rules discovery and data visualization Among the many problems similarity search over time series data is an extremely important task in which many researchers are interested

A key issue for similarity search in time series is how to find an index structure to support the search faster and with higher precision There have been many studies on this type of index structure such as R*-Tree, M-Tree, A-Tree…But so far, these structures are more or less still to reveal shortcomings such as search speed is not really effective on multi-dimensional data, and the accuracy is not high Moreover, the Euclidean distance supported by these index structures is quite rigid and the results of similarity search are not pricise

In order to overcome these problems in the index structures of the time series data TS-Tree index is researched as a best measures to accelerate the search for relevant search problem self with higher accuracy when applied dynamic time wrapping distance (DTW) This research focus on the TS-Tree index structure when it’s used with dynamic time wrapping distance, in comparision to the previous index structure which is specifically R

* -Tree

Trang 8

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

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

ABSTRACT iv

MỤC LỤC v

DANH MỤC HÌNH viii

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1

1.1 Giới thiệu đề tài 1

1.2 Nội dung chính của đề tài 2

1.3 Tóm lược kết quả đã đạt được 3

1.4 Cấu trúc luận văn 3

CHƯƠNG 2: CÁC CÔNG TRÌNH LIÊN QUAN VÀ LÝ THUYẾT NỀN TẢNG 5

2.1 Bài toán tìm kiếm tương tự 5

2.1.1 Dữ liệu chuỗi thời gian (time series data) 5

2.1.2 Bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian 5

2.1.3 Mô hình bài toán so trùng dữ liệu chuỗi thời gian 6

2.2 Độ đo tương tự DTW (dynamic time warping) 7

2.2.1 Giới thiệu DTW 7

2.2.2 Tính toán trong độ đo DTW 9

2.2.3 Chặn dưới cho khoảng cách DTW 11

2.2.4 Mở rộng chặn dưới cho khoảng cách DTW với PAA 13

2.3 Giới thiệu R*-Tree 14

2.3.1 Tổng quan R*-Tree 14

2.3.2 Thao tác trong R*-Tree 17

2.3.3 R*-tree làm việc trên độ đo DTW 21

Trang 9

3.1 Cấu trúc chỉ mục TS-Tree 23

3.2 Các thành phần trong cấu trúc chỉ mục TS-Tree 24

3.2.1 Các thành phần phân tách (Separators) 24

3.2.2 Sự rời rạc hóa (Quantization) 25

3.2.3 Thông tin mô tả trong cây TS-Tree 26

3.3 Cấu trúc chỉ mục dạng cây TS-Tree 27

3.4 Các thao tác trong TS-Tree 28

3.5.1 Thao tác chèn phần tử trong cây TS-Tree 28

3.5.2 Thao tác xóa phần tử trong cây TS-Tree 29

3.5.3 Thao tác tìm kiếm trong TS-Tree 29

3.6 Cấu trúc chỉ mục TS-Tree làm việc với độ đo DTW 31

3.6.1 Tính khoảng cách tới MD (metadata) – MD Mindist 32

3.6.2 Khoảng cách ngắn nhất từ Q tới thành phần trong nút 33

CHƯƠNG 4: HỆ THỐNG SO TRÙNG MẪU 35

4.1 Khái quát về hệ thống so trùng mẫu 35

4.2 Kiến trúc tổng thể hệ thống 36

4.3 Thành phần lập chỉ mục 37

4.3.1 Chuẩn hóa dữ liệu 37

4.3.2 Thu giảm số chiều dữ liệu bằng phương pháp biến đổi PAA 39

4.3.3 Chuyển đổi về cận trên và cận dưới DTW 40

4.3.4 Rời rạc hóa dữ liệu với SAX 41

4.3.5 Tổ chức lưu trữ theo cấu trúc chỉ mục R*-Tree, TS-Tree 42

4.4 So trùng mẫu 42

CHƯƠNG 5: THỰC NGHIỆM 44

5.1 Các tiêu chuẩn thực nghiệm 44

5.2 Đánh giá kết quả thực nghiệm 46

5.2.1 Thực nghiệm dựa trên thời gian lập chỉ mục 47

Trang 10

5.2.4 Thực nghiệm đánh giá tính hiệu quả trong quá trình tìm kiếm 73

5.3 Kết luận 76

CHƯƠNG 6: TỔNG KẾT LUẬN VĂN 77

6.1 Kết quả đạt được 77

6.2 Những đóng góp của đề tài 78

6.3 Hướng phát triển 78

TÀI LIỆU THAM KHẢO 79 PHỤ LỤC 1: BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH - VIỆT A

Trang 11

Hình 1.1 Minh họa so trùng mẫu con 3

Hình 2.2 Độ đo Euclid (a) và độ đo DTW (b) 8

Hình 2.3 Hai mẫu dữ liệu thời gian Q và C 10

Hình 2.4 Khoảng cách giữa 2 mẫu dữ liệu Q và C theo DTW 10

Hình 2.5 Ma trận chứa khoảng cách d(q i ,c i ) và đường xoắn W 11

Hình 2.6 Cận trên và cận dưới trong 2 mô hình Sakoe-Chiba (A) và Itakura (B) 12

Hình 2.7 Ma trận xoắn và đường xoắn trong 2 mô hình Sakoe-Chiba (A) và Itakura (B) 12

Hình 2.8 Khoảng cách LB_Keogh trong 2 mô hình Sakoe-Chiba (A) và Itakura (B) 13

Hình 2.9 Phương pháp xấp xỉ gộp từng đoạn PAA trên dữ liệu chuỗi thời gian 13

Hình 2.10 Cận trên và cận dưới sau khi xấp xỉ gộp từng đoạn PAA 14

Hình 2.11 Các đối tượng dữ liệu được bao phủ bởi các MBR 15

Hình 2.12 Cây R*-Tree xây dựng từ các hình chữ nhật bao phủ trong hình 2.11 16

Hình 2.13 Thao tác chèn phần tử mới vào trong cây 17

Hình 2.14 a – Các đối tượng dữ liệu trong không gian 18

Hình 2.14 b – Cây R*-Tree được xây dựng trên các đối tượng dữ liệu trên 18

Hình 2.15 Thêm một phần tử vào trong nút làm nút đầy 19

Hình 2.16 Hai trường hợp phân chia nút 19

Hình 2.17 Biến đổi MBR về dạng cận trên và cận dưới 21

Hình 3.1 Các thành phần phân tách trong một nút của cây TS-Tree 24

Hình 3.2 Sự rời rạc hóa trong nút cây TS-Tree 26

Hình 3.3 Thông tin mô tả trong một nút cây 26

Hình 3.4 thể hiện thông tin mô tả dưới góc độ không gian 2 chiều 27

Hình 3.4 Thông tin giao nhau cận trên và cận dưới mô tả trong không gian 27

Hình 3.5 Cấu trúc một nút trong cây TS-Tree 28

Hình 3.6 Các bước trong quá trình chèn nút mới 28

Hình 3.7 Xóa phần tử S trong cây 29

Trang 12

Hình 3.10 MD-Mindist Khoảng cách ngắn nhất từ Q tới thông tin mô tả 32

Hình 3.11 Khoảng cách ngắn nhất từ Q tới thành phần phân tách trái và phải 33

Hình 4.1 Mô hình kiến trúc hệ thống 36

Hình 4.2 Các bước trong quá trình lập chỉ mục 37

Hình 4.3 Chuẩn hóa dữ liệu 39

Hình 4.4 Dữ liệu sau khi thu giảm số chiều với PAA 40

Hình 4.5 Biến đổi về cận trên và cận dưới DTW 41

Hình 4.6 Các bước trong quá trình so trùng mẫu 43

Hình 5.1 Dữ liệu chứng khoán 44

Hình 5.2 Dữ liệu năng lượng 45

Hình 5.3 Dữ liệu điện não đồ 45

Hình 5.4 Dữ liệu nhu cầu năng lượng điện của Italia 46

Hình 5.5 Thời gian lập chỉ mục trên bộ dữ liệu chứng khoán 47

Hình 5.6 Thời gian lập chỉ mục trên bộ dữ liệu năng lượng 48

Hình 5.7 Thời gian lập chỉ mục trên bộ dữ liệu điện não đồ 48

Hình 5.8 Thời gian lập chỉ mục trên bộ dữ liệu nhu cầu điện năng của Italia 49

Hình 5.9 Thời gian lập chỉ mục trên bộ dữ liệu chứng khoán 49

Hình 5.10 Thời gian lập chỉ mục trên bộ dữ liệu năng lượng 50

Hình 5.11 Thời gian lập chỉ mục trên bộ dữ liệu điện não đồ 50

Hình 5.12 Thời gian lập chỉ mục trên bộ dữ liệu nhu cầu năng lượng điện italia 51

Hình 5.13 Số phần tử trung bình trên 1 nút của dữ liệu chứng khoán 52

Hình 5.14 Số phần tử trung bình trên 1 nút của dữ liệu năng lượng 52

Hình 5.15 Số phần tử trung bình trên 1 nút của điện não đồ 53

Hình 5.16 Số phần tử trung bình trên 1 nút của nhu cầu điện năng của Italia 53

Hình 5.17 Số lần truy xuất nút trên dữ liệu chứng khoán 54

Hình 5.18 Số lần truy xuất nút trên dữ liệu chứng khoán theo số chiều 55

Hình 5.19 Thời gian đáp ứng trên dữ liệu chứng khoán theo số chiều 55

Trang 13

Hình 5.22 Thời gian đáp ứng trên dữ liệu năng lượng theo số chiều 57

Hình 5.23 Số lần truy xuất nút trên dữ liệu điện não đồ 57

Hình 5.24 Số lần truy xuất nút trên dữ liệu điện não đồ theo số chiều 58

Hình 5.25 Thời gian đáp ứng trên dữ liệu điện não đồ theo số chiều 58

Hình 5.26 Số lần truy xuất nút nhu cầu điện năng của Italia 59

Hình 5.27 Số lần truy xuất nút trên dữ liệu nhu cầu điện năng của Italia theo số chiều 59

Hình 5.28 Thời gian đáp ứng trên dữ liệu nhu cầu điện năng của Italia theo số chiều 60

Hình 5.30 Số lần truy xuất nút trên dữ liệu chứng khoán theo kích thước dữ liệu 61

Hình 5.31 Thời gian đáp ứng trên dữ liệu chứng khoán theo kích thước dữ liệu 61

Hình 5.32 Số lần truy xuất nút chỉ mục và nút dữ liệu trên dữ liệu năng lượng 62

Hình 5.32 Số lần truy xuất nút trên dữ liệu năng lượng theo kích thước dữ liệu 62

Hình 5.33 Thời gian đáp ứng trên dữ liệu năng lượng theo kích thước dữ liệu 63

Hình 5.34 Số lần truy xuất nút chỉ mục và nút dữ liệu trên dữ liệu điện não đồ 63

Hình 5.35 Số lần truy xuất nút trên dữ liệu điện não đồ theo kích thước dữ liệu 64

Hình 5.36 Thời gian đáp ứng trên dữ liệu điện não đồ theo kích thước dữ liệu 64

Hình 5.37 Số lần truy xuất nút trên dữ liệu nhu cầu điện năng của Italia 65

Hình 5.38 Số lần truy xuất nút trên dữ liệu nhu cầu điện năng của Italia theo kích thước dữ liệu 65

Hình 5.39 Thời gian đáp ứng trên dữ liệu nhu cầu điện năng của Italia theo kích thước dữ liệu 66 Hình 5.40 Số lần truy xuất nút chỉ mục và nút dữ liệu trên dữ liệu chứng khoán 66

Hình 5.41 Số lần truy xuất nút trên dữ liệu chứng khoán theo bán kính truy vấn 67

Hình 5.42 Thời gian đáp ứng trên dữ liệu chứng khoán theo bán kính truy vấn 67

Hình 5.43 Số lần truy xuất nút chỉ mục và nút dữ liệu trên dữ liệu năng lượng 68

Hình 5.44 Số lần truy xuất nút trên dữ liệu năng lượng theo bán kính truy vấn 68

Hình 5.45 Thời gian đáp ứng trên dữ liệu năng lượng theo bán kính truy vấn 69

Hình 5.46 Số lần truy xuất nút chỉ mục và nút dữ liệu trên dữ liệu điện não đồ 69

Hình 5.47 Số lần truy xuất nút trên dữ liệu điện não đồ theo bán kính truy vấn 70

Trang 14

Hình 5.50 Số lần truy xuất nút trên dữ liệu nhu cầu điện năng của Italia theo bán kính truy vấn 71 Hình 5.51 Thời gian đáp ứng trên dữ liệu nhu cầu điện năng của Italia theo bán kính truy vấn 72 Hình 5.52 Số lượng trung bình các ứng viên phải loại bỏ sau giai đoạn hậu kiểm trên tập dữ liệu chứng khoán 73 Hình 5.53 Số lượng trung bình các ứng viên phải loại bỏ sau giai đoạn hậu kiểm trên tập dữ liệu nhu cầu năng lượng 74 Hình 5.54 Số lượng trung bình các ứng viên phải loại bỏ sau giai đoạn hậu kiểm trên tập dữ liệu điện não đồ 74 Hình 5.55 Số lượng trung bình các ứng viên phải loại bỏ sau giai đoạn hậu kiểm trên tập dữ liệu nhu cầu năng lượng điện Italia 75

Trang 15

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu đề tài

Trong thời đại ngày nay, khi con người đang sống trong một xã hội hiện đại với sự phát triển cao của khoa học công nghệ Đặc biệt là lĩnh vực công nghệ thông tin cùng với việc ra đời và phát triển của máy tính số, tất cả mọi thông tin mà con người dùng để phục vụ cuộc sống của mình gần như đã được số hóa toàn bộ Chúng được chuyển thể thành các đối tượng dữ liệu có nghĩa và lưu trữ trong máy tính mà con người có thể dễ dàng truy xuất và hiểu được khi cần thiết Các đối tượng dữ liệu này tồn tại trong rất nhiều ứng dụng thực tế đã được xây dựng và phát triển qua các thập kỹ gần đây như: các dữ liệu về y tế, giáo dục, địa lý, sinh học phân tử, văn bản, hình ảnh hoặc đoạn phim Trong đó các ứng dụng khai phá dữ liệu chuỗi thời gian chiếm một vị trí quan trọng đã

và đang thu hút sự quan tâm nghiên cứu từ các nhà khoa học

Từ đó, bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian (time series data) ngày

càng đóng vai trò quan trọng trong các lĩnh vực khoa học, kinh tế hay tài chính Một thách thức ngày càng lớn là làm sao có thể tìm ra những mẫu tương tự trên dữ liệu chuỗi thời gian một cách nhanh chóng và chính xác nhất Cho đến hiện nay đã xuất hiện nhiều

cấu trúc chỉ mục (index structure) nhằm làm tăng tốc quá trình truy xuất dữ liệu chuỗi

thời gian như A-tree, M-tree, R*-Tree…Tuy nhiên cho đến hiện tại thì hầu hết các cấu trúc chỉ mục này chỉ làm việc được trên dữ liệu ít chiều (dưới 20 chiều) và với độ đo phổ biến là độ đo Euclid Như chúng ta đã biết dữ liệu chuỗi thời gian thường rất nhiều chiều và độ đo Euclid cũng để lộ những hạn chế trong việc tính toán khoảng cách giữa

2 mẫu dữ liệu chuỗi thời gian

Chính vì vậy, trong đề tài này, chúng tôi sẽ nghiên cứu một cấu trúc chỉ mục mới là TS-Tree có thể làm việc tốt trên dữ liệu rất nhiều chiều và linh hoạt trong việc tính toán

khoảng cách giữa 2 mẫu dữ liệu chuỗi thời gian bằng độ đo xoắn thời gian động DTW (dynamic time warping) Độ đo xoắn thời gian động là một phương pháp tính khoảng

cách phù hợp với dữ liệu chuỗi thời gian khi mà nó 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

Mục đích chính của đề tài là nghiên cứu cấu trúc chỉ mục TS-Tree do Ira Assent, Ralph Krieger và cộng sự nghiên cứu vào năm 2008[1], để cho thấy cách thức cấu trúc chỉ mục này làm việc trên dữ liệu chuỗi thời gian với độ đo DTW Qua đó, nêu lên những ưu điểm tích cực của loại cấu trúc chỉ mục này so với các cấu trúc chỉ mục trước

đó là R*-tree trong bài toán tìm kiếm tương tự dữ liệu chuỗi thời gian với độ đo DTW Với mục đích rõ ràng như vậy, đề tài sẽ lần lượt tìm hiểu các lý thuyết nền tảng về bài toán tìm kiếm tương tự dữ liệu chuỗi thời gian, cấu trúc chỉ mục R*-tree, độ đo DTW, và nhất là nghiên cứu sâu về TS-Tree

Trang 16

1.2 Nội dung chính của đề tài

Nội dung chính của luận văn là so sánh hiệu quả của hai loại cấu trúc chỉ mục Tree và TS-Tree được sử dụng như là cấu trúc chỉ mục trên dữ liệu chuỗi thời gian với

R*-độ đo xoắn thời gian R*-động (DTW) Việc so sánh đó sẽ được thực nghiệm thông qua một

hệ thống hỗ trợ bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian Khi đó, từ dữ liệu ban đầu là một chuỗi các số thực, mỗi số thực thể hiện giá trị tại một thời điểm Với

dữ liệu đó, ứng dụng cho phép người dùng đặc tả một mẫu dữ liệu truy vấn (mẫu này thường rất nhỏ so với dữ liệu ban đầu) Chương trình sẽ tìm trong dữ liệu đầu những mẫu con nào tương tự với mẫu truy vấn Các mẫu con tương tự với mẫu truy vấn về hình dạng và độ sai khác là bé nhất

Để đáp ứng tốt bài toán so trùng mẫu như trên, trong luận văn này, chúng tôi thực hiện tập trung giải quyết hai bài toán:

 Thứ nhất là xây dựng cấu trúc chỉ mục TS-Tree với các kỹ thuật hỗ trợ như chuẩn

hóa dữ liệu (normalized data), kỹ thuật thu giảm số chiều PAA (kỹ thuật bao gộp

xấp xỉ), kỹ thuật rời rạc hóa dữ liệu (SAX)

 Thứ hai là áp dụng đô đo xoắn thời gian động(DTW) vào cấu trúc chỉ mục Tree và TS-Tree Qua đó so sánh khả năng tìm kiếm của 2 loại cấu trúc chỉ mục này khi áp dụng độ đo DTW

R*-Ngoài ra, việc so sánh hiệu quả của hai loại cấu trúc chỉ mục này với độ đo xoắn thời gian động sẽ được đánh giá bằng kết quả đo đạc từ thực nghiệm Dó đó, kết quả thực nghiệm và một số nhận xét, đánh giá cũng sẽ được đề cập như một phần quan trọng trong đề tài

Luận văn này giới hạn nghiên cứu ở những khía cạnh sau:

 Dùng phép biến đổi tuyến tính PAA (tham khảo chương 2 phần cải tiến độ đo

xoắn thời gian động với PAA) trong giai đoạn trích xuất đặc trưng để thu giảm số

chiều của dữ liệu chuỗi thời gian

 Độ đo tương tự của hai đối tượng dữ liệu được dùng trong luận văn là độ đo DTW

(tham khảo chương 2 phần độ đo xoắn thời gian động)

 Sử dụng các cấu trúc chỉ mục không gian là R*-Tree, TS-Tree (tham khảo chương

2 phần cấu trúc chỉ mục R*-Tree và chương 3 cấu trúc chỉ mục TS-Tree) trong

giai đoạn lập chỉ mục

 Chương trình hỗ trợ người dùng so trùng mẫu thông qua một giao diện

 Thực hiện so sánh hiệu quả của việc truy xuất mẫu trên dữ liệu chuỗi thời gian dựa trên các cấu trúc lập chỉ mục đã xây dựng Từ đó, các nhận xét, kết luận sẽ được nêu lên

Trang 17

Hình 1.1 Minh họa so trùng mẫu con 1.3 Tóm lược kết quả đã đạt được

Trong thời gian thực hiện đề tài cấu trúc chỉ mục TS-Tree trên dữ liệu chuỗi thời gian, chúng tôi đã đạt được những kết quả sau

 Tìm hiểu về dữ liệu chuỗi thời gian và đặc điểm của loại dữ liệu này Hơn nữa, là các ứng dụng trong thực tế mà loại dữ liệu này đang tồn tại

 Tìm hiểu một lĩnh vực lớn trong dữ liệu chuỗi thời gian là bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian

 Tìm hiểu các kiến thức liên quan tới dữ liệu chuỗi thời gian như : phương pháp thu giảm số chiều - biến đổi wavelet rời rạc DWT, xấp xỉ từng đoạn PAA, hay các phương pháp rời rạc hóa

 Tìm hiểu cấu trúc chỉ mục TS-Tree, R*-Tree và các đặc trưng của loại cấu trúc chỉ mục này Qua đó có thể tiếp cận với cấu trúc chỉ mục TS-Tree dễ dàng hơn

 Tìm hiểu độ đo DTW (Dynamic time warping) trong dữ liệu chuỗi thời gian

Quan trọng nhất là phần tìm hiểu về việc đánh chỉ mục trên dữ liệu chuỗi thời gian với cấu trúc dạng cây TS-Tree Trong TS-Tree, chúng tôi đã tìm hiểu kỹ về các vấn đề sau:

- Các thành phần có trong một cấu trúc chỉ mục TS-Tree

- Các tính chất cũng như các ưu điểm vượt trội của loại cấu trúc chỉ mục này trong bài toán tìm kiếm tương tự dữ liệu thời gian

- Các thao tác trong cấu trúc chỉ mục TS-Tree như thêm đối tượng dữ liệu mới, xóa đối tượng dữ liệu cũ, cập nhật thông tin trên cây, hay thao tác tìm kiếm đối tượng dữ liệu trên cây

- Cách thức mà cấu trúc chỉ mục TS-Tree làm việc trên độ đo DTW và ưu điểm của nó với độ đo này so với các cấu trúc chỉ mục trước đó mà cụ thể là R*-Tree

Phát triển ứng dụng thực nghiệm để kiểm tra cấu trúc chỉ mục TS-Tree làm việc trên

độ đo xoắn thời gian động trong bài toán tìm kiếm tương tự

1.4 Cấu trúc luận văn

 Chương 1: chương này giới thiệu tổng quan về đề tài, mục đích nghiên cứu của

đề tài, tại sao lại chọn đề tài này và hướng nghiên cứu của đề tài

Dữ liệu ban đầu

Chuỗi con tương tự nhất Mẫu truy vấn cần tìm

Trang 18

 Chương 2: chương này tập trung nghiên cứu các lý thuyết liên quan cần tìm hiểu

như:

- Bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian

- Độ đo DTW (dynamic time warping) và những cải tiến so với độ đo Euclid

- Giới thiệu cấu trúc chỉ mục R*-tree và những hạn chế khi làm việc trên độ

đo DTW

- Giới thiệu tổng quan về cấu trúc chỉ mục TS-Tree

 Chương 3: trong chương này tập trung nghiên cứu cấu trúc chỉ mục TS-Tree và

những ưu điểm của nó trên độ đo DTW so với R*- tree

- Cấu trúc của cấu trúc chỉ mục TS-Tree và các thao tác trên cây

- Cấu trúc chỉ mục TS-Tree làm việc trên độ đo DTW

- So sánh những ưu điểm của cấu trúc chỉ mục TS-Tree so với R*-tree

 Chương 4: trình bày kiến trúc tổng thể và thực hiện hệ thống so trùng mẫu con

Chương này sẽ phân tích những vấn đề chính mà hệ thống cần phải giải quyết và một số chi tiết hiện thực của các thành phần quan trọng Các nội dung được trình bày bao gồm cách thức lưu trữ dữ liệu, truy vấn chuỗi con dựa trên các cấu trúc chỉ mục

 Chương 5: nêu một số kết quả và nhận xét dựa trên các thực nghiệm Có bốn bộ

dữ liệu được thu thập từ thực tế làm dữ liệu mẫu bao gồm dữ liệu chứng khoán,

dữ liệu năng lượng, dữ liệu điện não đồ và dữ liệu nhu cầu điện năng của Italia

 Chương 6: điểm qua toàn bộ luận văn và nêu một số kết luận sau khi thực hiện

đề tài bao gồm các công việc đã hoàn thành, đánh giá luận văn và hướng phát triển

 Phần tài liệu tham khảo, bảng phụ lục một số khái niệm liên quan và bảng thuật ngữ Anh-Việt đối chiếu

Trang 19

CHƯƠNG 2: CÁC CÔNG TRÌNH LIÊN QUAN VÀ LÝ

THUYẾT NỀN TẢNG

Chương này xin giới thiệu các kiến thức liên quan tới lĩnh vực tìm kiếm thông tin trên dữ liệu chuỗi thời gian Chúng tôi sẽ trình bày các kiến thức liên quan tới bài toán tìm kiếm tương tự, độ đo khoảng cách Euclid và cấu trúc chỉ mục R*-Tree, làm tiền đề

để nghiên cứu cấu trúc chỉ mục TS-Tree trên dữ liệu chuỗi thời gian Chúng tôi cũng đề cập tới độ đo xoắn thời gian động và việc áp dụng độ đo xoắn thời gian động trong bài toán tìm kiếm tương tự dữ liệu chuỗi thời gian

2.1 Bài toán tìm kiếm tương tự

2.1.1 Dữ liệu chuỗi thời gian (time series data)

Chuỗi thời gian (time series) là một chuỗi trị số thực được ghi nhận tại những khoảng

thời gian cách đều nhau Có thể xem chuỗi thời gian là một tập hợp chuỗi dữ liệu 2 chiều

(T,X) Trong đó T là một thời điểm xác định T= (t 1 ,t 2 ….) với t i thuộc R, còn X là giá trị quan sát được tại thời điểm T đó Lúc này nếu chúng ta xem xét các giá trị quan sát đó trong những khoảng thời gian bằng nhau với n giá trị quan sát trong khoảng thời gian

đó thì chuỗi thời gian có thể được xem là dữ liệu trong không gian n chiều Mỗi lần quan sát trong một khoảng thời gian như vậy sẽ phát sinh ra một điểm trong không gian n chiều Tập hợp các điểm X= (x 1 , x 2 ,…x n) được xem như tập hợp các đối tượng trong

không gian n chiều ([2][4][12])

Trong khá nhiều các ứng dụng hiện nay thì có thể xem dữ liệu thời gian như những thông tin ghi lại trên từng phút, từng giây Chính vì vậy, thông thường dữ liệu chuỗi thời gian là rất dài tuy nhiên giá trị giao động thì lại không cao và thường xấp xỉ trong một khoảng nào đó Ví dụ, một hệ thống lưu lại các giá trị về nhiệt độ khí hậu thì thường nằm trong khoảng -20 tới 20 độ Hơn nữa có khi thông tin lưu trữ trong nhiều ngày lại không cách xa nhau khoảng 10 độ

2.1.2 Bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian

Trong việc khai thác thông tin trên dữ liệu chuỗi thời gian, chúng ta có rất nhiều bài toán khác nhau như gom cụm, phân lớp, tìm mô típ, phát hiện mẫu bất thường, khám

phá luật kết hợp và trực quan hóa dữ liệu Trong số đó thì tìm kiếm tương tự (similarity

search) là một trong những bài toán đó Với mục đích là tìm ra các mô hình giống nhau trên tập dữ liệu ghi nhận được trong một khoảng thời gian nào đó chúng ta có thể dự đoán được xu hướng dữ liệu trong tương lai Sau đây là một số ví dụ trong thực tế

- Nhận dạng các công ty có mô hình tăng trưởng giống nhau

- Xác định những thời điểm mà các chỉ số chứng khoán có sự biến đông tương tự nhau

Trang 20

- Tìm xem 1 giai điệu nhạc có tương tự với 1 bản nhạc nào trước đó hay không…

Bài toán tìm kiếm tương tự hay còn gọi là so trùng mẫu (pattern matching) trên dữ liệu

chuỗi thời gian là việc thiết kế một phương pháp tìm kiếm nhanh chóng và chính xác trong cơ sở dữ liệu chuỗi thời gian những mẫu con trùng hay sấp xỉ với mẫu yêu cầu

Chúng ta có 2 kiểu so trùng mẫu

 So trùng toàn chuỗi (whole matching) là loại so trùng chiều dài của dữ liệu truy

vấn và chiều dài dữ liệu tham khảo bằng nhau và xem xét 2 đường biểu diễn dữ liệu có tương tự nhau không theo định nghĩa về độ tương tự cho trước Bài toán này ta thường được dùng trong việc gom cụm, hay phân loại dữ liệu thời gian Ví

dụ cho loại so trùng này là “Tìm mức nước ở 2 dòng sông có thay đổi giống nhau trong 1 năm?”

 So trùng chuỗi con (subsequence matching) là loại so trùng chiều dài của dữ

liệu truy vấn ngắn hơn rất nhiều so với chiều dài của dữ liệu tham khảo Mục đích

là tìm những đoạn trong dữ liệu tham khảo tương tự với dữ liệu truy vấn Một số ứng dụng của bài toán này là tìm những mẫu dữ liệu quan trọng hay những thay đổi bất thường trong dữ liệu ban đầu Ví dụ: “Tìm các tháng mà giá chứng khoán của công ty có sự thay đổi giống với tháng hiện tại?”, hay “những thời điểm nào

mà giá chứng khoán thay đổi theo dạng hình răng cưa”…

2.1.3 Mô hình bài toán so trùng dữ liệu chuỗi thời gian

Một trong những thử thách lớn nhất trong bài toán so trùng mẫu trên dữ liệu chuỗi thời gian là tập trung vào việc thiết kế một phương pháp lưu trữ hiệu quả và tìm kiếm nhanh để tìm trong cơ sở dữ liệu chuỗi thời gian những mẫu con trùng hoặc xấp xỉ với mẫu yêu cầu Trong hầu hết các nghiên cứu về bài toán so trùng trên dữ liệu chuỗi thời

gian, mô hình chủ yếu được áp dụng là mô hình rút trích thông tin (information

retrieval) Hình 2.1 mô tả mô hình rút trích thông tin phổ biến được sử dụng trong bài

toán so trùng dữ liệu chuỗi thời gian

Phần lập chỉ mục (Indexing): trong giai đoạn này chuỗi dữ liệu thời gian sẽ

được lưu trữ theo dạng chỉ mục nhằm giúp cho quá trình tìm kiếm được tăng tốc Do dữ

liệu chuỗi thời gian thường rất lớn nên trước khi lập chỉ mục chúng ta thường thu giảm

số chiều (reduce dimension) của chuỗi dữ liệu ban đầu Một số phương pháp thu giảm

số chiều được biết cho đến nay như: phép biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT), phép biến đổi Wavelet rời rạc (Discrete Wavelet Transform - DWT),

xấp xỉ tuyến tính từng đoạn (Piecewise Linear Approximation - PLA), xấp xỉ hằng số từng đoạn thích nghi (Adaptive Piecewise Constant Approximation- APCA), xấp xỉ gộp

ký hiệu hóa (Symbolic Aggregate approXimation - SAX)…

Các cấu trúc lập chỉ mục quen thuộc là R-Tree, Tree, M-tree…trong đó Tree là cấu trúc chỉ mục nền tảng cho việc phát triển cấu trúc TS-Tree Xuất hiện sau

Trang 21

R*-này, hầu hết các phương thức thao tác trên cây TS-Tree đều giống với R*-Tree Chúng

ta sẽ tìm hiểu kỹ hơn về vấn đề này trong các mục sau

So trùng mẫu: sau khi thiết lập chỉ mục cho dữ liệu chuỗi thời gian, quá trình so

trùng mẫu là quá trình tìm kiếm các chuỗi thời gian con thỏa mãn điều kiện truy vấn Việc truy vấn thông thường sẽ bị ảnh hưởng bởi 2 yếu tố: một là cấu trúc chỉ mục chúng

ta vừa thiết lập, hai là độ đo mà chúng ta áp dụng trong quá trình tìm kiếm Việc lập chỉ mục không hẳn lúc nào cũng đem lại kết quả truy vấn nhanh mà có khi lại đem lại kết quả ngược lại Với độ đo trước giờ chúng ta vẫn quen thuộc là độ đo Euclid, tuy nhiên trong đề tài này sẽ không dùng độ đo này mà chúng ta sẽ thay thế hoàn toàn bằng độ đo DTW để xem TS-Tree có làm việc tốt trên độ đo này hay không

Hình 2.1 Kiến trúc tổng thể của hệ thống so trùng mẫu 2.2 Độ đo tương tự DTW (dynamic time warping)

độ chính xác cao hơn

Chỉ mục (R*-Tree và TS-Tree)

Chuỗi thời gian

Lập chỉ mục

So trùng mẫu

Trang 22

Đã có rất nhiều công trình nghiên cứu về độ đo này như vào năm 1994 thì Berndt

và Clifford đã giới thiệu chính thức độ đo này trong công trình nghiên cứu về độ đo xoắn thời gian động trong cơ sở dữ liệu Hay các nghiên cứu trước đó của các nhà nghiên cứu như: Itakura 1975; Kruskall và Liberman 1983; Myers et al 1980; Rabiner và Juang 1993; Rabiner et al 1978; Sakoe và Chiba 1978; Tappert and Das 1978 Tuy chỉ có một vài nghiên cứu chính thức nhưng ngay sau đó thì độ đo này ngay lập tức góp phần không thể thay thế trong nhiều lĩnh vực Trong năm 2001 thì Aach và Church đã áp dụng thành công việc DTW vào quá trình RNA dữ liệu hồi quy trong ngành sinh học Năm 1995, Gollmer và Posten đã áp dụng DTW thành công vào việc đồng bộ hóa và lưu vết các gói tiến trình trong chất liệu polymer ngành hóa học Và còn rất nhiều các công trình nghiên cứu thành công DTW của Gavrila và Davis năm 1995 trong ngành sinh trắc học, Munich

và Perona năm 1999 trong ngành chữ ký điện tử, Kovacs và Vajna năm 2000 trong dữ liệu vân tay…Mặc dù có nhiều thành công trong các lĩnh vực như vậy nhưng DTW lại

có một điểm yếu là tốc độ giải thuật chưa được nhanh Trong phần tiếp theo sau đây chúng tôi sẽ trình bày nghiên cứu của Keogh về các giải pháp tăng hiệu suất của DTW ([7])

Trước khi tìm hiểu về độ đo DTW chúng ta cùng nhìn lại độ đo Eucid Ví dụ

chúng ta có 2 chuỗi thời gian Q= Q 1 , Q 2 ,… Q n và C= C 1 , C 2 , C n Độ đo khoảng cách Eucid được tính như sau:

Công thức 2.1 – Tính độ đo Euclid

Độ đo Eucid trước giờ có ưu điểm là dễ hiểu, dễ tính toán và có thể áp dụng cho nhiều bài toán trong khai phá dữ liệu chuỗi thời gian như gom cụm, phân lớp, mô típ…Tuy nhiên độ đo này lại không làm việc tốt trên dữ liệu có nhiễu, hay các đường căn bản khác nhau Chúng ta cùng xem xét hình 2.2 để thấy sự khác nhau giữa 2 độ đo Euclid và xoắn thời gian động DTW

Hình 2.2 Độ đo Euclid (a) và độ đo DTW (b) (nguồn [7])

Trong hình 2.2(a) là tính toán với độ đo Euclid, còn trong hình 2.2(b) là tính toán với độ đo DTW Như chúng ta thấy theo tính toán hình 2.2(a) thì Euclid sẽ xét theo 2

Trang 23

điểm cùng nằm trên một trục dọc tức là 2 giá trị quan sát tại cùng 1 thời điểm, ta tạm gọi đó là ánh xạ 1-1 Nếu theo kiểu tính toán này thì khoảng cách tại điểm thứ I trong đường 1 và điểm thứ I trong đường 2 là rất khác nhau mặc dù chúng ta thấy hình dạng

2 đường này là giống nhau, chỉ có điều là bị xê dịch về mặt thời gian Chính vì vậy, nếu tính toán theo phương pháp này thì kết quả sẽ không chính xác nhất là nếu chúng ta đang

tìm Mindist (khoảng cách ngắn nhất giữa 2 mẫu dữ liệu) Vì lý do đó mà vào năm 1994

thì Bernt và Clifford đã phát triển ra độ đo DTW nhằm khắc phục nhược điểm kể trên của Euclid Chúng ta có thể hình dung DTW trong hình 2.2(b) và tìm hiểu kỹ hơn về DTW trong phần tiếp sau đây ([7])

Một vấn đề của các cấu trúc chỉ mục hiện nay là làm sao có thể tăng tốc trên dữ liệu thời gian đồng thời phải có được độ chính xác tốt Hầu hết các giải thuật chỉ mục hiện nay đang dùng độ đo tương tự hay một vài lý thuyết độ đo khác để tính toán khoảng cách giữa 2 đối tượng dữ liệu trong không gian đa chiều Như chúng ta tìm hiểu ở phần trên thì lý do độ đo Euclid phổ biến chính là dễ tính toán và dễ hiểu Tuy nhiên điều đó

là chưa đủ với các bài toán càng ngày càng phức tạp hiện nay Có rất nhiều mẫu dữ liệu

có hình dạng giống nhau nhưng nếu dùng Euclid thì lại cho kết quả cách xa nhau Vào năm 1994 thì Bernt và Clifford đã phát triển ra một độ đo có tên gọi là DTW (dynamic time warping) Về mặt chứng minh lý thuyết và thực nghiệm thì các nhà khoa học thấy rằng với DTW thì việc tính toán mang lại sức mạnh lớn hơn khi tính toán các đối tượng

dữ liệu trong không gian đa chiều Tại sao lại có được khẳng định đó, chúng ta sẽ đi vào phần sau để có thêm cơ sở tin tưởng là độ đo DTW tốt hơn độ đo Euclid trên dữ liệu chuỗi thời gian ([7][27])

Ký hiệu trong phần này

C Một chuỗi thời gian có chiều dài n: C = c 1 , c 2 , …, c j , …, c n

[c i: c j ] Một chuỗi con của C, bắt đầu tại điểm c i và kết thúc tại c j

_

C Một xấp xỉ gộp từng đoạn của một chuỗi thời gian

(Keogh,2000; Yi và Faloutsos 2000)

DTW Độ đo khoảng cách xoắn thời gian động

LB_Kim Hàm chặn dưới được giới thiệu bởi Kim (2001)

LB_Yi Hàm chặn dưới được giới thiệu bởi Yi (1998)

LB_Keogh Hàm chặn dưới được giới thiệu trong bài báo

2.2.2 Tính toán trong độ đo DTW

Giả sử có hai chuỗi thời gian Q và C có chiều dài lần lượt là n và m, với

Trang 24

Q = q1 , q2 , … , q i ,…, q n

C = c1 , c2 , …, c i , …, c m

Hình 2.3 và 2.4 là minh họa cho 2 mẫu dữ liệu chuỗi thời gian Q và C và khoảng cách

giữa chúng theo độ đo xoắn thời gian động

Hình 2.3 Hai mẫu dữ liệu thời gian Q và C (nguồn [7])

Hình 2.4 Khoảng cách giữa 2 mẫu dữ liệu Q và C theo DTW (nguồn [7])

Để tính toán khoảng cách DTW giữa hai chuỗi trên, ta xây dựng một ma trận có

kích thước n × m, trong đó phần tử (i th ,j th ) của ma trận chứa khoảng cách d(q i ,c i) giữa

hai điểm q i và c j trên 2 chuỗi dữ liệu Q và C

Trong đó d(q i ,c i) được tính toán như sau:

D (qi,cj) = (qi-cj)2

Công thức 2.2 – tính khoảng cách

Ta tạm gọi ma trận chứa khoảng cách d(q i ,c i ) là ma trận xoắn (warping matrix) Một đường xoắn (warping path) W là một tập các phần tử liên tục của ma trận định nghĩa một ánh xạ giữa Q và C

Chúng ta có:

W = w 1 ,w 2 , …w k với max(m,n) <= K < m+n-1

Hình ảnh ma trận xoắn của 2 mẫu dữ liệu Q và C và đường xoắn mô tả trong hình vẽ

sau

Trang 25

Hình 2.5 Ma trận chứa khoảng cách d(q i ,c i ) và đường xoắn W (nguồn [7])

Đối với việc tính toán DTW chúng ta có một số ràng buộc sau:

o Điều kiện biên: w1 = (1,1) và w K = (m,n) ràng buộc này yêu cầu đường xoắn

phải bắt đầu và kết thúc ở hai góc đối diện của ma trận

o Tính liên tục: cho w k = (a,b) thì w k-1 = (a ’ ,b ’ ) trong đó a – a ’ ≤ 1 và b – b ’ ≤ 1

Ràng buộc này yêu cầu đường xoắn phải di chuyển giữa những ô liền kề (kể cả

những ô liền kề theo đường chéo)

o Tính đơn điệu tăng: cho w k = (a,b) thì w k-1 = (a ’ ,b ’ ), với a – a ’ ≥ 0 và b – b ’ ≥ 0

Ràng buộc này yêu cầu các điểm trong W phải có tính đơn điệu tăng theo thời

gian

Có rất nhiều đường xoắn thỏa mãn các điều kiện trên Tuy nhiên chúng ta chỉ quan

tâm đến đường tối thiểu hóa chi phí xoắn:

Công thức 2.3 – Tính độ đo DTW theo đường xoắn

Độ phức tạp của giải thuật khi tính toán theo DTW là O(m*n) Chính vì vậy

nhằm cải thiện tốc độ tính toán cho DTW thì Keogh đã đề xuất một khái niệm mới cho

việc tính toán độ đo này là độ đo chặn dưới (lower bound) Chúng ta cùng tìm hiểu kỹ

thuật chặn dưới trong việc tính khoảng cách với độ đo DTW ngay sau đây

2.2.3 Chặn dưới cho khoảng cách DTW

Như chúng ta đã biết trong tìm kiếm tương tự chuỗi thời gian nếu chúng ta dùng

độ đo Eclid thì sẽ tốn chi phí cho việc truy xuất I/O, còn với phương pháp tính toán DTW mặc dù cho kết quả chính xác nhưng nó lại gây ra chi phí cho việc tính toán CPU

Đường xoắn

(warping path)

d(q i ,c i)

Trang 26

Để giải quyết vấn đề này thì Keogh đã đề xuất chỉ tính toán khoảng cách chặn dưới Qua

đó giảm thiểu chi phí tính toán đáng kể ([7])

Chúng ta định nghĩa chặn dưới (L) và chặn trên (U) của chuỗi dữ liệu thời gian như sau:

- U i = max(q i-r : q i+r)

- L i = min(q i-r : q i+r)

Trong đó thì chỉ số r được định nghĩa tùy theo mô hình hoặc nó được xem như là khoảng trong DTW Với W k = (i,j) ta có j-r <= i <= j+r

Chúng ta có hình 2.4 thể hiện mô hình chặn dưới và chặn trên theo Sakoe-Chiba, Itakura

Đối với dải Sakoe-Chiba, r không phụ

Hình 2.7 Ma trận xoắn và đường xoắn trong 2 mô hình Sakoe-Chiba (A) và

Itakura (B) (nguồn [7])

Với đường bao U và L được định nghĩa như trên, chặn dưới LB_Keogh được định

nghĩa bằng công thức sau:

Trang 27

Công thức 2.4 – Cải tiến độ đo DTW theo tính toán cận dưới Chúng ta có hình ảnh 2.8 là khoảng cách theo cận trên và cận dưới trong DTW theo 2 mô hình Sakoe-Chiba và Itakura

Hình 2.8 Khoảng cách LB_Keogh trong 2 mô hình Sakoe-Chiba (A) và Itakura

(B) (nguồn [7]) 2.2.4 Mở rộng chặn dưới cho khoảng cách DTW với PAA

Như phần trên chúng ta đã tìm hiểu về độ đo DTW và cách tích khoảng cách trong ma trận xoắn Chúng ta thấy được sự cải tiến trong DTW nếu tính theo cận trên và cận dưới thì chi phí tính toán sẽ ít hơn Trong phần này chúng ta tiếp tục cải tiến giải thuật DTW bằng việc thu giảm chiều trong 2 chuỗi dữ liệu thời gian cần tính toán bằng các phương pháp xấp xỉ từng đoạn mà cụ thể là xấp xỉ gộp từng đoạn (PAA) ([9]) Sở

dĩ chúng ta chọn PAA là vì phương pháp này rất đơn giản, ta tuần tự xấp xỉ 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 đó Chúng ta sẽ tính

toán lại chuỗi thời gian như sau ([7][4][15]):

Hình 2.8 sau thể hiện chuỗi dữ liệu thời gian sau khi đã được thu giảm số chiều theo thuật toán PAA

Hình 2.9 Phương pháp xấp xỉ gộp từng đoạn PAA (nguồn [7])

Trang 28

Theo PAA thì chúng ta sẽ có cận trên (U) và cận dưới (L) mới theo hình 2.9 như sau:

Hình 2.10 Cận trên và cận dưới sau khi xấp xỉ gộp từng đoạn PAA (nguồn [7])

Tiếp theo định nghĩa hàm chặn dưới LB_PAA để tính khoảng cách giữa 2 dữ liệu chuỗi thời gian như sau:

Công thức 2.5 – Tính độ đo DTW sau khi áp dụng xấp xỉ gộp từng đoạn

Chúng ta luôn có

LA_PAA(Q,C) <= LB_Keogh(Q,C)

Công thức Mindist cuối cùng tính theo DTW với việc bổ sung PAA như sau:

Công thức 2.6 – Tính khoảng cách nhỏ nhất theo DTW

Chúng ta sẽ dùng công thức này để tính Mindist trong các phần TS-Tree sẽ được giới

thiệu trong phần sau

2.3 Giới thiệu R*-Tree

2.3.1 Tổng quan R*-Tree

Trong phần này chúng ta cùng làm quen với cấu trúc chỉ mục R*-Tree, là tiền đề cho phần nghiên cứu TS-Tree Cấu trúc chỉ mục R*-Tree là một cây cân bằng giống như

B-tree với những nút lá chứa con trỏ dữ liệu trỏ tới đối tượng dữ liệu thật (data object)

Cấu trúc chỉ mục R*-Tree chủ yếu làm việc trên dữ liệu không gian, nó gắn liền với khái

niệm hình chữ nhật bao phủ nhỏ nhất (minimum bounding rectangles) Những hình chữ

Trang 29

nhật bao nhỏ nhất này là vùng không gian bao quanh đối tượng dữ liệu hay bao quanh

các MBR trong nó sao cho diện tích bao phủ là nhỏ nhất Mỗi nút trong R*-Tree có chứa

từ m đến M phần tử (m và M là 2 thông số trong quá trình xây dựng R*-Tree) Mỗi phần

tử chứa MBR, trong khi đó thì nút lá sẽ chứa con trỏ tới dữ liệu thật sự Một cải tiến của

R*-Tree là R*-tree R*-tree cải tiến trong quá trình chèn nút trong R*-Tree nhằm làm tăng tốc trong quá trình truy xuất và thao tác trên cây ([2][6][8])

Hình 2.11 sau thể hiện các hình chữ nhật bao phủ nhỏ nhất bao lấy các đối tượng hay bao lấy một hình chữ nhật bao phủ khác

Hình 2.11 Các đối tượng dữ liệu được bao phủ bởi các MBR (nguồn [9])

Hình 2.12 sau thể hiện cây R*-Tree được xây dựng từ các hình chữ nhật bao phủ trong

hình 2.11

Trang 30

Hình 2.12 Cây R*-Tree xây dựng từ các hình chữ nhật bao phủ trong hình

2.11(nguồn [9])

Một số tính chất trên cây R*-Tree:

- Mọi nút lá bao gồm từ m tới M phần tử ( nếu đó không phải là nút gốc)

- Cấu trúc phần tử trong R*-Tree là (I, MBR) Trong đó I là con trỏ tới nút con

MBR là hình chữ nhật tối thiểu bao lấy các đối tượng n-chiều

- Nút gốc phải có tối thiểu 2 nút con trừ phi nút đó là nút lá

- Tất cả nút lá phải cùng cấp ( tính chất này chứng minh R*-Tree luôn là cây cân bằng khi các nút lá luôn có cùng chiều cao)

Khi làm việc với cấu trúc chỉ mục R*-Tree, chúng ta sẽ thường xuyên bắt gặp các định nghĩa sau:

- Diện tích chồng lên nhau (overlap area) của 2 hình chữ nhật là diện tích chung 2 hình chữ nhật tương ứng đó

- Diện tích chồng lên nhau của một nút phần tử (entry) trong một nút được định nghĩa như sau:

Trong đó:

- E k là phần tử đang được xem xét

- E i , …, E p là các phần tử trong nút E k

- E i rectangle là hình chữ nhật bao nhỏ nhất của phần tử E i

Phần tiếp theo sẽ trình bày cách thức xây dựng và tìm kiếm trên cây R*-Tree Để dễ dàng theo dõi, đề cương trình bày các thao tác một các trực quan thông qua các ví dụ cụ thể

Trang 31

2.3.2 Thao tác trong R*-Tree

a Thao tác chèn thêm nút trong R*-Tree

Hình 2.13 là thể hiện lưu đồ trong thuật toán chèn thêm một nút mới vào trong cây R*-Tree ([2][5])

Hình 2.13 Thao tác chèn phần tử mới vào trong cây Giải thích:

Thao tác chèn một phần tử vào trong R*-Tree sao cho sau khi chèn chúng ta có được không phi phạm bất kỳ những luật đối với cây R*-Tree Khi bắt đầu chạy giải thuật, chúng ta sẽ tìm kiếm nút lá phù hợp nhất trên tiêu chí là nút lá đó sau khi chèn thêm phần tử vào thì có độ mở rộng hình chữ nhật bao phủ là nhỏ nhất và đồng thời diện tích chồng lên nhau của các thành phần trong nút đó cũng nhỏ nhất

Sau khi chọn được nút lá phù hợp thì chúng ta chèn phần tử đó vào trong nút lá

đó Tuy nhiên nếu sau khi chèn mà nút lá bị đầy (số phần tử lớn hơn M) thì chúng ta

phải tiến hành công việc phân chia lại nút thành 2 nút con Sau khi xử lý nút lá này chúng ta phải tiếp tục kiểm tra các nút cha nó không bị phi phạm, nếu có chúng ta lại tiêp tục quá trình phân chia nút Công việc cứ như vậy cho đến khi các nút từ nút lá đang xét tới nút gốc là hợp lệ Chúng ta cùng xem xét ví dụ về xây dựng cây R*-Tree trong hình 2.13 sau đây

Trang 32

Hình 2.14 a – Các đối tượng dữ liệu trong không gian

Hình 2.14 b – Cây R*-Tree được xây dựng trên các đối tượng dữ liệu trên

Muốn thêm một thành phần có giá trị là X vào trong cây, giá trị của X được thể hiện

bằng vị trí hình chữ nhật trong Hình 2.12 b

- Tại nút gốc, có 2 thành phần R1và R2 đểlựa chọn và vì 2 thành phần này không

chỉ đến nút lá nên việc lựa chọn sẽ dựa trên tiêu chí mở rộng diện tích hình chữ

nhật bao nhỏ nhất là tối thiểu Nếu chọn R2 thì phải mở rộng R2, trong khi đó nếu chọn R1thì không cần mở rộng Do đó trong bước này sẽchọn nhánh R1

- Tại nút thứ con có chứa (R3 và R4) và vì 2 thành phần này chỉ đến nút lá nên việc

lựa chọn sự mở rộng diện tích chồng lên nhau của một nút thành phần là ít nhất

Trong trường hợp này, nếu chọn R4 thì phải mở rộng diện tích R4 lúc này diện tích chồng lên nhau của R3và R4 sẽ lớn hơn nếu chọn nhánh R3 Kết quả của quá

trình thêm một thành phần mới vào cây được thể hiện trong Hình 2.12 b

Trong trường hợp thêm mới một thành phần vào một nút đầy (có số lượng thành

phần là M) như trong Hình 3.7 Lúc này sẽ xảy ra quá trình chia nút Quá trình tách nút

sẽ theo dựa trên 3 giá trị liên quan đến 2 nhóm thành phần diện tích bao phủ, chu vi,

diện tích chồng lên nhau Hình 2.14 thể hiện khi ta thêm phần tử X vào trong cây

R*-Tree sẽ làm nút bị đầy

Trang 33

Hình 2.15 Thêm một phần tử vào trong nút làm nút đầy

Trong trường hợp này chúng ta sẽ tiến hành phân chia nút Ví dụ như trong Hình 2.14 cách phân chia trong hình (a) sẽ được ưu tiên hơn cách trong hình (b) Quá trình tách nút có thể sẽ được thực hiện lan truyền lên đến nút gốc nếu nút được tách gây đầy cho nút cha của nó Chúng tôi trình diễn 2 trường hợp phân chia nút như trong hình 2.15

Hình 2.16 Hai trường hợp phân chia nút

b Thao tác xóa phần tử trong R*-Tree

Quá trình xóa một nút trong cây sẽ tìm nút lá có chứa thành phần tương ứng và xóa

đi Tuy nhiên, sau khi xóa một thành phần trong nút, có thể gây ra tình trạng số lượng

thành phần quá thấp (nhỏ hơn m) Nếu điều này xảy ra thì quá trình chỉnh lại cây sẽ đươc

thực hiện như sau ([2][5])

- Xóa đệ qui các nút khỏi các nút cha của nó cho đến khi nút bị xóa thành phần vẫn vẫn còn hợp lệ Đồng thời giữ lại các cây con bị xóa

- Chèn tất cả các thành phần trong các cây con bị xóa trong quá trình trước

Chúng ta cùng xem xét ví dụ xóa phần tử trong cây R*-Tree sau với m=2 M=5

Trang 34

Sau khi xóa một thành phần khỏi nút thì nút

có số lượng thành phần dưới mức tối thiểu

Xóa nút lá ra khỏi cây và gây ra tình trạng số lượng thành phần ở nút cha dưới mức tối thiểu

Xóa cây con tương ứng có gốc là nút cha đó Xóa thành phần tương ứng trên nút gốc, đến

nút gốc vẫn còn đủ số thành phần tối thiểu

Cây con bị xóa trước đó được thêm vào cây Thêm nút lá bị xóa trước đó

Hình 2.17 Xóa nút trong cây R*-Tree (nguồn [9]) Chú ý:

- Thao tác sửa một thành phần trên cấu trúc cây R*-Tree là sự kết hợp của 2 thao tác: xóa và thêm mới

- Các hàm giải thuật liên quan đến thao tác R*-Tree được trình bày trong phần mô

tả thêm ở phần cuối-phụ lục A

Kết luận:

Trang 35

- Tốc độ thực hiện giải thuật không tốt khi làm việc trên một khối lương dữ liệu lớn

- Có thể phải duyệt qua nhiều lối đi trong quá trình tìm kiếm

- Việc tính toán xem là E i có bao phủ S hay không đôi khi sẽ phức tạp

2.3.3 R*-tree làm việc trên độ đo DTW

Để áp dụng DTW trên cây R*-Tree với các MBR thì chúng ta phải biến đổi các MBR

về dạng cận trên và cận dưới để việc tính toán độ đo phù hợp với các lý thuyết về DTW

mà chúng ta đã nghiên cứu trong phần trước đó Keogh và Ratanamahatana, 2002 ([7])

MBR R = (L,H) Chúng ta sẽ thấy hình ảnh 2.16 là các MBR biến đổi về cận trên (U), cận dưới (L) trong

thuật tìm kiếm n những đối tượng gần nhất với đối tượng cần truy xuất trên dữ liệu thời

gian với độ đo DTW Giải thuật này được đề xuất bởi Keogh và Rotamahatana năm

2002, [7]

L = {L 1 , L 2 , …L n )

H = {H 1 , H 2 ,…H n }

Trang 36

2.4 Giới thiệu tổng quát cấu trúc chỉ mục TS-Tree

Trong những phần trước chúng ta đã tìm hiểu về cấu trúc chỉ mục R*-Tree làm việc trên dữ liệu chuỗi thời gian với độ đo xoắn thời gian động Tuy nhiên R*-Tree vẫn bộc

lộ khá nhiều hạn chế như việc duyệt qua quá nhiều nhánh có thể làm cho tốc độ xử lý chậm Qua 1 số thực nghiệm cho thấy đổi với dữ liệu nhiều chiều (trên 16 chiều) thì R*-Tree thật sự không cải tiến gì trong qua trình tìm kiếm tương tự Hơn nữa việc R*-Tree chưa thật sự làm việc tốt với độ đo DTW, trong khi đó DTW lại mang lại nhiều chính xác và linh hoạt hơn trong quá trình tìm kiếm trên dữ liệu thời gian

Chúng ta cần tìm kiếm một cấu trúc chỉ mục mới khắc phục những vấn đề mà Tree còn đang gặp phải Cần có một cấu trúc chỉ mục làm việc tốt trên độ đo DTW và

R*-có thể áp dụng trên dữ liệu thời gian nhiều chiều Để giải quyết vấn đề đó thì TS-Tree

ra đời mang theo nhiều hứa hẹn cho bài toán tìm kiếm tương tự với độ chính xác tốt hơn

và truy xuất nhanh hơn TS-Tree kế thừa các thao tác căn bản giống R*-Tree và cấu trúc cây cũng là một cây cân bằng TS-Tree làm việc tốt trên dữ liệu lớn nhiều chiều và tránh

việc phủ lấp (overlap) trong cấu trúc cây, từ đó việc tìm kiếm nhanh hơn và ít tốn chi

phí hơn

AlgorithmKNNSearch(Q,K)

Variable queue: MinPriorityQueue;

Variable list: temp;

1 queue.push(root_node_of_index, 0);

2 while not queue.IsEmpty() do

3 top=queue.Top();

4 foreach time series C in temp such that DTW(Q,C)≤top.dist

5 Remove C from temp;

6 Add C to result;

7 if |result|=K return result;

8 queue.Pop();

9 if top is a PAA point C

10 Retrieve full sequence C from database;

11 temp.insert(C,DTW(Q,C));

12 else if top is a leaf node

13 foreach data item C in top

14 queue.push(C, LB_PAA(Q,C));

15 else

16 foreach child node U in top

17 queue.push (U, MINDIST(Q,R))

Trang 37

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

Chương này sẽ giới thiệu kỹ về cấu trúc chỉ mục Tree Chúng ta xem xét Tree có gì khác so với cấu trúc chỉ mục không gian là R*-Tree Chúng ta cũng tìm hiểu các thao tác trên TS-Tree để đảm bảo cấu trúc trên TS-Tree Chúng ta cùng xem xét TS-Tree trong bài toán tìm kiếm tương tự Cuối cùng là việc áp dụng DTW trong TS-Tree

TS-3.1 Cấu trúc chỉ mục TS-Tree

Mục đích thiết kế cấu trúc chỉ mục TS-Tree là tạo ra một cấu trúc chỉ mục mang thông tin nén trong dữ liệu thời gian Nén ở đây có nghĩa là các dữ liệu thời gian tương

tự nhau sẽ được đặt trong cùng cây con qua đó giảm thiểu việc lưu trữ cấu trúc chỉ muc

này Và hơn nữa, nó đảm bảo không có sự phủ lắp (overlap) các dữ liệu con trong các

nhánh cây Trong các nút của cây có lưu thông tin mô tả chi tiết nhằm giúp cho quá trình tỉa nhánh hiệu quả trong lúc duyệt cây ([1])

Chúng ta sẽ nghiên cứu các tính chất trong cây TS-Tree

a Kiến trúc cây trong TS-Tree

Trong mỗi nút của cây có chứa các thông tin mô tả (directory information) của các

nhánh con Chúng ta tránh việc phải đọc ngẫu nhiên toàn bộ dữ liệu Trong các cấu trúc chỉ mục trước đây việc áp dụng cho các dữ liệu nhiều chiều thì hơi khó khăn, tuy nhiên với cấu trúc cây TS-Tree thì điều này là có thể với sức mạnh của việc tỉa nhánh, tránh trùng lắp trong các nhánh con Chính vì vậy trong suốt đề tài này chúng ta sẽ đào sâu nghiên cứu trong các ưu điểm này của TS-Tree

b Sức chứa thông tin trong nút lớn

Tính chất này là cần thiết trong các cấu trúc cây nhỏ với nhiều nhánh phân ra trong

1 nút Điều này giúp yêu cầu ít vùng nhớ lưu trữ hơn Thêm nữa, tính chất rời rạc hóa giúp giảm thiểu độ phức tạp thông tin lưu trữ trong các nút của cây bằng các trị rời rạc, qua đó làm tăng sức chứa thông tin cho nút trong cây

c Không trùng lắp thông tin trong các cây con

Giống như R*-Tree hay B-Tree, TS-Tree là cấu trúc cây cân bằng Tuy nhiên khác ở chỗ dữ liệu thời gian được chèn vào nút lá sao cho tránh việc trùng lắp thông tin trong các nút Quá trình phân chia nút là cực kỳ quan trọng để đảm bảo rằng cây TS-Tree luôn đáp ứng các quy định ban đầu

- Không phủ lắp: việc không trùng lắp là do có sự phân chia thông tin trong các

phần tử của 1 nút Nằm giữa các thông tin mô tả là các thành phần phân cách

(separator) Các thành phần này chia các thông tin theo chiều tăng trong cùng

Trang 38

một nút từ trái sang phải, do vậy đảm bảo việc không trùng lắp trong các cây con

do các nút trong nhánh bên trái luôn luôn bao gồm những phần tử có giá trị nhỏ hơn phần tử trong nhánh cây bên phải

- Nén thông tin: trong cấu trúc cây TS-Tree, các thông tin từ dữ liệu thực bao gồm các số thực sẽ được rời rạc hóa sao cho chứa ít ký tự mà vẫn lưu trữ được nhiều

thông tin Để có thể làm điều này thì TS-Tree có thêm 1 bước nữa là sự rời rạc

hóa (quantization) Chúng ta sẽ tìm hiểu sự rời rạc hóa kỹ hơn trong phần sau

Tuy nhiên với việc chứa được nhiều thông tin với lưu trữ ít ký tự hơn thì có thể xem rằng thông tin đã được nén

3.2 Các thành phần trong cấu trúc chỉ mục TS-Tree

Trong phần này chúng ta sẽ tìm hiểu các thành phần trong cây TS-Tree Cấu trúc cây TS-Tree là giống với cây R*-Tree, tuy nhiên cấu trúc nút trong cây và thông tin lưu trong mỗi phần tử của nút là hoàn toàn khác với R*-Tree Nếu như chúng ta lưu các thông tin về MBR (hình chữ nhật bao nhỏ nhất) trong các nút của R*-Tree thì trong TS-Tree chúng ta lưu thông tin mô tả về cận trên và cận dưới của các chiều trong dữ liệu thời gian sau khi đã được rời rạc hóa bằng giải thuật rời rạc và phân tách các phần tử

trong nút bằng thành phần phân cách (separator)

3.2.1 Các thành phần phân tách (Separators)

Một thành phần phân tách S giữa 2 dữ liệu thời gian T 1 và T 2 là một dữ liệu chuỗi thời gian thỏa mãn các điều kiện sau đây([1]):

- T 1 <= S ( S có thông tin lớn hơn hoặc bằng các phần tử bên trái nó)

- S <= T 2 (S có thông tin nhỏ hơn hoặc bằng phần tử bên phải nó)

- Chiều dài S là nhỏ nhất nếu có thể Tức là sẽ không tồn tại S’ nào mà nằm giữa

T 1 và T 2 và chiều dài nhỏ hơn S

Trong đó một dữ liệu a được xem là nhỏ hơn dữ liệu b khi và chỉ khi:

(j ≤ min{|a|, |b|} i {1, , j − 1} : a i = b i a j < b j )

(|a| ≤ |b| ∧ ∀i {1, , |a|} : a i = b i )

Hình 3.1 Cho ta thấy hình ảnh các thành phần phân tách trong một nút của cây TS-Tree

Trang 39

Chúng ta cùng phân tích các thành phần phân tách trong hình 3.1 Các thành phần phân tách là các thông số nằm giữa các phần tử chứa thông tin của cây TS-Tree Trong hình 3.1 thì các thành phần phân tách lần lượt là {5.09; 8.9; 10.05; 11.9} Trong mỗi phẩn tử nằm giữa các thành phẩn phân tách này sẽ có thông tin cây con

và con trỏ trỏ tới các cây con đó Với thành phần phân tách thì tất cả các đối tượng trong nhánh con trái có giá trị tại chiều đang xét (theo hình là chiều × ứng với phần

tử thứ nhất) nhỏ hơn hoặc bằng giá trị tại các thành phần phân tách Ngược lại nhánh con phải có giá trị tại chiều đang xét (theo hình là chiều × ứng với phần tử thứ nhất) lớn hơn hoặc bằng các thành phần phân tách

Theo hình trên thì chúng ta có thông các thành phần phân tách và thông tin cây con nằm giữa như sau:

5.09 < {5.09; 7.05; 8.1; 8.55; 8.67}

< 8.9 < {8.9; 9.3; 9.84}

< 10.5 < {10.5; 11.1; 11.9} < 11.9

Chú ý: Theo mặc định thì giá trị của thành phần phân tách là giá trị của đối tượng

trái nhất trong nhánh con phải tại chiều mà chúng ta đang xét

3.2.2 Sự rời rạc hóa (Quantization)

Chúng ta có thể thấy rẳng nếu chúng ta lưu trữ các thông tin giá trị số thì chúng

ta sẽ tốn khá nhiều không gian đồng thời khi có quá nhiều giá trị thì việc tìm kiếm

sẽ lâu hơn Chính vì vậy chúng ta cần có một phương pháp rời rạc hóa các giá trị trên nút, phương pháp này gọi tên là sự rời rạc hóa Nhờ có sự rời rạc hóa mà chúng ta

có thể nhóm các giá trị tương tự nhau lại với nhau, qua đó làm cho quá trình tỉa nhánh trên cây tốt hơn Sự rời rạc hóa được định nghĩa là có thể chuyển đổi bất kỳ 1 giá trị liên tục nào thành giá trị rời rạc ([1][4][10][30])

Các luật trong việc chuyển đổi rời rạc hóa

Giả sử chúng ta có Q= {q 1 …q n} là một sự rời rạc hóa của dữ liệu chuỗi thời gian

T={t 1 …t n } trong giới hạn tập ký hiệu {s 1 …s n} nếu thỏa mãn các yêu cầu sau đây([16][17][18])

- Mỗi ký hiệu trong Q thì được biểu diễn như là 1 ký hiệu s i trong {s 1 s n}

- Mỗi dữ liệu thời gian sau khi được biểu diễn luôn nằm trong giá trị lớn nhất và giá trị nhỏ nhất

- Ký hiệu Q i là một ánh xạ của dữ liệu t i sao cho giá trị này có thể xem xét nằm

trong khoảng S

Sự rời rạc hóa là một cách để chuyển đổi các thông tin giá trị liên tục sang thông tin các giá trị rời rạc được biểu diễn thành các ký hiệu chữ cái

Trang 40

Hình 3.2 thể hiện sự rời rạc hóa trong việc lưu trữ thông tin trên cây TS-Tree

Hình 3.2 Sự rời rạc hóa trong nút cây TS-Tree (nguồn [9])

3.2.3 Thông tin mô tả trong cây TS-Tree

Mỗi phần tử trong nút của cây TS-Tree chứa những thông tin của cận trên và cận dưới của cây con mà phần tử đó trỏ tới Việc lưu các thông tin cận trên và cận dưới thay vì là hình chữ nhật bao phủ nhỏ nhất giống như R*-Tree Những thông tin cận trên và cận dưới này thì rất phù hợp cho quá trình duyệt cậy khi chúng ta sẽ dựa vào thông tin này để tỉa nhánh cây trong quá trình tìm kiếm, qua đó làm cho quá trình truy vấn được tăng tốc Hơn nữa, việc sử dụng các thông tin cận trên và cận dưới

giúp cho việc áp dụng độ đo DTW được dễ dàng thay vì mất công biến đổi từ MBR

sang cận trên và cận dưới nếu muốn áp dụng cho độ đo DTW như trong cây Tree Cấu trúc của thông tin mô tả trong các nút của cây TS-Tree được miêu tả như trong hình sau ([1])

R*-Hình 3.3 mô phỏng hình ảnh lưu trữ trong một các nút của cây TS-Tree Chúng tôi gọi đó là thông tin mô tả

Hình 3.3 Thông tin mô tả trong một nút cây

Cây con

Thông tin mô tả

Thành phần phân

tách

Cận trên & cận dưới cây con

Ngày đăng: 26/01/2021, 21:51

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

w