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

Nhân dạng mẫu đáng quan tâm trong tập dữ liệu chuỗi thời gian

105 11 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 105
Dung lượng 1,16 MB

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

Nội dung

Với sự phát triển nhanh chóng của dữ liệu chuỗi thời gian trong nhiều ứng dụng từ lĩnh vực tài chính cho đến lĩnh vực khoa học, đòi hỏi phải đề ra những giải pháp tìm kiếm những mẫu tươn

Trang 1

NGUYỄN QUỐC VIỆT HÙNG

NHẬN DẠNG MẪU ĐÁNG QUAN

TÂM TRONG TẬP DỮ LIỆU

CHUỖI THỜI GIAN

Chuyên ngành: Khoa học Máy tính

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 11 năm 2007

Trang 2

ĐẠI HỌC QUỐC GIA TP HCM CỘNG HOÀ XÃ HỘI CHỦ NGHIÃ VIỆT NAM

- -oOo -

Tp HCM, ngày tháng năm 2007

NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ và tên học viên : Nguyễn Quốc Việt Hùng Giới tính : Nam ;/ Nữ … Ngày, tháng, năm sinh : 02/09/1982 Nơi sinh : Quảng Ngãi

Chuyên ngành : Khoa học Máy tính

Khoá : 2005

1- TÊN ĐỀ TÀI :

NHẬN DẠNG MẪU ĐÁNG QUAN TÂM TRONG TẬP DỮ LIỆU CHUỖI THỜI GIAN

2- NHIỆM VỤ LUẬN VĂN :

3- NGÀY GIAO NHIỆM VỤ :

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

5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : 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

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN

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

Trang 3

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Cán bộ hướng dẫn khoa học : 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

HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ

TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày tháng năm 2007

Trang 4

LỜI CAM ĐOAN

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 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 05 tháng 11 năm 2007

Nguyễn Quốc Việt Hùng

Trang 5

LỜI CẢM ƠN

Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến TS Dương Tuấn Anh, người Thầy đã tận tình hướng dẫn tôi trong suốt quá trình từ đại học tới cao học và tạo mọi điều kiện để tôi có thể hoàn thành luận văn này

Tôi cũng xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tôi có thể tiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành quả của luận văn này cho Cha Mẹ Nhờ công lao dưỡng dục của Người mà chúng con mới có được thành quả như ngày hôm nay Con xin hứa sẽ tiếp tục cố gắng phấn đấu để vươn cao hơn nữa

Trang 6

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

Tìm kiếm tương tự trên dữ liệu chuỗi thời gian ngày càng đóng vai trò quan trọng trong lĩnh vực khai phá dữ liệu Với sự phát triển nhanh chóng của dữ liệu chuỗi thời gian trong nhiều ứng dụng từ lĩnh vực tài chính cho đến lĩnh vực khoa học, đòi hỏi phải đề ra những giải pháp tìm kiếm những mẫu tương tự một cách hiệu quả và gần gũi người sử dụng để từ đó có thể đưa ra những quyết định đúng đắn

Đề tài này sẽ đề nghị các giải pháp tìm kiếm tất cả những mẫu con trùng với chuỗi truy vấn trên dữ liệu chuỗi thời gian Có 2 loại giải pháp chính cần thiết kế

và hiện thực là cách đánh giá độ tương tự và các kỹ thuật lập chỉ mục

Chúng tôi sử dụng khoảng cách Euclid cho việc tìm kiếm thô ban đầu và đề

ra cách biểu diễn những mẫu hình dạng trừu tượng để nâng cao chất lương so trùng mẫu dựa trên hình dạng Ngoài ra, chúng tôi còn đề nghị cách lập chỉ mục mới,

phương pháp xấp xỉ tuyến tính gộp từng đoạn kết hợp với giải thuật tìm kiếm nhánh và cận trên cây hậu tố của phương pháp gộp ký hiệu hóa, để nâng cao hiệu

quả tìm kiếm Qua thực nghiệm cho thấy, những kỹ thuật tìm kiếm tương tự mà chúng tôi đề nghị đều hiệu quả với những dữ liệu có nhiễu hay dữ liệu bị co giãn và tịnh tiến

Trang 7

ABSTRACT

Similarity search on time-series data sets is of growing inportance in data mining With the increasing amount of time-series data in many application, from financial to scientific, it is important to study methods of retrieving similarity patterns effciently and user friendly for business decission making

The thesis proposes methods of efficient retrieval of all subsequences in the time series databases similar to a query sequence Two kinds of the methods, similarity measures and indexing techniques, are designed and implemented

We use Euclidean distance as the basis for similarity queries on time-series data and design an innovative representation technique which abstracts the shapes

in time series sequences to enhance similar patterns based on shape Moreover, we

propose new indexing technique, the piecewise linear aggregate approximation combining branch and bound algorithm on suffix tree of the symbolic aggregate

approximation method, to speed up searching The experiments show that the

retrieval technique we propose is also efficient with noisy, scaled and shifted data

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 vii

DANH MỤC BẢNG ix

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

1.1 Dữ liệu chuỗi thời gian 1

1.2 Những yêu cầu đòi hỏi phải so trùng mẫu con 2

1.3 Mục tiêu và giới hạn của đề tài 4

1.4 Tóm lược những kết quả đạt được 5

1.5 Cấu trúc của luận văn 6

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT NỀN TẢNG 7

2.1 Cây hậu tố (suffix tree) 7

2.1.2 Quá trình tạo cây hậu tố (suffix tree): 8

2.1.3 Tìm kiếm trên cây hậu tố 10

2.2 Tìm đường thẳng tốt nhất qua một tập điểm 10

2.3 Một số vấn đề về xác suất 11

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

3.1 Các công trình về phương pháp đo độ tương tự 14

3.1.1 Độ đo Minkowski 15

3.1.2 Phương pháp xoắn thời gian động 18

3.1.3 Phương pháp chuỗi con chung dài nhất (longest common subsequence ) 21

3.1.4 Phương pháp tính độ tương tự dựa trên xác suất 22

3.2 Các phương pháp thu giảm số chiểu dữ liệu 23

3.2.1 Phương pháp không thích nghi dữ liệu 24

3.2.2 Phương pháp thích nghi dữ liệu 26

3.3 Các phương pháp rời rạc hóa dữ liệu 28

3.4 Các công trình về cấu trúc lập chỉ mục (indexing) cho dữ liệu chuỗi thời gian 31

3.5 Kết luận 33

Trang 9

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

4.1 Đặt vấn đề 35

4.2 Hướng giải quyết 35

4.3 Kiến trúc hệ thống 37

4.4 Cách đánh giá độ tương tự 39

4.4.1 Quá trình chuẩn hóa dữ liệu 40

4.4.2 So trùng mẫu 42

4.4.3 Tuyến tính hóa các chuỗi dữ liệu thời gian 44

4.4.4 Cách đánh giá tính 2 chuỗi sau khi tuyến tính hóa 46

4.5 Lập chỉ mục đa mức để nâng cao tốc độ tìm kiếm 49

4.5.2 Cách mã hóa dữ liệu bằng phương pháp PAA [21] 50

4.5.3 Cách thu giảm số chiều bằng phương pháp PLAA 53

4.5.4 Rời rạc hóa dữ liệu bằng phương pháp SAX 59

4.5.5 Xây dựng chỉ mục dựa trên cây hậu tố 64

4.6 Kết luận 67

CHƯƠNG 5 THỰC NGHIỆM 69

5.1 So sánh kết quả tương tự 69

5.2 So sánh các phương pháp lập chỉ mục 71

5.2.1 Thực nghiệm: độ chặt chận dưới 71

5.2.2 Thực nghiệm: Tỉ lệ thu giảm truy xuất (pruning power) 74

5.2.3 Thực nghiệm: hệ thống hiện thực 76

5.3 Kết luận 80

CHƯƠNG 6 KẾT LUẬN 82

6.1 Tổng kết 82

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

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

CÔNG TRÌNH CÔNG BỐ 85

TÀI LIỆU THAM KHẢO 86

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

Trang 10

DANH MỤC HÌNH

Hình 1.1 Đường biểu diễn dữ liệu chuỗi thời gian 2

Hình 1.2 Minh họa so trùng mẫu con .4

Hình 2.1 Cây hậu tố của từ mississippi 8

Hình 2.2 Quá trình tạo cây hậu tố của chuỗi mississippi 9

Hình 2.3 Đồ thị phân bố xác suất chuẩn 12

Hình 3.1 Minh họa 2 đường giống nhau, nhưng đường cơ bản khác nhau 17

Hình 3.2 Minh họa 2 đường giống nhau, nhưng biên độ dao động khác nhau .17

Hình 3.3 (a) tính khoảng cách theo Euclid (b) tính khoảng cách theo DWT .19

Hình 3.4 Minh họa cách tính khoảng cách theo DWT 20

Hình 3.5 Minh họa phương pháp LCS 21

Hình 3.6 Minh họa cách biến đổi dữ liệu ban đầu theo các

phương pháp DFT, DWT, PAA 25

Hình 3.7 Minh họa cách biến đổi dữ liệu ban đầu theo các phương pháp SVD, APCA, PLA .27

Hình 3.8 Minh họa phương pháp rời rạc hóa chuỗi bit 29

Hình 3.9 Minh họa phương pháp rời rạc hóa theo góc nghiêng 29

Hình 3.10 Rời rạc hóa dữ liệu ban đầu theo phương pháp SAX .30

Hình 3.11 Cách tạo cây K-D-Tree 32

Hình 3.12 Cách tạo cây R-tree 33

Hình 4.1 Sơ đồ kiến trúc hệ thống 38

Hình 4.2 Chuẩn hóa dữ liệu 41

Hình 4.3 Giải thuật so trùng mẫu 43

Hình 4.4 Giải thuật so trùng dựa trên hình dạng 45

Hình 4.5 Cách mã hóa các trạng thái đoạn tuyến tính - u2 d 10 u 1 47

Hình 4.6 Cây phân cấp các trạng thái của đường tuyến tính 48

Hình 4.7 Minh họa tư tưởng mã hóa dữ liệu 49

Hình 4.8 Thu giảm số chiều bằng phương pháp PAA 51

Hình 4.9 Các trường hợp cùng giá trị trung bình nhưng khoảng cách khác nhau 53

Hình 4.10 Minh họa quá trinh ánh xạ dữ liệu của phương pháp PLAA sang không gian PAA và PLA 54

Hình 4.11 Minh họa quá trình rời rạc hóa thành chuỗi ký tự theo phương pháp SAX 61

Hình 4.12 Xét vị trí tương quan giữa các điểm 63

Hình 4.13 Cây hậu tố của chuỗi S = abcbcabcaa 65

Trang 11

Hình 4.14 Minh họa quá trình tìm kiếm chuỗi Q = cba trên cây hậu tố của chuỗi

S = abcbcabcaa bằng giải thuật nhánh và cận 67

Hình 5.1 Kết quả so trùng mẫu (1) Sau giai đoạn SAX ta thu được mẫu (2), (3), (4) Sau

giai đoạn PLA kết quả chỉ còn lại mẫu (3) 70 Hình 5.2 Kết quả thực nghiệm về độ chặt chận dưới của các phương pháp PAA,PLAA và

SAX 73

Hình 5.3 Kết quả thực nghiệm về tỉ lệ thu giảm truy xuất (pruning power) của các phương

pháp PAA,PLAA và SAX 76

Hình 5.4 Kết quả thực nghiệm về chi phí CPU chuẩn hóa của các phương pháp PAA,

PLAA và PLAA+SAX theo tỉ lệ thu giảm 77

Hình 5.5 Kết quả thực nghiệm về chi phí CPU chuẩn hóa của các phương pháp PAA,PLAA

PLAA+SAX (phóng to Hình 5.4.) 79 Hình 5.6 Kết quả thực nghiệm về chi phí CPU chuẩn hóa của các phương pháp PAA,PLAA

PLAA+SAX theo kich thước dữ liệu 80

Trang 12

DANH MỤC BẢNG

Bảng 2.1 Bảng tra phân bố xác suất chuẩn chuẩn hóa 12 Bảng 4.1 Bảng danh sách các trạng thái của đường tuyến tính dựa trên góc nghiên 47 Bảng 4.2 Bảng xác định các khoảng chia tương ứng với số ký tự 61

Bảng 5.1 Số chuỗi con trùng nếu dùng phương pháp SAX và phương pháp SAX kết hợp

PLA 71

Trang 13

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

Chương giới thiệu đề tài này sẽ trình bày yêu cầu, mục tiêu và nội dung sơ lược của đề tài Đồng thời ở đây cũng nêu lên những động cơ trong nghiên cứu và trong thực tiễn đòi hỏi cần phải thực hiện đề tài này

1.1 Dữ liệu chuỗi thời gian

Dữ liệu có yếu tố thời gian là sự quan sát tuần tự theo thời gian Dữ liệu này

có thể là 2 chiều hay nhiều chiều nhưng đó phải có 1 chiều là thời gian Có rất nhiều loại dữ liệu khác nhau có yếu tố thời gian và thông thường đây là những dữ liệu rất lớn (very large database) Theo khảo sát từ 4000 hình ngẫu nhiên trên các

tờ báo xuất bản giai đoạn 1974 – 1989 thì 75% là các hình biểu diễn dữ liệu chuỗi thời gian Đặt biệt, trong thời đại hiện nay, thông tin là rất quan trọng Tuy nhiên

dữ liệu thì quá lớn nên cần phải sử dụng công cụ máy tính để tìm được những thông tin từ nguồn dữ liệu đó Chính vì vậy những nghiên cứu và ứng dụng dữ liệu chuỗi thời gian là những lĩnh vực rất rộng lớn và cần thiết của khoa học máy tính

và các ngành khoa học khác

Trong phạm vi nghiên cứu của đề tài này, ta quan tâm đến dữ liệu chuỗi thời

gian được biểu diễn bằng một chuỗi các số thực X = x 1 x 2 ……x n Trong đó x i là giá

trị đo ở thời điểm thứ i Hình 1.1trình bày đường cong biểu diễn dữ liệu chuỗi thời

gian

Những khó khăn và thách thức khi nghiên cứu dữ liệu chuỗi thời gian:

Dữ liệu quá lớn

Ví dụ: Trong 1 giờ, dữ liệu điện tâm đồ (EKG) là 1 GigaByte

Phụ thuộc vào nhiều yếu tố chủ quan

Việc đánh giá mức độ tương tự giữa các dữ liệu phụ thuộc vào yếu tố chủ quan của người dùng, của tập dữ liệu và những công việc này đều phải làm bằng tay

Trang 14

Dữ liệu thường không đồng nhất

ƒ Định dạng của các loại dữ liệu khác nhau

ƒ Tần số lấy mẫu khác nhau

ƒ Bị nhiễu, thiếu một vài giá trị, dữ liệu không sạch…

Hình 1.1 Đường biểu diễn dữ liệu chuỗi thời gian

1.2 Những yêu cầu đòi hỏi phải so trùng mẫu con

Bài toán so trùng mẫu trong 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 tìm kiếm nhanh và hiệu quả để tìm trong cơ sở dữ liệu

chuỗi thời gian (time series) những mẫu con trùng hoặc xấp xỉ với mẫu yêu cầu

Bài toán so trùng mẫu là một bài toán rất cơ bản trong lĩnh vực nghiên cứu về dữ liệu chuỗi thời gian Đặc biệt, nó rất quan trọng đối với các dữ liệu chuỗi thời gian

có tính chất lịch sử hay các dữ liệu không gian - thời gian (spatio-temporal data)

Một số dạng yêu cầu truy vấn mà ta thường gặp:

™ Lĩnh vực tài chính, thương mại như giá cả thị trường chứng khoán, số lượng sản phẩm bán được…

ƒ Tìm trong quá khứ, những giai đoạn mà số lượng sản phẩm bán được như tháng vừa rồi

2 2 2 2 2 2 2

Trang 15

ƒ Tìm những sản phẩm có chu kỳ bán hàng giống nhau

ƒ Tìm đoạn nhạc bản quyền trong một bài hát

™ Về lĩnh vực khoa học như dữ liệu thu được của các bộ cảm biến về thời tiết, môi trường, địa lý…

ƒ Tìm những tháng trong quá khứ mà lượng mưa giống như tháng vừa rồi

ƒ Tìm những năm khô hạn, mực nước các sông ở mức thấp

™ Các lĩnh vực khác dữ liệu không phải là thời gian Sau đó, từ dữ liệu này ta chuyển về dạng dữ liệu chuỗi thời gian Như bài toán nhận dạng chữ viết hay các bài toán trong lĩnh vực xử lý ảnh được chuyển thành bài toán dữ liệu hướng chuỗi thời gian

Mặc dù có nhiều loại khác nhau, nhưng các yêu cầu truy vấn có thể chia làm

2 loại:

So trùng toàn bộ: Đối với những truy vấn so trùng toàn bộ thì chiều dài của

dữ liệu truy vấn và chiều dài dữ liệu ban đầu là bằng nhau 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 chuỗi thời gian Ví dụ, “tìm giá chứng khoán của những công ty nào thay đổi giống nhau”

So trùng một phần: Trong trường hợp so trùng một phần thì 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 ban đầu Vì vậy, nhiệm vụ chính là tìm những đoạn trong dữ liệu ban đầu 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 những khoảng thời gian mà giá của thị trường chứng khoán không đổi trong một khoảng thời gian”,

“tìm những thời điểm mà giá chứng khoán giảm đột ngột”, 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”…

Bài toán so trùng mẫu con là bài toán rất căn bản của lĩnh vực nghiên cứu về

dữ liệu chuỗi thời gian Từ bài toán so trùng mẫu con trên dữ liệu chuỗi thời gian thì ta có thể mở rộng thành so trùng toàn bộ Ngoài ra, có nhiều bài toán khác cũng

Trang 16

sử dụng bài toán so trùng trùng mẫu con Ví dụ: bài toán gom cụm (clustering), phân loại (classification), tìm quy luật của dữ liệu (rule discovery), phát hiện điểm bất thường (novelty detection), dự báo dữ liệu trong tương lai (prediction)…

1.3 Mục tiêu và giới hạn của đề tài

Hình 1.2 Minh họa so trùng mẫu con ( Từ nguồn [26])

Mục tiêu chính của luận văn là so trùng mẫu 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 đó, ta 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) Khi đó, 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à độ chênh lệch là ít nhất ( Xem Hình 1.2)

Bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian cũng chính là bài toán tìm kiếm Tuy nhiên thông thường kích thước dữ liệu để tìm kiếm là rất lớn

Vì vậy, những ứng dụng này đòi hỏi phải sử dụng các phương pháp lập chỉ mục

Phương pháp lập chỉ mục là phương pháp nhằm nâng cao tốc độ tìm kiếm

Phương pháp lập chỉ mục có thể là giảm số chiều để giảm kích thước dữ liệu hoặc

có thể sử dụng những cấu trúc biểu diễn dữ liệu nhằm nâng cao tốc độ tìm kiếm

Bài toán so trùng mẫu con thì có nhiều khía cạnh khác nhau để nghiên cứu

Ví dụ như phải đưa ra cách tính mức độ tương tự một cách tổng quát phù hợp cho

Dữ liệu ban đầu

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

Trang 17

nhiều dữ liệu, hiện thực các giải thuật mà không cần tham số truyền vào, đưa ra giải pháp để truy vấn một cách linh hoạt, phải giải quyết vấn đề kích thước các mẫu

không bằng nhau… Tuy nhiên, luận văn này giới hạn nghiên cứu ở những khía

ƒ Giao diện tương tác phải thân thiện

1.4 Tóm lược những kết quả đạt được

Với những yêu cầu của đề tài, sau thời gian nghiên cứu và hiện thực, chúng tôi đã xây dựng hệ thống so trùng chuỗi con trên dữ liệu chuỗi thời gian Hệ thống này có 2 thành phần chính Thành phần thứ nhất cho phép người dùng đưa dữ liệu chuỗi thời gian ban đầu vào hệ thống Sau đó hệ thống sẽ chuẩn hóa dữ liệu, mã hóa dữ liệu và lập chỉ mục cho dữ liệu chuỗi thời gian này Thành phần thứ hai có nhiệm vụ nhận chuỗi con truy vấn và so trùng để tìm chuỗi con nào trong chuỗi dữ liệu ban đầu phù hợp nhất

Trong thành phần thứ nhất, sau khi tìm hiểu về các cách mã hóa và lập chỉ

mục, chúng tôi đề ra giải pháp lập chỉ mục kết hợp phương pháp xấp xỉ tuyến

tính gộp từng đoạn (Piecewise Linear Aggregate Approximation -PLAA) và phương pháp xấp xỉ gộp ký hiệu hóa (Symbolic Aggregate approXimation - SAX) Phương pháp PLAA là phương pháp mới do chúng tôi đề nghị PLAA thực

sự hiệu quả hơn so với phương pháp xấp xỉ gộp từng đoạn (Piecewise Aggregate

Approximation –PAA) do E Keogh và các cộng sự đề nghị năm 2000 [21] và hiện

tại đang được sử dụng phổ biến Phương pháp SAX là phương pháp lập chỉ mục mới do J Lin đề nghị năm 2003 [10] Tuy nhiên, trong luận văn này chúng tôi đã

vận dụng cấu trúc dữ liệu cây hậu tố kết hợp giải thuật tìm kiếm nhánh và cận vào

phương pháp SAX để nâng cao cách hiệu quả tìm kiếm

Trang 18

Trong thành phần thứ hai là so trùng chuỗi con Trong thành phần này thì cách xác định độ tương tự giữa các mẫu là quan trọng nhất Cũng giống như các

nghiên cứu khác, chúng tôi cũng sử dụng khoảng cách Euclid Tuy nhiên, cách

đánh giá này chỉ sử dụng trong bước tìm kiếm thô ban đầu Các kết quả sau giai đoạn tìm kiếm thô sẽ được tinh chỉnh trong bước kế tiếp Bước này chúng tôi đưa

ra cách đánh giá dựa trên hình dạng với các mẫu hình dạng được định nghĩa trước

Do đó, kết quả của mẫu so trùng sẽ phù hợp hơn, trực quan hơn

Như vậy, với hệ thống đã hiện thực mà chúng tôi sẽ trình bày chi tiết ở những chương sau sẽ đã đáp ứng những yêu cầu và nhiệm vụ của đề tài

1.5 Cấu trúc của luận văn

Tổ chức của phần còn lại của luận văn theo cấu trúc sau đây:

Chương II sẽ giới thiệu một số lý thuyết phức tạp mà chúng ta sẽ sử dụng

trong luận văn Trước hết đó là cấu trúc dữ liệu cây hậu tố (suffix tree) sẽ được sử dụng để lập chỉ mục dữ liệu Sau đó, là lý thuyết tìm đường thẳng tốt nhất (best fit

line) đi qua tập điểm cho trước Cuối cùng là một số lý thuyết về phân bố xác suất

và tính chất phân bố xác suất chuẩn

Chương III là tổng quan về các công trình liên quan Những công trình này nhằm cải tiến quá trình tìm kiếm tương tự và được tiến hành ở các khía cạnh đánh giá độ tương tự, mã hóa dữ liệu và lập chỉ mục

Chương IV trình bày những vấn đề đặt ra khi so trùng mẫu con Trong 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ấn

đề đó chính là định nghĩa thế nào gọi là 2 mẫu tương tự nhau? Và tổ chức dữ liệu như thế nào để có thể tìm kiếm nhanh? Sau đó, chúng tôi sẽ trình bày từng bước cách giải quyết 2 vấn đề này

Chương V là một số kết quả thực nghiệm

Chương VI là một số kết luận sau khi thực hiện đề tài

Trang 19

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT NỀN TẢNG

Trong đề tài này để giải quyết bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian thì một số vấn đề lý thuyết của các lĩnh vực khác sẽ được sử dụng Do đó, chương này sẽ trình bày những điểm cơ bản của các lý thuyết đó Trước hết, đó là

cấu trúc dữ liệu cây hậu tố, cách xây dựng cũng như cách tìm kiếm trên cây hậu tố

Cấu trúc dữ liệu này sẽ được sử dụng trong quá trình lập chỉ mục cho dữ liệu chuỗi thời gian, sau khi dữ liệu chuỗi thời gian được rời rạc hóa thành dòng ký tự

Ngoài ra, trong giai đoạn tuyến tính hóa dữ liệu chuỗi thời gian thì ta phải biểu diễn đường dữ liệu đó thành những đoạn thẳng Khi đó sẽ đặt ra vấn đề tìm đường thẳng tốt nhất đi qua một tập điểm cho trước Đường thẳng này phải thể hiện được đặc trưng của tập hợp điểm trên

Cuối cùng vấn đề phân bố xác suất Với mỗi loại dữ liệu khác nhau thì nó có

phân bố xác suất khác nhau Trong những nghiên cứu về lĩnh vực tài chính, thì

phân phối xác suất có dạng đặc biệt Đó là phân bố xác suất chuẩn Đây là vấn để quan trọng để ta có thể đưa ra cách mã hóa ký tự hợp lý trong phương pháp SAX

2.1 Cây hậu tố (suffix tree)

Trước khi tìm hiểu về cây hậu tố thì ta tìm hiểu về khái niệm hậu tố Hậu

tố của 1 chuỗi là những phần còn lại của chuỗi khi ta bỏ một số ký tự đầu của

Trang 20

Bây giờ ta sẽ xây dựng cây hậu tố Cây hậu tố là cây trong đó có m lá với m

là chiều dài của chuỗi ban đầu tướng ứng với m chuỗi con hậu tố Ngoài ra, bất kỳ nút lá i nào của cây thì khi nối các chuỗi của các cạnh trên lối đi từ nút gốc đến nút nút lá i thì cũng bằng chính xác chuỗi con hậu tố thứ i của chuỗi ban đầu

Hình 2.1là cây hậu tố của chuỗi mississippi

Hình 2.1 Cây hậu tố của từ mississippi

2.1.2 Quá trình tạo cây hậu tố (suffix tree):

Quá trình xây dựng cây hậu tố là quá trình thêm tuần tự các chuỗi con hậu tố vào cây Trong quá trình thêm này, các cạnh sẽ biểu diễn cho một chuỗi con, còn các nút sẽ cho biết vị trí xuất hiện của chuỗi con đó trong chuỗi ban đầu

Để tạo cây hậu tố cho chuỗi mississippi, thì đầu tiên ta đưa chuỗi con thứ

1 vào cây Khi đó cây có dạng như Hình 2.2(a) Tiếp theo đưa chuỗi thứ 2 vào cây Chuỗi thứ 2 và chuỗi thứ 1 không có chung phần tiền tố nên nó sẽ tạo thêm nhánh riêng từ gốc như Hình 2.2(b) Tiếp tục ta thêm chuỗi thứ 3, như Hình 2.2(c) Khi thêm chuỗi thứ 4, thì chuỗi thứ 4 “sissippi” và chuỗi thứ 3 “ssissippi” có chung

Trang 21

phần tiền tố “s” nên không thêm nhánh thứ 4 từ gốc mà thêm vào từ nút trung gian

để biểu diễn cho nhánh 3 và 4 có chung phần tiền tố “s” Hình 2.2(d) là hình ảnh

của cây sau khi thêm nhánh 4 Quá trình cứ tiếp tục đến khi thêm chuỗi hậu tố cuối

cùng thêm vào Khi đó cây hậu tố sẽ có hình dạng như Hình 2.2(e)

Hình 2.2 Quá trình tạo cây hậu tố của chuỗi mississippi

root

1 missisippi root

1

missisippi

2 issisippi

root

1 missisippi

2 issisippi

3

sisippi

4 isippi

Trang 22

2.1.3 Tìm kiếm trên cây hậu tố

Quá trình tìm kiếm trên cây hậu tố hoàn toàn giống với tìm kiếm trên cây từ

điển (Trie tree), cây tìm kiếm nhị phân (Binary search tree) Khi tìm chuỗi truy vấn

Q trong chuỗi ban đầu thì lần lượt theo từng ký tự của Q ta sẽ đi theo các nhánh

của cây hậu tố Quá trình tìm kiếm chỉ dừng lại khi ta đã đi đến nút lá trên cây hậu

tố hoặc đã duyệt đến ký tự cuối cùng của chuỗi truy vấn Q

Xét về khía cạnh độ phức tạp, khi xây dựng cây hậu tố thì sẽ có k chuỗi con

hậu tố lần lượt thêm vào cây Trong đó k là chiều dài của chuỗi ban đầu Do đó, độ

phức tạp của giải thuật xây dựng cây là O(k)

Mặc khác, đối với tìm kiếm, thì quá trình này sẽ dừng lại khi ta đi đến nút lá

trên cây hoặc khi đã duyệt qua toàn bộ ký tự trong chuỗi truy vấn Q Vì vậy, độ

phức tạp của giải thuật tìm kiếm là O(n) Trong đó, n là chiều dài của chuỗi truy

vấn

Cây hậu tố vừa trình bày là cây hậu tố đơn giản Để cải thiện quá trình xây

dựng và tìm kiếm thì có thể sử dụng cây hậu tố liên kết (suffix linked tree) phức

tạp hơn nhưng hiệu quả hơn

2.2 Tìm đường thẳng tốt nhất qua một tập điểm

Bài toán tìm đường thẳng đi qua n điểm đã được đặt ra rất nhiều Đường

thẳng này gọi là đường thẳng tốt nhất ( best fit line ) Có nhiều loại đường thẳng

tốt nhất này tùy theo từng cách định nghĩa Trong luận văn này, đường thẳng tốt

nhất là đường thẳng đi qua n điểm và tổng bình phương khoảng cách Euclid của

các điểm so với đường này là nhỏ nhất

Với tập n điểm (x 1 , y 1 ), … (x n , y n ) thì đường thẳng tốt nhất có dạng y= ax+b Bây giờ ta phải tìm hệ số a, b sao cho cực tiểu tổng sau:

1

2)]

*([

Để thỏa mãn yêu cầu trên, giá trị của a, b được xác định theo công thức sau:

Trang 23

2 1 1

2

1 1 1

)()(

))(

()(

i i

n i i n

i i n

i i i

x x

n

y x y

x n a

2 1 1

2

1 1

1 1

2

)()(

))(

())(

i i

n i i n

i i i n

i i n

i i

x x

n

x y x y

x b

Trong công thức trên thì khi ta tịnh tiến tập điểm ban đầu theo vectơ thì

giá trị của a sẽ không đổi Chỉ có giá trị b là thay đổi Do đó khi tịnh tiến như vậy,

các đường thẳng tốt nhất sẽ song song với nhau Điều này hoàn toàn phù hợp với lý thuyết

2.3 Một số vấn đề về xác suất

Trong toán học, hàm mật độ xác suất dùng để biểu diễn một phân bố xác

suất theo tích phân Hàm hàm mật độ xác suất luôn có giá trị không âm và tích

phân của nó từ −∞ tới +∞ có giá trị bằng 1 Nếu một phân bố xác suất có mật độ

f(x), thì về mặt trực quan, khoảng vi phân (vô cùng bé) [x, x + dx] có xác suất bằng f(x) dx

Một cách không chính thức, hàm mật độ xác suất có thể được coi là phiên

bản được làm mịn của một biểu đồ tần số: nếu ai đó liên tiếp đo đạc bằng thực nghiệm các giá trị của một biến ngẫu nhiên liên tục và tạo một biểu đồ tần số mô tả tần suất tương đối của các miền biến thiên của kết quả, thì biểu đồ tần số đó sẽ trông giống với mật độ xác suất của biến ngẫu nhiên đó (giả sử rằng biến được lấy mẫu đủ thường xuyên và các miền biến thiên của kết quả là đủ nhỏ)

Một cách chính thức, một phân bố xác suất có mật độ f(x) thì xác suất của khoảng [a, b] được xác định bởi công thức

v

Trang 24

với hai số bất kỳ a và b

Trường hợp a= −∞ và b=+∞, khi đó tích phân toàn phần của f phải bằng 1

Phân bố chuẩn, còn gọi là phân bố Gauss, là một phân bố xác suất cực kì

quan trọng trong nhiều lĩnh vực Nó là họ phân bố có dạng tổng quát giống nhau,

chỉ khác tham số vị trí và tỉ lệ: trung bình ("mean") và độ lệch chuẩn

("variability"), tương ứng Phân bố chuẩn chuẩn hóa (standard normal

distribution) là phân bố chuẩn với mean là 0 và độ lệch chuẩn là 1 Với phân bố

chuẩn chuẩn hóa thì mật độ xác suất có dạng chuông như Hình 2.3

Hình 2.3 Đồ thị phân bố xác suất chuẩn

Bảng 2.1 Bảng tra phân bố xác suất chuẩn chuẩn hóa

Dựa vào đường biểu diễn phân bố xác suất và công thức định nghĩa về mật

độ xác suất thì ta có thể tính xác suất xuất hiện của giá trị x với x nằm trong khoảng

Trang 25

[a,b] Từ đó, để thuận tiên cho việc tính toán người ta đưa ra bảng tra phân bố xác

suất chuẩn ( 0 Từ bảng này ta có thể xác định xác suất của x với x < z là P(x < z)

Ví dụ: P(x < 0.43) = 0.666 ; P (x < 0.67) = 0.75

Trang 26

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

Bài toán so trùng dữ liệu chuỗi thời gian được đề cập từ lâu Do đó có nhiều công trình nghiên cứu để giải quyết vấn đề này và các công trình nghiên cứu này có thể chia làm loại sau:

Thứ nhất là các công trình nghiên cứu nhằm đưa ra cách đánh giá về độ tương tự Cho đến hiện tại thì có nhiều cách đánh giá được đề nghị Tùy theo từng loại ứng dụng khác nhau, từng mục đích khác nhau mà ta sẽ dùng cách đánh giá khác nhau

Thứ hai là cách công trình mã hóa dữ liệu Do dữ liệu chuỗi thời gian thường rất lớn Vì vậy nhiều phương pháp mã hóa dữ liệu được đề nghị nhằm thu giảm kích thước dữ liệu để nâng cao tốc độ tìm kiếm Ngoài ra, các phương pháp

mã hóa dữ liệu còn nhằm mục đích chuẩn hóa dữ liệu Trong các phương pháp mã

hóa dữ liệu thì có 2 loại phương pháp chính đó là phương pháp thu giảm số chiều

(dimensional reduction) và phương pháp rời rạc hóa (discretization)

Thứ ba đó là các công trình về xây dựng các cấu trúc dữ liệu hỗ trợ lập chỉ mục Với phương pháp mã hóa thu giảm dữ liệu thì tốc độ truy vấn vẫn chưa hiệu quả Vì vậy, nhiều công trình đã đề nghị những cấu trúc dữ liệu nhằm hỗ trợ cho quá trình tìm kiếm trên dữ liệu mã hóa Vấn đề lập chỉ mục là vấn đề rất quan trọng trong bài toán dữ liệu chuỗi thời gian cũng như bài toán so trùng chuỗi con trên dữ liệu chuỗi thời gian

Với các hướng như vậy, ta sẽ xem xét những công trình những công trình liên quan cho đến nay Đối với mỗi phương pháp sẽ có những ưu, nhược điểm khác nhau, cũng như có những khía cạnh ứng dụng khác nhau phụ thuộc vào loại dữ liệu

và loại ứng dụng

3.1 Các công trình về phương pháp đo độ tương tự

Vấn đề quan trọng nhất của bài toán tìm kiếm tương tự là cách tính khoảng

cách của 2 đối tượng O 1 , O 2 Trong trường hợp 2 đối tượng này giống nhau thì

Trang 27

khoảng cách này sẽ là 0 và ngược lại càng khác nhau thì khoảng cách càng lớn Để

có thể tính toán và so sánh thì cách khoảng cách này được biểu diễn thành các số thực

Tuy nhiên, độ đo khoảng cách giữa cách đối tượng nên thỏa các tính chất sau:

1 D(x,y) = 0 nếu và chỉ nếu x =y

2 D(x,y) = D(y,x)

3 D(x,y) >= 0 với mọi x,y

4 D(x,y) < D(x,z) + D(y,z) Trong 4 tính chất trên, ta thấy tính chất 1 và 2 là rất trực quan Tính chất 3 cũng rất cần thiết Nếu khoảng cách có thể nhỏ hơn 0 thì hai đối tượng khác nhau gồm nhiều thành phần nhưng tổng khoảng cách của các thành phần có thể bằng 0 Điều này là trái với tính chất 1 Tính chất còn lại - tính chất 4 - không phải là tính chất bắt buộc nhưng cũng rất hợp lý Khi tính toán thì độ phức tạp hay thời gian

tính toán rất quan trọng Tính chất 4 nhằm hỗ trợ kỹ thuật lập chỉ mục (indexing)

Với kỹ thuật này, từ những kết quả tính toán đã biết, ta có thể bỏ qua những không gian tìm kiếm mà chắc chắn không có lời giải thỏa mãn yêu cầu Do đó, thời gian tính toán sẽ giảm

Đối với bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian thì dữ liệu được biểu diễn thành các dãy số thực :

X= x1 x2 … xn

Y = y1 y2 …yn

Ta cần phải tính độ tương tự của 2 mẫu này Sim(X,Y) và đã có nhiều cách

đánh giá khác nhau được trình bày [1], [2], [8], [12], [13], [15], [18], [32] Sau đây

là những phương pháp đánh giá mức độ tương tự đã được đề nghị

3.1.1 Độ đo Minkowski

Trong phương pháp này thì Sim(X,Y) được định nghĩa:

Trang 28

Sim (X, Y) = p

n i

p i

i y x

ƒ Nó có khả năng mở rộng cho nhiều bài toán khác này như lập chỉ

mục, gom cụm… Đặt biệt, cách tính này rất phù hợp khi ta sử dụng

các phép biến đổi Fourier rời rạc (Discrete Fourier Transform -

DFT) hay phép biến đổi Wavelet rời rạc (Discrete Wavelet

Transform - DWT)

™ Nhược điểm:

ƒ Nhạy cảm với nhiễu

ƒ Không thích hợp khi dữ liệu có đường căn bản (base line) khác nhau

( Hình 3.1): ví dụ như giá chứng khoáng của A và B thay đổi rất giống nhau nhưng A giao động ở 100 còn B giao động ở mức 40 Như vậy A và B là rất khác nhau mặc dù hình dáng rất giống nhau

ƒ Không thích hợp khi dữ liệu có biên độ dao động khác nhau ( Hình

3.2): Trong trường hợp giá chứng khoán của 2 công ty A và B thay đổi rất giống nhau nhưng mà biên độ giao động của A là 20 và 80 còn biên độ giao động của B là 30 và 50 thì độ tương tự của A và B là rất

khác nhau

Trang 29

Hình 3.1 Minh họa 2 đường giống nhau, nhưng đường cơ bản khác nhau

™ Phương pháp chuẩn hóa dữ liệu chuỗi thời gian trước khi áp dụng các giải

thuật so trùng mẫu dựa trên giá trị trung bình và độ lệch chuẩn [13] Trong

đó, biến đổi dữ liệu Q thành dữ liệu Q’ có cùng đường căn bản theo công

thức sau:

0 0.

1 1.

2 2.

3

D(Q,C)

0 10 20 30 40 50 60 70 80 90 100

Trang 30

Q’ = Q – mean(Q)

Với mean(Q) là giá trị trung bình của Q

Để các dữ liệu có cùng biên độ dao động thì ta dùng phép biến đổi sau: Q’ = (Q- mean(Q)) / var(Q)

Với mean(Q) là giá trị trung bình của Q và var(Q) là độ chệch chuẩn của Q

™ Phương pháp trung bình di chuyển (moving average) [35] để làm trơn các đường biểu diễn dữ liệu chuỗi thời gian Với phương pháp này thì Q được biến đổi thành Q’ - trong đó điểm ở vị trí i bằng trung bình cộng giá trị tại điểm i và k điểm lân cận Ví dụ trong trường hợp k=3 thì

x’i = (xi-1 + xi + xi+1) /3

3.1.2 Phương pháp xoắn thời gian động

Tuy nhiên, việc so trùng 2 đường biểu diễn dữ liệu bằng cách tính khoảng

cách từng cặp điểm 1- 1 (điểm thứ i của đường thứ I so với điểm thứ i của đường

thứ II) là không phù hợp trong trường hợp 2 đường này không hoàn toàn giống nhau nhưng hình dạng biến đổi rất giống nhau Như trong Hình 3.3, 2 đường biểu diễn rất giống nhau về hình dạng nhưng lệch nhau về thời gian Trong trường hợp này, nếu tính khoảng cách bằng cách ánh xa 1-1giữa 2 đường thì kết quả rất khác nhau và có thể dẫn đến kết quả cuối cùng không giống như mong muốn Vì vậy để

khắc phục nhược điểm này, thì một điểm có thể ánh xạ với nhiều điểm và ánh xạ

này không thẳng hàng Phương pháp này gọi là xoắn thời gian động (Dynamic

Time Warping - DTW) [4]

Dữ liệu vào của phương pháp DTW là 2 đường dữ liệu chuỗi thời gian và thông số w – khung cửa sổ xoắn (warping window) ràng buộc 2 điểm i và j có thể ánh xạ nhau nếu | i – j | ≤ w Dữ liệu ra là tổng khoảng cách của các điểm được

ánh xạ với nhau

Trang 31

Hình 3.3 (a) tính khoảng cách theo Euclid (b) tính khoảng cách theo DWT

( Từ nguồn [26])

Cách tính DWT:

Cách đơn giản nhất để tính DWT của 2 đường X và Y là ta xây dựng ma trận

Sau khi xây dựng ma trận D , ta tìm đường đi từ ô (0,0) đến ô (m,n) thỏa

mãn những ràng buộc sau:

ƒ Không được đi qua trái hay đi xuống

ƒ Đường đi phải liên tục

ƒ ô (i,j) thuộc đường đi phải thỏa |i - j| <= w Giả sử có K ô đi từ ô (0,0) đến ô (m,n) thỏa mãn những điều kiện trên,

khi đó

Tuy nhiên, ta có thể dùng quy hoạch động để giải quyết bài toán này Trong

đó, công thức truy hồi để tính D(i, j):

D(i,j) = | xi – yj | + min { D(i – 1, j), D(i – 1, j – 1), D(i, j – 1) }

Trang 32

Hình 3.4 Minh họa cách tính khoảng cách theo DWT

Nhận xét phương pháp DTW:

Ưu điểm:

ƒ Phương pháp DWT thì hiểu quả hơn rất nhiều so với phương pháp

tính khoảng cách theo Euclid Đặt biệt trong các bài toán phân loại (classfication), gom cụm (clustering) hay trong các các ứng dụng nhận dạng giọng nói…

ƒ Phương pháp DWT cho phép nhận dạng những mẫu có hình dạng

giống nhau nhưng chiều dài hình dạng về mặt thời gian có thể khác nhau

Nhược điểm:

ƒ Nhược điểm lớn nhất của DTW là thời gian chạy rất lâu, gấp hàng trăm đến hàng nghìn lần Ban đầu đưa ra giải thuật DTW thì w = n (n

là chiều dài của dữ liệu) Khi đó, độ phức tạp là O(n 2 ) Do đó, ta đưa

ra thông số cửa sổ xoắn w (w < n) để giảm độ phức tạp là O(wn) Những cải tiến để phươmg pháp DTW hiệu quả hơn:

X

j = i + w

Trang 33

ƒ Dùng phép ánh xạ để chuyển cách biểu diễn ban đầu sang cách biểu diễn khác bằng cách nén dữ liệu và giảm tần số lấy mẫu Khi đó việc

tính toán theo DTW nhanh hơn

ƒ Trong phương pháp DTW trình bày ở trên ta dùng thông số w để giới hạn miền tìm kiếm Cải tiến này gọi là cận dưới (lower bound) Miền

tìm kiếm này có thể giới hạn bởi 2 đường thẳng song song như trên hoặc có thể có hình dạng khác (tùy theo từng hợp cụ thể)

3.1.3 Phương pháp chuỗi con chung dài nhất (longest common subsequence )

Hình 3.5 Minh họa phương pháp LCS

Điểm nổi bật của phương pháp chuỗi con chung dài nhất là nó cho phép bỏ

qua những điểm bất thường khi so sánh ( Hình 3.5) Tư tưởng chính của giải

thuật này là tìm những dãy con chung Hai dãy có dãy con chung càng dài thì càng

giống nhau Ví dụ, cho 2 chuỗi X, Y

X= 3, 2, 5, 7, 4, 8, 10, 7

Y = 2, 5, 4, 7, 3, 10, 8, 6 LCS = 2, 5, 7, 10

Độ tương tự của X, Y: Sim(X, Y) = |LCS|

Tuy nhiên, phương pháp này cũng giống như phương pháp tính khoảng cách Euclid, trước khi áp dụng phương pháp dãy con chung dài nhất, ta nên biến đổi dữ

Cho phép bỏ qua

Trang 34

liệu ban đầu thông qua các phép biến đổi như tịnh tiến (shifting) đường căn bản hay phép co giãn biên độ (scaling)

Bên cạnh đó, các giá trị rất khó bằng nhau một cách chính xác Vì vậy ta phải định nghĩa tham số ε cho phép khoảng sai lệch giữa 2 giá trị được gọi là

giống nhau

Trên cơ sở đó, đã có nhiều cải tiến khác nhau cho phương pháp LCS này:

ƒ So sánh chuỗi con không co giãn biên độ (scale)

ƒ So sánh chuỗi con có dùng phép co giãn biên độ cục bộ và biến đổi đường căn bản

ƒ So sánh chuỗi con có dùng phép co giãn biên độ toàn cục và biến đổi đường căn bản

3.1.4 Phương pháp tính độ tương tự dựa trên xác suất

Khác với những phương pháp trước là dựa trên sự khác nhau về khoảng

cách (distance), thì phương pháp này dựa trên sự khác nhau về đặc điểm (feature)

Khi áp dụng phương pháp này ta phải biểu diễn chuỗi ban đầu và chuỗi truy vấn dựa trên những đặc điểm đã được định nghĩa trước như tăng, giảm, không đổi… Sau đó, từ chuỗi dữ liệu ban đầu này ta xây dựng mô hình xác suất chuyển trạng

thái Markov dự trên những đặc điểm hữu hạn đã được định nghĩa trước Khi người

dùng đưa vào chuỗi truy vấn, nó sẽ được rời rạc hóa thành chuỗi các đặc điểm Sau

đó, với mô hình xác suất đã được định nghĩa áp dụng giải thuật Markov hoặc

Viterbi … để tính xác suất cho các chuỗi con Phương pháp tính độ tương tự dựa

trên xác suất là hướng tiếp cận mới và rất được quan tâm hiện nay

Ưu điểm:

ƒ Phương pháp này đã tích hợp các phép biến đổi tịnh tiến (shifting),

co giãn biên độ (amplitude scale), và xoắn thời gian (time warping)

ƒ Định nghĩa về độ tương tự rất gần gũi với suy nghĩ của con người là dựa trên hình dáng đặc điểm

Trang 35

ƒ Khi sử dụng phương pháp này ta có thể sử dụng những nghiên cứu ở một số lĩnh vực khác như xử lý ngôn ngữ tự nhiên, so trùng mẫu ký

tự và các kỹ thuật nhận dạng dựa trên xác suất

có trùng nhau không)

Hai vấn đề quan trọng nhất của tìm kiếm tương tự là :

ƒ Định nghĩa độ tương tự giữa hai mẫu

ƒ Tổ chức dữ liệu để nâng cao tốc độ tìm kiếm Cách định nghĩa độ tương tự đã được trình bày trong phần trên, trong phần sau sẽ trình bày về các cách tổ chức dữ liệu hỗ trợ việc tìm kiếm Để việc tìm kiếm thực hiện nhanh thì các nghiên cứu tập trung vào 2 vấn đề chính: giảm số chiều của

dữ liệu và lập chỉ mục (indexing)

3.2 Các phương pháp thu giảm số chiều dữ liệu

Trong phương pháp thu giảm số chiều, ta sẽ mã hóa đường biểu diễn dữ

liệu chuỗi thời gian thành những đường căn bản đã được định nghĩa trước Khi đó,

thay vì lưu trữ dãy giá trị x 1 x 2 … x n , ta chỉ cần lưu trữ chuỗi a 1 a 2 ….a k là k hệ số

của các đường cơ bản Từ những đường cơ bản này ta cũng có thể phục hồi lại dữ

liệu ban đầu Nếu k càng lớn thì đường phục hồi này càng chính xác với đường ban đầu và ngược lại Như vậy, thay vì tính toán trên dữ liệu n chiều, ta chỉ cần tính toán trên dữ liệu k chiều Phương pháp mã hóa bằng cách biến đổi thành những

đường căn bản như vậy còn được gọi là phương pháp thu giảm số chiều (dimensional reduction)

Trang 36

3.2.1 Phương pháp không thích nghi dữ liệu

Sở dĩ phương pháp này gọi là không thích nghi vì các đường cơ bản là

những đường được định nghĩa trước và không phụ thuộc vào dữ liệu như đường

sin, cosin, đường haar…

Từ ý tưởng này nhiều phương pháp đã được đề nghị (Hình 3.6) như phương

pháp biến đổi Fourier rời rạc (Discrete Fourier Transform - DFT) [19], [35], phương pháp biến đổi Wavelet rời rạc (Discrete Wavelet Transform - DWT) [7], [17], [34], [42], xấp xỉ gộp từng đoạn (Piecewise Aggregate Approximation - PAA) [21], [29], [10], [11], [25]

Phương pháp DFT:

Phương pháp biến đổi rời rạc Fourier do R Agrawal và cộng sự đề nghị [2] Trong phương pháp biến đổi Fourier thì đường dữ liệu ban đầu được biểu diễn bởi các đường căn bản Nhưng đường căn bản trong trường hợp này là đường sin và

cosin

Ngoài khả năng nén dữ liệu, với cách tính khoảng cách dựa trên khoảng

cách Euclid thì phương pháp Fourier cho phép so sánh gián tiếp 2 chuỗi X, Y thông qua khoảng cách của 2 chuỗi X f , Y f đã được biến đổi Sở dĩ phép biến đổi

Fourier rời rạc có tính chất trên là vì:

D(X, Y) ≥ α D(Xf , Yf ) (trong đó α là hằng số)

Vì vậy, phương pháp Fourier đã được sử dụng trong nhiều ứng dụng và một

số phương pháp lập chỉ mục như F-index, ST-index … đã được đề nghị Ưu diểm

của phương pháp này là thích hợp với các loại đường biểu diễn dữ liệu khác nhau

và giải thuật để biến đổi dữ liệu chỉ có độ phức tạp O(nlgn) Tuy nhiên, nhược

điểm lớn nhất rất khó giải quyết nếu các đường biểu diễn có chiều dài khác nhau

k

k w t B w t A

t C

1

)) 2 sin(

) 2 cos(

( )

Trang 37

Hình 3.6 Minh họa cách biến đổi dữ liệu ban đầu theo các

phương pháp DFT, DWT, PAA (Từ nguồn [25])

ψ = ψ( 2j xi) i = 0,… 2j -1

i j

ψ (t) Với

1 với 0< t <0.5 -1 với 0.5< t <1

0 trường hợp còn lại

=

0 20 40 60 80 100 120 0 20 40 60 80 100 120 0 20 40 60 80 100 120

Trang 38

Ngoài sử dụng đường Haar, phương pháp Wavelet có thể sử dụng các đường cơ bản khác như đường Daubechies, Coiflet, Symmlet… Tuy nhiên, Haar

Wavalet đã được sử dụng rất nhiều trong khai phá dữ liệu chuỗi thời gian và lập chỉ

mục [34]

Giải thuật Wavelet rất hiệu quả bởi vì nó mã hóa đơn giản và nhanh Độ

phức tạp của việc mã hóa này là tuyến tính Đặc biệt, giải thuật này rất thích hợp

với những dữ liệu tĩnh ít thay đổi Bởi vì đường Haar cũng không thay đổi liên tục

Một ưu điểm của giải thuật Wavelet là nó hỗ trợ một số phương pháp tính khoảng cách khác không phải là dựa trên khoảng cách Euclid

Tuy nhiên nhược điểm lớn nhất là chiều dài chuỗi dữ liệu ban đầu của nó phải là một số lũy thừa 2 Còn chiều dài của chuỗi truy vấn cũng nên là số lũy thừa của 2 thì giải thuật mới thực hiện hiệu quả

Phương pháp PAA

Phương pháp xấp xỉ gộp từng đoạn do E Keogh và cộng sự đề nghị [21] 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 đó Qúa trình cứ tiếp tục như vây từ

trái sang phải Kết quả cuối cùng là đường thẳng có dạng bậc thang

Với phương pháp này, thời gian tính toán rất nhanh và cách biểu diễn của nó

hỗ trợ nhiều hàm tính khoảng cách

3.2.2 Phương pháp thích nghi dữ liệu

Cũng giống như phương pháp không thích nghi dữ liệu, thì phương pháp này cũng biểu diễn dữ liệu ban đầu bằng những đường cơ bản Tuy nhiên, những đường này là phụ thuộc vào dữ liệu Mỗi loại dữ liệu khác nhau sẽ có các đường cơ bản khác nhau ( Hình 3.7) Như vậy dễ dàng nhận thấy cách biểu diễn này hiệu quả hơn, nhưng ngược lại thời gian để biến đổi sẽ lớn hơn rất nhiều Một số phương

pháp thích nghi dữ liệu là phân rã trị kỳ dị (Singular Value Decomposition - SVD) [27], xấp xỉ tuyến tính từng đoạn (Piecewise Linear Approximation - PLA ) [14],

Trang 39

[20], [22], [30], [32], xấp xỉ hằng số từng đoạn thích nghi (Adaptive Piecewise

Constant Approximation - APCA ) [23]

Hình 3.7 Minh họa cách biến đổi dữ liệu ban đầu theo các phương pháp SVD, APCA, PLA (Từ nguồn [25])

Phương pháp SVD

Phương pháp phân rã trị kỳ dị do F Korn và cộng sự đề nghị [27] Phương pháp SVD cũng giống như phương pháp DFT, DWT Tuy nhiên, đường cơ bản thì phụ thuộc vào dữ liệu Những đường cơ bản này gọi là đường eigenwave Với mỗi

dữ liệu thì ta có giải thuật để xây dựng đường eigenwave Tuy nhiên độ phức tạp của phương pháp SVD là rất cao Và mỗi khi thêm dữ liệu mới vào thì ta phải chạy lại giải thuật Đây là nhược điểm chính mà phương pháp SVD không được sử dụng rộng rãi Ưu điểm lớn nhất của giải thuật này là các đường eigenwave cho phép ta

thấy được hình dạng của dữ liệu

0 20 40 60 80 100 120 0 20 40 60 80 100 120 0 20 40 60 80 100 120

Trang 40

Phương pháp APCA:

Phương pháp xấp xỉ hằng số từng đoạn thích nghi do E Keogh và cộng sự

đề nghị [23] Phương pháp APCA giống như phương pháp PAA là xấp xỉ dữ liệu ban đầu thành những đoạn thẳng nằm ngang Tuy nhiên, nó khác với PAA là các đoạn này có kích thước bằng nhau, còn APCA thì kích thước của các đoạn nằm

ngang là khác nhau Tuy nhiên phương pháp này rất ít được sử dụng

Phương pháp PLA:

Phương pháp xấp xỉ tuyến tính từng đoạn do E Keogh và cộng sự đề nghị

[19] Trong phương pháp này ta sẽ biểu diễn dữ liệu ban đầu bằng chuỗi các đoạn thẳng tuyến tính Các đoạn thẳng này có thể rời nhau hoặc liên tục Cách biểu diễn này rất trực quan và nó phù hợp để nén tất cả các loại dữ liệu chuỗi thời gian Hơn thế nữa, việc tìm các chuỗi đoạn thẳng này có thể thực hiện trong thời gian tuyến tính và ta có thể áp dụng rộng rãi nhiều cách tính khoảng cách khác nhau như là phép truy vấn mờ hay có thể thay đổi theo yêu cầu của người dùng…

Nhược điểm lớn nhất là chưa có phép lập chỉ mục hiệu quả cho cách biểu diễn này Tuy nhiên, với các biểu biễn tuyến tính thì việc tìm kiếm cũng thực hiện rất nhanh chóng

3.3 Các phương pháp rời rạc hóa dữ liệu

Trong phương pháp rời rạc hóa thì từ dữ liệu ban đầu, ta sẽ chia thành

những đoạn dữ liệu nhỏ hơn Quá trình chia thành những đoạn nhỏ này được gọi là

quá trình rời rạc hóa Sau đó, tương ứng với mỗi đoạn nhỏ này ta sẽ mã hóa chúng

bởi những đặc trưng của đoạn Tập hợp những đặc trưng của những đoạn nhỏ này

sẽ biểu diễn cho dữ liệu ban đầu

Khác với những phương pháp trước thì độ tương tự được tính dựa trên khoảng cách Trong phương pháp này, độ tương tự được tính dựa trên những đặc

trưng (feature) Phương pháp rời rạc hóa thành chuỗi bit (bitstring) do E Keogh và cộng sự đề nghị [20] là một trong những phương pháp rời rạc hóa đặc trưng đầu tiên của phương pháp này Trong phương pháp rời rạc hóa thành chuỗi bit, thì từ

Ngày đăng: 08/03/2021, 23:44

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