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

Khai phá mẫu xu hướng tuần tự lên đối tượng từ tập dữ liệu chuỗi thời gian

101 18 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 101
Dung lượng 1,95 MB

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

Nội dung

Tìm hiểu các khái niệm về dữ liệu chuỗi thời gian, các phương pháp khai phá tri thức phổ biến trên dữ liệu chuỗi thời gian, đại số thời gian Allen, các giải thuật hỗ trợ cho quá trình kh

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

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

-

NGUYỄN THANH VŨ

KHAI PHÁ MẪU XU HƯỚNG TUẦN TỰ LIÊN ĐỐI TƯỢNG

TỪ TẬP DỮ LIỆU CHUỖI THỜI GIAN

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

Mã số: 604801

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 7 năm 2013

Trang 2

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

Cán bộ hướng dẫn khoa học: TS Võ Thị Ngọc Châu

Cán bộ chấm nhận xét 1 : PGS.TS Lê Hoài Bắc

Cán bộ chấm nhận xét 2 : TS Phạm Văn Chung

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 22 tháng 7 năm 2013

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

1 PGS.TS Dương Tuấn Anh (Chủ tịch hội đồng)

2 TS Phạm Văn Chung (PB1)

3 PGS.TS Lê Hoài Bắc (PB2)

4 TS Võ Thị Ngọc Châu (UV)

5 TS Lê Thanh Vân (TK)

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

PGS.TS Dương Tuấn Anh

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

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

CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Nguyễn Thanh Vũ MSHV:11076106

Ngày, tháng, năm sinh: 17/10/1988 Nơi sinh: TP.HCM

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

I TÊN ĐỀ TÀI: Khai phá mẫu xu hướng tuần tự liên đối tượng từ tập dữ liệu chuỗi thời

gian

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

1 Tìm hiểu các khái niệm về dữ liệu chuỗi thời gian, các phương pháp khai phá tri thức phổ biến trên dữ liệu chuỗi thời gian, đại số thời gian Allen, các giải thuật hỗ trợ cho quá trình khai phá mẫu tuần tự phổ biến

2 Tìm hiểu các công trình liên quan cho cơ sở lý thuyết của đề tài và cho cơ sở khoa học của việc đánh giá kết quả đạt được của luận văn

3 Chuẩn bị dữ liệu thực nghiệm, dữ liệu đầu vào ở đây là dữ liệu thị trường chứng khoán Thực hiện tiền xử lý dữ liệu

4 Mô tả quá trình khai phá mẫu xu hướng tuần tự liên đối tượng Nêu ý nghĩa của đề tài và đề xuất hai giải thuật hỗ trợ cho quá trình khai phá

5 Tiến hành đánh giá, so sánh các giải thuật đề xuất thông qua kết quả thực nghiệm

và phân tích các giải thuật trên Đề xuất các hướng nghiên cứu

III NGÀY GIAO NHIỆM VỤ : 21/1/2013

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 21/6/2013

Trang 4

LỜI CÁM ƠN

Tôi xin gửi lời cám ơn chân thành và sâu sắc tới TS.Võ Thị Ngọc Châu, cô

đã hướng dẫn vô cùng tận tình và tạo mọi điều kiện tốt nhất để giúp tôi hoàn thành

đề tài này về phương pháp lý luận và nội dung trong suốt thời gian thực hiện luận văn

Tôi cũng xin gửi lời cám ơn tới ban giám hiệu trường Đại học Bách Khoa TP.HCM, ban chủ nhiệm và các thầy cô trong khoa Khoa học và kĩ thuật máy tính

đã giúp đỡ, cung cấp môi trường học tập tốt nhất và những kiến thức quý báu giúp tôi thực hiện đề tài này

Lời cuối, tôi xin cảm ơn gia đình, bạn bè đã hết lòng động viên, giúp đỡ tôi

để tôi có thể hoàn thành luận văn một cách tốt nhất

Trang 5

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

Dữ liệu chuỗi thời gian ngày nay xuất hiện rất phổ biến trong nhiều lĩnh vực như tài chính, y học, địa chất, khí hậu … Lượng tri thức và những thông tin tiềm ẩn trong dữ liệu chuỗi thời gian đóng vai trò rất quan trọng đối với chúng ta Từ những kết quả có được trong quá trình khai phá tri thức, các nhà quản lý hay chuyên gia phân tích dữ liệu sẽ có một góc nhìn sâu sắc hơn về những mối quan hệ mang yếu

tố thời gian giữa các đối tượng/hiện tượng xuyên suốt trong thời gian sống của chúng Chính vì vậy, luận văn đã đề xuất ra một khái niệm được gọi là “mẫu xu hướng tuần tự liên đối tượng” mang yếu tố thời gian Luận văn cũng cung cấp hai giải thuật dùng để khai phá mẫu xu hướng tuần tự phổ biến liên đối tượng và được

áp dụng lên một tập dữ liệu chuỗi thời gian Khi so sánh với các mẫu tuần tự phổ biến thường thấy trong cơ sở dữ liệu tuần tự, các mẫu khai phá từ nhiều chuỗi thời gian khác nhau trong luận văn sẽ mang lại cho chúng ta những thông tin chính xác

và tường minh hơn về thời khoảng xảy ra giữa các nhóm sự kiện (cụ thể hơn hẳn so với dạng thông tin chỉ mang yếu tố trước – sau)

Hai giải thuật được đề xuất sẽ dựa trên ý tưởng của phương pháp vét cạn (brute-force) và cấu trúc cây (Tree-based) Tinh thần chính của cả hai giải thuật khi xây dựng các mẫu tuần tự phổ biến liên đối tượng là dựa trên hướng tiếp cận lặp từng mức từ dưới lên Ngoài ra hai giải thuật này cũng có những cải tiến riêng để xử

lý vấn đề bùng nổ tổ hợp trong quá trình phân tích và tìm ra các mối quan hệ phổ biến giữa các đối tượng Khi phân tích kết quả thực nghiệm từ hai giải thuật, ta cũng thấy được mức độ hiệu quả của giải thuật dựa trên cấu trúc cây so với giải thuật brute-force

Thông qua kết quả thực nghiệm đạt được đối với dữ liệu tài chính thực tế, luận văn hoàn toàn có thể được phát triển xa hơn nhằm hỗ trợ quá trình khai phá luật mang yếu tố thời gian trên cơ sở dữ liệu chuỗi thời gian và ứng dụng trong hỗ trợ ra quyết định

Trang 6

ABSTRACT

Nowadays, time series is present in many various application domains such

as finance, medicine, geology, meteorology, etc Analyzing and mining time series for useful information and hidden knowledge is very significant in those domains to help users such as data analysts and managers get fascinating insights into important temporal relationships of objects/phenomena along the time Therefore, this thesis introduced a notion of frequent temporal inter-object pattern and accordingly proposed two frequent temporal pattern mining algorithms on a set of different time series As compared to frequent sequential patterns in sequential databases, frequent temporal inter-object patterns are more informative with explicit and exact temporal information automatically discovered from many various time series

The two proposed algorithms which are brute-force and tree-based are efficiently defined in a level-wise bottom-up approach dealing with the combinatorial explosion problem in the association analysis task When analyzing experimental results, we can see the advantage of tree-based algorithm in comparision with brute-force algorithm

As shown in experiments on real financial time series, this thesis results can

be further used to efficiently enhance the temporal rule mining process on time series for decision making support

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi 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 bằng cấp ở trường này hoặc trường khác

Ngày 21 tháng 06 năm 2013

Nguyễn Thanh Vũ

Trang 8

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

1.1 Giới thiệu vấn đề 15

1.2 Mục tiêu đề tài 19

1.3 Phạm vi đề tài 19

1.4 Ý nghĩa đề tài 19

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

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

2.1 Dữ liệu chuỗi thời gian 22

2.1.1 Time Series 22

2.1.2 Chuỗi con (Subsequence) 22

2.1.3 Trùng khớp (Match) 23

2.1.4 Trùng khớp tầm thường (Trivial Match) 23

2.1.5 Trùng khớp không tầm thường (Non-trivial match) 24

2.1.6 Motif 24

2.2 Xử lý dữ liệu chuỗi thời gian 24

2.2.1 Các độ đo tương tự (similarity measurement) 24

2.2.2 Chuẩn hóa dữ liệu (Data Normalization) 27

2.3 Khai phá mẫu tuần tự phổ biến 27

2.3.1 Định nghĩa 27

2.3.2 Một số khái niệm thường gặp trong khai phá mẫu tuần tự phổ biến 28

2.4 Phương pháp thu giảm số chiều xấp xỉ gộp từng đoạn PAA (Piecewise Aggregate Approximation) 29

2.5 Phương pháp biến đổi chuỗi thời gian sang dạng kí tự SAX (Symbolic Aggregate Approximation) 30

2.6 Phương pháp biến đổi chuỗi thời gian sang dạng kí hiệu khuynh hướng 33

Trang 9

2.7 Đại số quan hệ thời gian Allen 35

2.8 Generic Dictionary trong C# 36

CHƯƠNG 3 : CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN 38

3.1 Các phương pháp tìm motif trong dữ liệu chuỗi thời gian 38

3.1.1 Phương pháp tìm motif đối với cơ sở dữ liệu chuỗi thời gian lớn 38

3.1.2 Phương pháp tìm motif dựa trên MDL 38

3.2 Một số giải thuật khai phá mẫu phổ biến 40

3.2.1 Giải thuật Apriori 40

3.2.2 Giải thuật FP-Growth 41

3.2.3 Giải thuật GSP 42

3.2.4 Giải thuật Prefix Span 42

3.3 Một số công trình liên quan khác về khai phá mẫu trên dữ liệu chuỗi thời gian 43

CHƯƠNG 4 : HƯỚNG TIẾP CẬN GIẢI QUYẾT VẤN ĐỀ 47

4.1 Giới thiệu 47

4.2 Quá trình khai phá mẫu xu hướng tuần tự liên đối tượng trên cơ sở dữ liệu chuỗi thời gian 47

4.2.1 Giai đoạn chuyển đổi sang chuỗi thời gian khuynh hướng 49

4.2.2 Giai đoạn tìm các chuỗi con phổ biến từ chuỗi thời gian khuynh hướng 50 4.2.3 Giai đoạn khai phá mẫu xu hướng tuần tự phổ biến liên đối tượng 52

4.3 Các giải thuật được đề xuất để khai phá mẫu xu hướng tuần tự liên đối tượng trên tập dữ liệu chuỗi thời gian 54

4.3.1 Giải thuật Brute Force 55

4.3.2 Giải thuật dựa trên cấu trúc cây 63

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

Trang 10

5.1 Tổng quan 74

5.2 Tiền xử lý dữ liệu 75

5.3 Lưu trữ dữ liệu 75

5.4 Mô tả thực nghiệm 76

5.4.1 Thực nghiệm cố định min-sup 78

5.4.2 Thực nghiệm cố định chiều dài chuỗi thời gian 82

5.4.3 Thực hiện kiểm tra số lượng kết hợp được yêu cầu tạo ra 86

5.4.4 Thực hiện kiểm tra số ứng viên của hai giải thuật 88

5.5 Kết quả 89

5.6 Đánh giá chung 91

CHƯƠNG 6 : KẾT LUẬN 92

6.1 Tổng kết 92

6.2 Đóng góp của luận văn 92

6.3 Hướng phát triển trong tương lai 93

Trang 11

Mục lục hình

Hình 1.1 Minh họa dữ liệu chuỗi thời gian cổ phiếu S&P500 17

Hình 2.1 Các chuỗi con trong một chuỗi thời gian [17] 22

Hình 2.2 M là một chuỗi con trùng khớp của chuỗi con C trong chuỗi thời gian T [17] 23

Hình 2.3 Các trùng khớp tầm thường bên trái và bên phải của chuỗi C [17] 23

Hình 2.4 Tìm khoảng cách Euclid [18] 25

Hình 2.5 Tính khoảng cách theo DTW [18] 26

Hình 2.6 Ma trận cho DTW [18] 26

Hình 2.7 Biến đổi thu giảm chiều theo PAA [18] 30

Hình 2.8 Minh họa breakpoints cho phương pháp SAX [17] 31

Hình 2.9 Biểu diễn bằng SAX [17-18] 32

Hình 2.10 Minh họa cách xử lý đụng độ trong bảng băm 37

Hình 3.1 Hình minh họa cho quá trình chuyển đổi [21] 39

Hình 4.1 Minh họa các giai đoạn chính trong đề tài 48

Hình 4.2 Mô tả giai đoạn một của đề tài 49

Hình 4.3 Minh họa cho giai đoạn 2 51

Hình 4.4 Minh họa cho một mẫu tuần tự phổ biến với các thành phần của một đối tượng cổ phiếu NY 53

Hình 4.5 Minh họa cho một mẫu tuần tử phổ biến với các thành phần của hai đối tượng cổ phiếu NY và SH 54

Hình 4.6 Minh họa quan hệ precedes 57

Hình 4.7 Minh họa quan hệ “meets” 57

Hình 4.8 Minh họa quan hệ “contains” 58

Hình 4.9 Minh họa quan hệ “overlaps” 58

Hình 4.10 Minh họa quan hệ “starts” 58

Hình 4.11 Minh họa quan hệ “Finished by” 59

Hình 4.12 Minh họa quan hệ “equal” 59

Trang 12

Hình 4.13 Mã giả giải thuật Brute Force 63

Hình 4.14 Minh họa một node trong cấu trúc cây 64

Hình 4.15 Mô tả cấu trúc cây sau bước 1 và 2 65

Hình 4.16 Minh họa cấu trúc cây sau bước 3 66

Hình 4.17 Minh họa cây sau bước 4 68

Hình 4.18 Mã giả hàm CreateTree 69

Hình 4.19 Mã giả thủ tục BuildTree 69

Hình 4.20 Mã giả thủ tục CombineChildNodes 70

Hình 4.21 Mã giả thủ tục CombineNode trong giải thuật dựa trên cấu trúc cây 71

Hình 4.22 Mã giả hàm OverallCombine trong giải thuật dựa trên cấu trúc cây 72

Hình 4.23 Mã giả hàm FindPatternContentAndPosition 73

Hình 5.1 Chuỗi thời gian chứng khoán cổ phiếu S&P500 từ ngày 1/4/1982 76

Hình 5.2 Chuỗi thời gian chứng khoán cổ phiếu BA từ ngày 1/4/1982 77

Hình 5.3 Chuỗi thời gian chứng khoán cổ phiếu CSX từ ngày 1/4/1982 77

Hình 5.4 Chuỗi thời gian chứng khoán cổ phiếu CAT từ ngày 1/4/1982 77

Hình 5.5 Chuỗi thời gian chứng khoán cổ phiếu DE từ ngày 1/4/1982 78

Hình 5.6 Đồ thị biểu diễn thời gian chạy ứng với một chuỗi thời gian S&P500 và min-sup = 5 79

Hình 5.7 Đồ thị biểu diễn thời gian chạy ứng với hai chuỗi thời gian S&P500, BA và min-sup = 5 80

Hình 5.8 Đồ thị biểu diễn thời gian chạy ứng với ba chuỗi thời gian S&P500, BA, CAT và min-sup = 5 81

Hình 5.9 Đồ thị biểu diễn thời gian chạy ứng với bốn chuỗi thời gian S&P500, BA, CAT, CSX và min-sup = 5 81

Hình 5.10 Đồ thị biểu diễn thời gian chạy ứng với năm chuỗi thời gian S&P500, BA, CAT, CSX, DE và min-sup = 5 82

Hình 5.11 Đồ thị biểu diễn thời gian chạy ứng với chuỗi thời gian S&P500 và chiều dài chuỗi thời gian = 100 83

Hình 5.12 Đồ thị biểu diễn thời gian chạy ứng với 2 chuỗi thời gian S&P500, BA và chiều dài chuỗi thời gian = 100 84

Trang 13

Hình 5.13 Đồ thị biểu diễn thời gian chạy ứng với 3 chuỗi thời gian S&P500, BA, CAT và chiều dài chuỗi thời gian = 100 85Hình 5.14 Đồ thị biểu diễn thời gian chạy ứng với 4 chuỗi thời gian S&P500, BA, CAT, CSX và chiều dài chuỗi thời gian = 100 85Hình 5.15 Đồ thị biểu diễn thời gian chạy ứng với 5 chuỗi thời gian S&P500, BA, CAT, CSX, DE và chiều dài chuỗi thời gian = 100 86Hình 5.16 Minh họa các mẫu xu hướng tuần tự liên đối tượng được tìm ra (ứng với

5 đối tượng là SNP500, CAT, DE, CSX, Boeing) 90

Trang 14

Mục lục bảng

Bảng 2.1 Ví dụ về cơ sở dữ liệu chuỗi [1] 28

Bảng 2.2 Bảng độ đo khoảng cách giữa các kí tự [17-18] 32

Bảng 2.3 Sáu loại kí tự sử dụng cho quá trình biến đổi sang chuỗi kí tự dành cho dữ liệu cổ phiếu 34

Bảng 2.4 Mười ba mối quan hệ cơ bản Allen [29] 35

Bảng 2.5 Các cặp quan hệ thuận nghịch [29] 35

Bảng 5.1 Kết quả khi chạy với một chuỗi thời gian S&P500 và min-sup = 5 79

Bảng 5.2 Kết quả khi chạy với hai chuỗi thời gian S&P500, BA và min-sup = 5 79

Bảng 5.3 Kết quả khi chạy với ba chuỗi thời gian S&P500, BA, CAT và min-sup = 5 80

Bảng 5.4 Kết quả khi chạy với bốn chuỗi thời gian S&P500, BA, CAT, CSX 81

Bảng 5.5 Kết quả khi chạy với năm chuỗi thời gian S&P500, BA, CAT, CSX, DE và min-sup = 5 82

Bảng 5.6 Kết quả khi chạy với chuỗi thời gian S&P500 và chiều dài chuỗi thời gian = 100 83

Bảng 5.7 Kết quả khi chạy với 2 chuỗi thời gian S&P500, BA và chiều dài chuỗi thời gian = 100 84

Bảng 5.8 Kết quả khi chạy với 3 chuỗi thời gian S&P500, BA, CAT 84

Bảng 5.9 Kết quả khi chạy với 4 chuỗi thời gian S&P500, BA, CAT, CSX và chiều dài chuỗi thời gian = 100 85

Bảng 5.10 Kết quả khi chạy với 5 chuỗi thời gian S&P500, BA, CAT, CSX, DE và chiều dài chuỗi thời gian = 100 86

Bảng 5.11 So sánh tổng số lượng kết hợp được yêu cầu tạo ra từ hai giải thuật 87

Bảng 5.12 So sánh tổng số lượng kết hợp giữa hai giải thuật 88

Bảng 5.13 So sánh tổng số ứng viên được tạo giữa hai giải thuật 88

Trang 15

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

1.1 Giới thiệu vấn đề

Sự phát triển và ra đời của hệ thống máy vi tính đã đánh dấu một bước đột phá trong lịch sử phát triển của con người Máy vi tính trở thành một công cụ không thể thiếu trong cuộc sống cũng như trong công việc Từ những chiếc máy tính thô

sơ ban đầu chỉ có khả năng tính toán và xử lý thông tin hạn chế, ngày nay chúng ta

có thể sở hữu những siêu máy tính với tốc độ xử lý cực nhanh và khả năng lưu trữ lớn Ta sử dụng máy tính trong rất nhiều lĩnh vực khác nhau: tài chính, công nghiệp, nông nghiệp, thể thao…

Ngày nay, có thể nói rằng con người chìm đắm trong dữ liệu nhưng lại thiếu thông tin Với sự tiến bộ của các công nghệ lưu trữ và phần cứng máy tính hiện nay, việc thu thập và lưu trữ dữ liệu đã trở nên đơn giản Nhưng từ khối lượng dữ liệu lớn như vậy, quá trình trích xuất cũng như phân tích được những thông tin quan trọng đối với người quan tâm không phải là một công việc dễ dàng Những phương pháp trích xuất và lưu trữ như sử dụng kho dữ liệu (data warehouse) để hỗ trợ cho việc truy xuất và ra quyết định đã được đề xuất Các kĩ thuật khám phá tri thức cũng được phát triển nhằm giúp chúng ta tìm ra tri thức trong khối lượng dữ liệu khổng

lồ đang có Theo Frawley và W.J (1991)[1], khám phá tri thức trong các cơ sở dữ liệu là một quá trình không đơn giản (non – trivial) với mục tiêu là tìm ra được các mẫu có tính hợp lệ, phổ biến, mang ý nghĩa, có thể hiểu và diễn giải được

Ngày nay, nhiều hình thức kinh doanh mới ra đời mang lại lợi nhuận vô cùng

to lớn Nếu chỉ dựa trên những dữ liệu thông thường đang có thì hoàn toàn không

đủ để giúp nhà đầu tư đưa ra quyết định đúng đắn và kịp thời Một trong những hình thức đầu tư phổ biến hiện nay là đầu tư chứng khoán Bên cạnh kinh nghiệm và hiểu biết của các nhà đầu tư, nếu như ta áp dụng được các kĩ thuật khai phá dữ liệu lên

dữ liệu chứng khoán thì chắc chắn sẽ hỗ trợ rất nhiều trong việc dự báo sự biến động về giá của các cổ phiếu cũng như mối liên hệ giữa các cổ phiếu mà nhà đầu tư

Trang 16

quan tâm Do đó, luận văn sẽ sử dụng tập dữ liệu chuỗi thời gian trong lĩnh vực này

để thực hiện các minh họa của đề tài

Hiện nay nhiều công trình liên quan tới phân tích dữ liệu chứng khoán đã được thực hiện trong thời gian qua Trong lĩnh vực dự báo, người ta sử dụng mô

hình ARIMA (AutoRegressive Integrate Moving Average) do Box-Jenkins đề nghị

(1996) dựa trên mô hình tự hồi quy AR và mô hình trung bình động MA [3-5] Ngoài ra người ta cũng sử dụng các kĩ thuật như mạng nơ-ron hay cây quyết định để

dự đoán hoặc phân lớp các dữ liệu tài chính chứng khoán Jo Ting, Tak-chung Fu,

và Fu-lai Chung [6] cũng tiến hành khai phá dữ liệu liên giao dịch (inter transaction) và nội tại trong cùng một giao dịch (intra transaction) để tìm ra các mẫu phổ biến trong đó các item trong một mẫu không bị giới hạn trong một loại cổ phiếu

mà có thể đến từ nhiều loại cổ phiếu khác nhau Nhóm tác giả C.Cho, Y.Wu [26] nghiên cứu khai phá dữ liệu liên giao dịch dựa trên đồ thị và nhóm của Lu, Han và L.Feng dự đoán khuynh hướng dịch chuyển về giá của cổ phiếu [25]

Khi nhắc đến các dữ liệu tài chính chứng khoán ta thường nhắc đến dữ liệu chuỗi thời gian (time series data) Dữ liệu chuỗi thời gian xuất hiện một cách tự nhiên ở nhiều ứng dụng thực tế trong cuộc sống như: lĩnh vực kinh tế - tài chính (dữ liệu chứng khoán, giá vàng….), lĩnh vực môi trường (lượng mưa hàng ngày, chất lượng không khí….), lĩnh vực y tế (nhịp tim, sóng não…), địa chất, hóa học Một thống kê cho thấy trong 4000 bức ảnh của 15 tờ báo được sản xuất từ năm 1974 tới

1989 thì tới 75% số ảnh là ảnh dữ liệu chuỗi thời gian [7] Rõ ràng mức độ phổ biến của dữ liệu chuỗi thời gian là rất lớn Một chuỗi thời gian là chuỗi trị số thực, mỗi trị biểu diễn một giá trị đo tại những thời điểm cách đều nhau [18] Khi nhắc đến dữ liệu chuỗi thời gian, ta cần phải lưu ý đến thứ tự của các sự kiện xảy ra trên chuỗi thời gian đó vì nếu thay đổi thứ tự hoặc dịch chuyển thời điểm xảy ra các sự kiện thì

dữ liệu hoàn toàn bị biến đổi Dữ liệu chuỗi thời gian cũng thường rất lớn vì nó được lưu trữ liên tục trong nhiều năm và khoảng cách giữa 2 thời điểm đo đạc liền

kề nhau có khi rất nhỏ (vài ms đối với dạng dữ liệu địa chất hoặc y tế)

Trang 17

Hình 1.1 Minh họa dữ liệu chuỗi thời gian cổ phiếu S&P500

Trong quá trình xem xét và đánh giá dữ liệu chuỗi thời gian, ta thường xem xét một số tính chất tiêu biểu: tính khuynh hướng (trend) – các giá trị đo trên chuỗi thời gian có khuynh hướng tăng hoặc giảm xét về lâu dài, tính mùa – các mẫu phổ biến xuất hiện lại sau những khoảng thời gian cố định (năm này qua năm khác theo mùa), tính chu kì - dữ liệu biến đổi có quy luật theo chu kì (chẳng hạn từ 5 tới 7 năm thì lặp lại), tính ngẫu nhiên - dữ liệu chuỗi thời gian không mang tính chất giống 3 tính chất vừa nêu ở trên

Chính vì mức độ phổ biến, độ lớn chiều dài cũng như những tri thức tiềm ẩn

có thể có trong dữ liệu chuỗi thời gian, người ta bắt đầu quan tâm tới quá trình khai phá dữ liệu chuỗi thời gian Khai phá dữ liệu chuỗi thời gian được xem là thử thách đứng hàng thứ 3 trong số 10 thử thách lớn của khai phá dữ liệu nói chung [46] [35]

đã chỉ ra rằng lĩnh vực này là một trong những lĩnh vực phát triển và nhận được nhiều sự quan tâm nhất gần đây Hầu hết các lĩnh vực thống kê tài chính, địa lý, y tế… đều áp dụng khai phá dữ liệu chuỗi thời gian để hỗ trợ cho quá trình phân tích

và rút trích tri thức từ tập dữ liệu của họ

Các tác vụ tiêu biểu khi nhắc đến xử lý chuỗi thời gian: thao tác đánh chỉ mục (indexing) do Chakrabarti (2002)[8], Kahveci và Singh (2001) [9], Popivanov (2002) [10] … đề xuất và nghiên cứu; kĩ thuật gom cụm (clustering) do Aach and Church, (2001) [11], Kalpakis (2001) [12], Keogh và Pazzani (1998) [13] đề xuất;

kĩ thuật phân lớp (classification) do Geurts (2001) [14], Keogh và Pazzani (1998) [13] đề xuất và nghiên cứu; kĩ thuật dự đoán (prediction); kĩ thuật tổng kết

Trang 18

(summary), kĩ thuật tìm kiếm bất thường (anomaly detection) do Guralnik và Srivastava (1999) [15], Keogh và các cộng sự (2002) [16],… đề xuất; kĩ thuật tìm kiếm motif do Praval Patel, E.Keogh, J.Lin, S.Lonardi nghiên cứu [17]; kĩ thuật tìm mẫu phổ biến do J.Han, H.Cheng [27] hay S.Luhr, G.West [24] và E.Keogh, P.Smyth [23]… nghiên cứu

Một trong những bài toán khai phá dữ liệu chuỗi thời gian cơ bản là khai phá luật kết hợp cũng như khai phá mẫu tuần tự phổ biến [1] Quá trình khai phá luật đem lại cho chúng ta nhiều thông tin có ý nghĩa nhưng đây không phải là một công việc dễ dàng [44] Quá trình này thường gồm 2 bước là tìm ra các mẫu phổ biến rồi sau đó dẫn xuất ra các luật kết hợp Phạm vi của luận văn tập trung vào bước thứ nhất

Lý do mà ta quan tâm tới việc khai phá mẫu xu hướng tuần tự từ tập dữ liệu chuỗi thời gian chính là bản chất tuần tự của dữ liệu chuỗi thời gian (các sự kiện được ghi nhận tại những thời điểm cách đều nhau và có thứ tự) Khai phá mẫu tuần

tự phổ biến là quá trình tìm ra các mẫu xuất hiện thường xuyên có thứ tự hoặc là các chuỗi con xuất hiện thường xuyên trong dữ liệu chuỗi thời gian Khác với cơ sở dữ liệu tuần tự thông thường, khi áp dụng phương pháp khai phá mẫu tuần tự phổ biến trên dữ liệu chuỗi thời gian ta phải quan tâm tới khoảng cách chính xác giữa các thời điểm xảy ra sự kiện Từ những mẫu tuần tự phổ biến này, ta có thể ứng dụng để xác định các motif thường gặp trong dữ liệu chuỗi thời gian hoặc xa hơn nữa là tìm

ra các mối quan hệ giữa các mẫu thường xuyên

Một ví dụ về khai phá mẫu tuần tự phổ biến là dựa vào giá đóng cửa của các loại cổ phiếu, người ta có thể rút ra một kết luận như sau: “Giá cổ phiếu công ty X

sẽ tăng 2 phiên liên tiếp rồi giảm trong 3 phiên tiếp theo” hoặc thậm chí là mối liên

hệ giữa 2 loại cổ phiếu như “Giá cổ phiếu X sẽ tăng liên tục trong 2 phiên rồi sau đó

5 ngày giá cổ phiếu Y sẽ giảm trong 3 phiên tiếp theo” Rõ ràng những thông tin có được như vậy là rất có giá trị và nếu như ta có thể tận dụng được kĩ thuật khai phá này thì sẽ đem lại nhiều hỗ trợ đầu tư phù hợp trong kinh doanh

Trang 19

Ngoài ra đề tài cũng sẽ tập trung đánh giá về hiệu suất để đảm bảo chương trình thực hiện phép khai phá trong một thời gian và hao phí trong phạm vi cho phép

Trong quá trình thực hiện, đề tài sẽ sử dụng lại một số kĩ thuật phổ biến trong quá trình xử lý cũng như khai phá dữ liệu chuỗi thời gian đã có sẵn như: rút trích đặc trưng, kĩ thuật tiền xử lý, kĩ thuật tìm motif, kĩ thuật thu giảm chiều (dimensionality reduction), kĩ thuật rời rạc hóa (data discretization), kĩ thuật biến đổi sang chuỗi kí tự, và các kĩ thuật trong khai phá dữ liệu chuỗi tuần tự phổ biến

1.4 Ý nghĩa đề tài

Ý nghĩa thực tiễn: hiện nay quá trình phân tích và xử lý dữ liệu tài chính,

đặc biệt là dữ liệu chứng khoán đóng một vai trò quan trọng trong nền kinh tế thế giới nói chung và Việt Nam nói riêng Đề tài không chỉ cung cấp cho người dùng những thông tin hữu ích về riêng một đối tượng cụ thể mà trên hết nó còn có khả năng thể hiện mối quan hệ giữa các đối tượng liên quan Kết quả của đề tài có thể

Trang 20

giúp ta phân tích biến động trong quá khứ và dẫn ra những xu hướng trong tương lai của từng loại cổ phiếu (tăng, giảm ….) Ngoài ra ta cũng cho phép nhà đầu tư nhìn thấy được sự liên hệ giữa các loại cổ phiếu khác nhau và ý nghĩa của những mối quan hệ này, từ đó có thể chọn lựa việc đầu tư vào nhóm cổ phiếu sao cho có hiệu quả và giảm bớt rủi ro

Ý nghĩa khoa học: Đóng góp đầu tiên của luận văn là đề xuất ra một khuôn

mẫu (template) gọi là “mẫu xu hướng tuần tự phổ biến liên đối tượng” hỗ trợ giải quyết vấn đề khai phá mẫu phổ biến trên tập dữ liệu chuỗi thời gian Đa số các công trình khai phá mẫu xu hướng tuần tự đã có chỉ tập trung khai phá trên cơ sở dữ liệu chuỗi (sequential database) - nghĩa là bỏ qua yếu tố thời khoảng giữa các sự kiện (chỉ quan tâm sự kiện A xảy ra trước B chứ không quan tâm là trước bao lâu) Đề tài sẽ có khả năng tìm ra các mẫu phổ biến tuần tự mà vẫn giữ lại đúng tính chất thời khoảng vừa nêu Mặt khác, các công trình trước đây chỉ tập trung khai phá trên một chuỗi cụ thể (một đối tượng nhất định), luận văn không chỉ tiến hành khai phá trên một đối tượng cụ thể mà còn mở rộng ra khai phá trên nhiều đối tượng Mẫu được tìm thấy có thành phần đến từ nhiều đối tượng khác nhau Vì vậy kết quả của việc khai phá không chỉ gói gọn trong việc đánh giá một đối tượng cụ thể (một chuỗi thời gian) mà hơn thế, đề tài giúp cho chúng ta có thể thấy được mối quan hệ

cụ thể giữa các đối tượng có liên quan tới nhau (thông qua các mẫu phổ biến tuần tự liên đối tượng) Từ đó khối lượng tri thức mà người sử dụng có được sẽ tăng lên, tri thức rút trích sẽ mang tính tổng thể hơn Cuối cùng, luận văn đề xuất ra hai giải thuật nhằm hỗ trợ cho quá trình tìm kiếm các mẫu phổ biến tuần tự liên đối tượng vừa nêu và chạy thực nghiệm trên dữ liệu tài chính thật sự Thời gian chương trình thực hiện khai phá phải nằm trong một giới hạn cho phép

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

Luận văn được trình bày theo bố cục sau:

Chương 1 - Giới thiệu đề tài: đưa ra nguyên nhân cũng như tính cấp thiết cho việc nghiên cứu và phát triển đề tài

Trang 21

Chương 2 - Cơ sở lý thuyết: giới thiệu những cơ sở và khái niệm nền tảng cho phương pháp luận và quá trình hiện thực của luận văn

Chương 3 - Các công trình nghiên cứu liên quan: giới thiệu các công trình lý thuyết có liên quan tới đề tài

Chương 4 - Hướng tiếp cận giải quyết vấn đề: giới thiệu các giai đoạn chính cho quá trình khai phá mẫu xu hướng tuần tự liên đối tượng trên cơ sở dữ liệu chuỗi thời gian

Chương 5 - Thực nghiệm: trình bày quá trình đo đạc và so sánh kết quả khi

sử dụng hai giải thuật do luận văn đề xuất

Chương 6 - Kết luận: đóng góp của luận văn và hướng nghiên cứu trong tương lai

Trang 22

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

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

2.1.1 Time Series

Một chuỗi thời gian (time series) là chuỗi trị số thực, mỗi trị biểu diễn một

giá trị đo tại những thời điểm cách đều nhau [18] Hoặc chuỗi thời gian T = t 1 , t 2 ,

…., t m là một tập có thứ tự m biến mang giá trị số thực hoặc giá trị số nguyên được

ghi nhận tại những thời điểm cách đều nhau [17]

Ngoài ra người ta cũng đưa ra định nghĩa về chuỗi thời gian đơn biến và chuỗi thời gian đa biến Chuỗi thời gian đơn biến là một chuỗi thời gian chỉ chứa một quan sát được ghi nhận một cách tuần tự tại những khoảng thời gian cách đều nhau Chuỗi thời gian đa biến là chuỗi thời gian mà trong đó tại một thời điểm ta có nhiều quan sát (biến) khác nhau

2.1.2 Chuỗi con (Subsequence)

Nếu ta có một chuỗi thời gian T có chiều dài m thì một chuỗi con C của T sẽ chứa một phần gồm những giá trị ở những vị trí nối tiếp nhau trong T sao cho C có chiều dài n (n < m) và bắt đầu tại một vị trí p trong T [17]

C = tp,….,tp+n-1 với 1 ≤ p ≤ m – n + 1 Thông thường người ta sử dụng cửa sổ trượt (sliding window) để trích xuất các chuỗi con từ chuỗi thời gian T Hình 2.1 cho thấy ví dụ về 3 chuỗi con A,B,C trong một chuỗi thời gian (được đánh dấu bởi mũi tên)

Hình 2.1 Các chuỗi con trong một chuỗi thời gian [17]

Trang 23

2.1.3 Trùng khớp (Match)

Cho một số thực dương R (thông số về phạm vi khoảng cách giúp xác định

sự trùng khớp giữa 2 chuỗi con do người dùng định nghĩa) và một chuỗi thời gian

T Biết rằng T chứa một chuỗi con C bắt đầu tại thời điểm p và một chuỗi con M bắt đầu tại q, nếu khoảng cách D giữa 2 chuỗi nhỏ hơn hoặc bằng R, nghĩa là D(C, M)

 R thì ta nói rằng M là một chuỗi con trùng khớp với C và ngược lại

Hình 2.2 M là một chuỗi con trùng khớp của chuỗi con C trong chuỗi thời gian

T [17]

2.1.4 Trùng khớp tầm thường (Trivial Match)

Cho một chuỗi thời gian T chứa một chuỗi con C bắt đầu tại vị trí p và một chuỗi con M đang trùng khớp (match) với C và bắt đầu tại vị trí q Ta định nghĩa M trùng khớp tầm thường với C nếu p = q (2 chuỗi con có cùng điểm bắt đầu) hoặc không xuất hiện một chuỗi con M’ bắt đầu tại vị trí q’ sao cho D(C,M’) > R và q < q’ < p hoặc p < q’ < q Hình 2.3 cho thấy một ví dụ về trùng khớp tầm thường

Hình 2.3 Các trùng khớp tầm thường bên trái và bên phải của chuỗi C [17]

Trang 24

2.1.5 Trùng khớp không tầm thường (Non-trivial match)

Hai chuỗi con được gọi là trùng khớp không tầm thường nếu như chúng trùng khớp nhau và được chia cắt bởi một chuỗi con khác không trùng khớp với cả

2 chuỗi trên [17]

2.1.6 Motif

Một chuỗi con (subsequence) trong chuỗi thời gian T được lặp lại ít nhất một lần trong T được xem là một motif Lưu ý là không cần phải trùng khớp toàn bộ (nghĩa là giống nhau hoàn toàn) thì mới được xem là motif [17]

1 – motif: chuỗi con có nhiều trùng khớp không tầm thường nhất (kí hiệu là

2.2 Xử lý dữ liệu chuỗi thời gian

Đối với dữ liệu chuỗi thời gian, thông thường ta phải xem xét một số khái niệm được sử dụng để hỗ trợ cho việc so sánh và khai phá

2.2.1 Các độ đo tương tự (similarity measurement)

Đối với dạng bài toán tìm kiếm tương tự trên dữ liệu chuỗi thời gian, ta dùng một công thức để tính độ tương tự giữa hai chuỗi thời gian

Trang 25

2)(

Độ đo xoắn thời gian động [18]

Từ 2 chuỗi thời gian X và Y, ta tính khoảng cách thông qua việc ánh xạ một điểm từ chuỗi thời gian này sang nhiều điểm của chuỗi thời gian kia 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) do Berndt và Clifford (1996) giới thiệu

Phương pháp này cho phép mở rộng hoặc thu hẹp các tín hiệu (signals) theo chiều thời gian Ý tưởng chính như sau:

Giả sử ta có 2 chuỗi thời gian X và Y như sau:

X = x1, x2, …, xn

Y = y1, y2, …., ym

Ta cho phép sự mở rộng của từng chuỗi thời gian bằng cách lặp lại các phần

tử Sau quá trình này ta được hai chuỗi mới là X’ và Y’ Độ đo Euclid sau đó được

áp dụng cho hai chuỗi X’ và Y’ này:

Trang 26

Hình 2.5 Tính khoảng cách theo DTW [18]

Ma trận M với mij = D(xi, yj) (1)

Hình 2.6 Ma trận cho DTW [18]

Người ta áp dụng giải thuật quy hoạch động để tính khoảng cách DWT giữa

2 chuỗi thời gian Đầu tiên khoảng cách con D(i, j) được tính trước rồi sau đó tiếp tục tính cho tới khi D(m,n) được tính:

D(i, j) = | xi – yi | + min (D(i – 1, j), D(i – 1, j – 1), D(i, j – 1)) (1)

Ưu điểm: kết quả tính chính xác hơn so với độ đo Euclid và cho phép nhận dạng mẫu có chiều dài khác nhau nhưng có hình dạng giống nhau

Khuyết điểm: thời gian chạy lâu [18]

Độ đo chuỗi con chung dài nhất (Longest Common Subsequence)[18]

Phương pháp này cho phép bỏ qua những dữ liệu nhiễu khi so sánh

Có thể áp dụng quy hoạch động cho bài toán tìm chuỗi con chung dài nhất

Trang 27

Ưu điểm: trực quan và cho phép loại bỏ nhiễu

Khuyết điểm: phải tìm ra một giải thuật và cấu trúc dữ liệu phù hợp để giảm bớt không gian hao phí hoặc thời gian tìm kiếm (nếu giải quyết bằng đệ qui hoặc qui hoạch động) [18]

2.2.2 Chuẩn hóa dữ liệu (Data Normalization)

Thông thường trước quá trình thu giảm số chiều (dimensionality reduction) hoặc rời rạc hóa dữ liệu (discretization), chúng ta thường chuẩn hóa dữ liệu chuỗi thời gian trước Lý do để ta chuẩn hóa dữ liệu là do dữ liệu đầu vào (ở đây là dữ liệu chuỗi thời gian) thường có biên độ dao động rất khác nhau và việc so sánh trực tiếp dữ liệu gốc trở nên khó khăn Một trong những phương pháp chuẩn hóa dữ liệu thường được áp dụng là phương pháp Z-score (phương pháp chuẩn hóa dựa trên độ lệch chuẩn và giá trị trung bình)

Ngoài ra cũng có nhiều phương pháp chuẩn hóa dữ liệu khác như phương pháp chuẩn hóa theo min-max hay decimal scaling [1]

2.3 Khai phá mẫu tuần tự phổ biến

Trang 28

Agrawal và Srikant đề xuất lần đầu năm 1995 [1] dựa trên chuỗi mua sản phẩm của khách hàng Khai phá mẫu tuần tự được ứng dụng trong nhiều lĩnh vực như: phân tích thị trường, phân tích mẫu truy cập web, dự đoán nhu cầu mua sắm của khách hàng….Sau khi có được các mẫu tuần tự, ta sẽ tìm luật tuần tự: biểu hiện quan hệ có thể có giữa hai loạt sự kiện (sequential event) và trong đó có một loạt sự kiện xảy ra trước một loạt sự kiện khác

2.3.2 Một số khái niệm thường gặp trong khai phá mẫu tuần tự phổ biến

Cho I = {I1, I2, … Ip} là tập tất cả items

Tập phần tử (itemset): là một tập khác rỗng và không có thứ tự các items Một chuỗi (sequence) là một danh sách có thứ tự các sự kiện (events)

Mỗi một chuỗi s được kí hiệu <e1, e2, , en> sao cho sự kiện e1 xảy ra trước

sự kiện e2, e2 xảy ra trước e3 ,

Chiều dài của một chuỗi là số lượng item có trong chuỗi Chẳng hạn một chuỗi S có k item được gọi là k – sequence VD: <(AB)C> là một 3 – sequence và

có kích thước là 2

Chuỗi con: chuỗi β = <b1 b2 … bm> được gọi là chuỗi con của chuỗi α = <a1

a2 … an> hay α là chuỗi cha của β, ký hiệu β ⊆ α, nếu tồn tại những số nguyên 1≤ j1

< j2 < … < j2 ≤ m sao cho b1 ⊆ aj1, b2 ⊆ aj2, …, bm ⊆ ajm Ví dụ chuỗi <(B)(AC)> là chuỗi con của <(AB)(E)(ACD)>; nhưng <(AB)(E)> không phải là chuỗi con của chuỗi <(ABE)>

Cơ sở dữ liệu chuỗi là một tập hợp các bộ dữ liệu có dạng (sid, s), trong đó sid là mã định danh của chuỗi và s là chuỗi các itemset

Bảng 2.1 Ví dụ về cơ sở dữ liệu chuỗi [1]

Trang 29

Độ hỗ trợ (support): Cho cơ sở dữ liệu chuỗi D, mỗi chuỗi có một chỉ số

định danh duy nhất Độ hỗ trợ tuyệt đối của một mẫu tuần tự f là tổng số chuỗi trong D có chứa f Độ hỗ trợ tương đối của f là tỉ lệ phần trăm chuỗi trong D chứa

f Ở đây mức hỗ trợ tuyệt đối hoặc tương đối sẽ được sử dụng chuyển đổi qua lại, kí

hiệu là sup(f)

Mẫu tuần tự phổ biến: Cho trước ngưỡng hỗ trợ tối thiểu (minSup) xác định

bởi người dùng, minSup ∈ (0, 1] Một mẫu tuần tự f được coi là phổ biến nếu độ hỗ

trợ của nó lớn hơn hoặc bằng minSup: sup(f) ≥ minSup, khi đó f được gọi là mẫu

𝑐 =𝑖 𝑤

𝑛 𝑤𝑖

𝑗 =𝑤 𝑖−1 +1𝑛

Để thu giảm một chuỗi dữ liệu thời gian từ không gian n chiều thành không gian w chiều, ta có thể chia dữ liệu thành w phần bằng nhau được gọi là các frame Giá trị trung bình của các điểm nằm trong một frame sẽ được tính toán và thông qua vector gồm w giá trị đó ta đã có được một biểu diễn thu giảm về số chiều của chuỗi

dữ liệu thời gian gốc

Trang 30

Hình 2.7 Biến đổi thu giảm chiều theo PAA [18]

Ưu điểm: dễ tính toán (chỉ cần tính giá trị trung bình các điểm trong từng khoảng), hỗ trợ nhiều độ đo tương tự khác nhau (chẳng hạn các hàm đo khoảng cách có trọng số, xoắn thời gian động…)

Khuyết điểm: làm mất đi một số thông tin quan trọng cho quá trình khai phá (chẳng hạn các điểm cực trị, góc…) và việc xác định được số segment cũng đóng vai trò quan trọng

2.5 Phương pháp biến đổi chuỗi thời gian sang dạng kí tự SAX (Symbolic Aggregate Approximation)

Đây là một trong những phương pháp biểu diễn chuỗi thời gian [17-18] đã được chứng minh là có khả năng giữ lại những thông tin có ý nghĩa từ dữ liệu gốc sau khi biến đổi và tạo ra những kết quả hữu dụng trong các vấn đề liên quan tới gom cụm và phân loại dữ liệu Điểm mạnh của phương pháp này là giữ lại được các tính chất của dữ liệu gốc và có thể áp dụng các giải thuật cơ bản để so sánh chuỗi các kí tự sau khi biến đổi

Trang 31

Ý tưởng chính của phương pháp này là biến đổi dữ liệu thành một chuỗi kí tự

rời rạc Trong đó số lượng kí tự dùng để biểu hiện được kí hiệu là a (và a tương đối

nhỏ) Để chuyển đổi một dữ liệu chuỗi thời gian gốc ban đầu thành một chuỗi kí tự thì đầu tiên ta phải chuẩn hóa dữ liệu Sau đó, ta sẽ tiến hành hai bước tiếp theo là thu giảm số chiều và chuyển kết quả thu giảm sang dạng kí tự (symbol)

Trong bước thu giảm số chiều, phương pháp PAA (Piecewise Aggregate Approximation) được sử dụng Chuỗi dữ liệu thời gian T với số chiều n được chia thành w phần bằng nhau, sau đó giá trị của từng phần được xấp xỉ và thể hiện bằng một hệ số duy nhất là giá trị trung bình cộng Sau đó để chuyển hệ số vừa nêu sang các kí tự, ta sử dụng các breakpoints (điểm ngắt) để chia không gian phân tán thành

a khu vực (region) có xác suất bằng nhau

Breakpoints: là một danh sách có thứ tự các số B = 1, 2, …, a và có thể được xác định thông qua một bảng thống kê Ví dụ sau cho thấy các breakpoints ứng với giá trị a từ 2 tới 8 [17-18]

Hình 2.8 Minh họa breakpoints cho phương pháp SAX [17]

Các breakpoints này được xác định sao cho xác suất của các segments (có được từ PAA) phân bố ở trong các phần là xấp xỉ bằng nhau Trường hợp ta không

sử dụng breakpoints thì các kí tự ta dùng sẽ có xác suất xuất hiện khác nhau và dẫn đến một số chuỗi con có khả năng xuất hiện nhiều hơn các chuỗi con khác

Một khi các breakpoints được xác định thì mỗi khu vực sẽ được gán cho một

kí tự và phép gán này được thực hiện từ dưới lên Những khu vực thấp nhất được gán bằng “a”, những khu vực cao hơn được gán bằng “b” và tiếp tục cho đến hết chuỗi

Trang 32

Hình 2.9 Biểu diễn bằng SAX [17-18]

Từ một chuỗi dữ liệu thời gian, ta thu giảm số chiều bằng phương pháp PAA, sau đó sử dụng các breakpoints (ở đây ta dùng 2 breakpoints để chia làm 3

khu vực) và cuối cùng ta có được một chuỗi thời gian là một word: baabccbc

Các độ đo cơ bản đƣợc áp dụng cho SAX:

Giả sử ta có hai chuỗi thời gian Q và C có cùng chiều dài n, nếu áp dụng độ

đo tương tự Euclid:

Sau khi chuyển các chuỗi con thành dạng PAA (gọi là 𝑄 và 𝐶 ) thì ta có thể

có được một xấp xỉ cận dưới của công thức Euclid như sau:

Cuối cùng nếu ta chuyển dữ liệu thành dạng chuỗi kí tự, ta có thể định nghĩa một hàm MINDIST trả về khoảng cách nhỏ nhất giữa hai chuỗi thời gian

Hàm dist ở trên có thể được tính dưa vào một bảng tìm kiếm như sau:

Bảng 2.2 Bảng độ đo khoảng cách giữa các kí tự [17-18]

Trang 33

Với r: chỉ số hàng và c: chỉ số cột, dữ liệu cho từng ô (r,c) có thể được tính theo công thức sau:

Khoảng cách giữa 2 chuỗi kí tự sẽ được tính dựa vào khoảng cách của từng cặp kí tự

2.6 Phương pháp biến đổi chuỗi thời gian sang dạng kí hiệu khuynh hướng

Phương pháp biến đổi chuỗi dữ liệu gốc sang dạng kí hiệu khuynh hướng được dựa trên ý tưởng về đường trung bình di động của dữ liệu chứng khoán đã từng được trình bày trong bài báo của Jong P Yoon, Yixin Luo, và Junghyun Nam [20, 33]

Ký hiệu khuynh hướng (trend indicator) bao gồm 6 cấp độ so sánh khác nhau giữa hai chuỗi thời gian Đối với dữ liệu chứng khoán, độ dịch chuyển giá ngắn hạn được biểu diễn bởi sự tương quan giữa giá trị hiện tại của một cổ phiếu so với đường dịch chuyển trung bình 13 tuần Hay nói cách khác, ta sẽ phải tính toán một đường bao 3% (5% hoặc 7% tùy người sử dụng) so với đường dịch chuyển trung bình 13 tuần Đường bao này sẽ giúp lọc ra những dao động ngắn hạn Cụ thể: đối với thời gian t = 0, 1, 2…., n – 1, Mm(t) là đường thẳng trung bình di động m, Mk(t)

là đường thẳng trung bình di động k (với m < k) Với dữ liệu chứng khoán ta có m =

13 và k = 40 Các thông số m và k được lựa chọn tùy vào người sử dụng chứ không bắt buộc phải cố định như trong bài báo Ở đây m = 13 và k = 40 là hai giá trị hay được sử dụng nhất trong lĩnh vực chứng khoán Giả sử kích thước đường bao là e thì 6 ký hiệu khuynh hướng sẽ được định nghĩa như sau

A: Đường dịch chuyển trung bình ngắn hạn nằm phía trên đường dịch

chuyển trung bình dài hạn.Trong trường hợp này, khuynh hướng lên của cổ phiếu trong ngắn hạn đã yếu dần và giá hiện tại chưa lấn vào e% cận dưới của đường dịch chuyển trung bình ngắn hạn Khi này Mk(t) < Mm(t) và s(t) < Mm(t) – Mm(t) * e

Trang 34

B: Đường dịch chuyển trung bình ngắn hạn nằm phía trên đường dịch

chuyển trung bình dài hạn.Trong trường hợp này, khuynh hướng lên của cổ phiếu trong ngắn hạn vẫn còn tương đối mạnh và giá trị hiện tại đã lấn vào e% cận dưới của đường dịch chuyển trung bình ngắn hạn Khi này Mk(t) < Mm(t) và s(t) > Mm(t) – Mm(t) * e

C: Khi có sự giao nhau của 2 đường trung bình di động, trong đó đường

trung bình di động ngắn hạn đã vượt lên trên đường dịch chuyển trung bình dài hạn (trước đó nó nằm dưới): Mk(t) < Mm(t)

D: Khi có sự giao nhau của 2 đường trung bình di động, trong đó đường

trung bình di động ngắn hạn đã đi xuống so với đường dịch chuyển trung bình dài hạn (trước đó nó nằm trên): Mk(t) > Mm(t)

E: Đường dịch chuyển trung bình ngắn hạn nằm phía dưới đường dịch

chuyển trung bình dài hạn.Trong trường hợp này, khuynh hướng xuống trong ngắn hạn của cổ phiếu vẫn còn mạnh và giá cổ phiếu chưa lấn vào e% cận trên của đường dịch chuyển trung bình ngắn hạn Khi này Mk(t) > Mm(t) và s(t) < Mm(t) + Mm(t) * e

F: Đường dịch chuyển trung bình ngắn hạn nằm phía dưới đường dịch

chuyển trung bình dài hạn.Trong trường hợp này, khuynh hướng xuống trong ngắn hạn của cổ phiếu đã yếu dần và giá cổ phiếu đã lấn vào e% cận trên của đường dịch chuyển trung bình ngắn hạn Khi này Mk(t) > Mm(t) và s(t) > Mm(t) + Mm(t) * e

Bảng 2.3 tóm tắt 6 dạng kí hiệu được sử dụng sau khi biến đổi từ dữ liệu thời gian gốc và ý nghĩa của chúng

Bảng 2.3 Sáu loại kí tự sử dụng cho quá trình biến đổi sang chuỗi kí tự dành cho dữ liệu cổ phiếu

A khuynh hướng tăng yếu

B khuynh hướng tăng mạnh

C bắt đầu có khuynh hướng tăng

D bắt đầu có khuynh hướng giảm

E khuynh hướng giảm mạnh

F khuynh hướng giảm yếu

Trang 35

2.7 Đại số quan hệ thời gian Allen

Năm 1983, James F Allen [28 - 29] đã xuất bản một bài báo trong đó ông giới thiệu 13 mối quan hệ cơ bản giữa các thời khoảng mang tính riêng biệt và đầy

đủ Mười ba mối quan hệ cơ bản của Allen được mô tả cụ thể trong bảng 2.4 Bảng này định nghĩa tất cả các mối quan hệ có thể tồn tại giữa hai thời khoảng đã xác định trước đó Mỗi quan hệ được biểu diễn bằng một lược đồ thể hiện mối liên quan giữa 2 thời khoảng a và b Lưu ý khi này ta xem thời gian đang dịch chuyển từ trái qua phải Hình đầu tiên trong bảng cho ta thấy mối quan hệ giữa a và b là mối quan hệ đi trước “precedes” nghĩa là khi này a sẽ kết thúc trước khi b bắt đầu và có một khoảng cách về thời gian giữa a và b

Bảng 2.4 Mười ba mối quan hệ cơ bản Allen [29]

Các mối quan hệ trên được sắp xếp theo thứ tự cấp độ từ lúc a bắt đầu trước

b cho tới khi a xảy ra đồng thời với b và cuối cùng là a bắt đầu sau b Ta có nhận xét là 6 cặp trong 13 mối quan hệ này mang tính thuận nghịch Chẳng hạn như nếu

ta có a đi trước b (a precedes b) thì ta cũng sẽ có một quan hệ nghịch đảo là b được

đi trước bởi a (b preceded by a) Riêng mối quan hệ “equals” thì thuận nghịch với chính nó Từng cặp kí hiệu quan hệ thuận nghịch sẽ bao gồm chữ viết thường và chữ viết hoa của cùng một kí tự (ví dụ p và P)

Bảng 2.5 Các cặp quan hệ thuận nghịch [29]

Trang 36

2.8 Generic Dictionary trong C#

Để đảm bảo độ phức tạp cho các phép toán thêm, xóa và tìm kiếm với điều kiện “=” là O(1), Generic Dictionary được xây dựng dựa trên một bảng băm (hash table) Bảng băm (hash table) là một cấu trúc dữ liệu bao gồm một mảng các

“buckets” dùng để chứa các phần tử Cách thức bảng băm xử lý quá trình chèn một phần tử mới được thực hiện bằng cách trích xuất ra mã băm (hash code) cho từng đối tượng Nhờ mã băm đó mà ta có thể xác định được chính xác bucket để đặt item (thông thường thực hiện bằng những phép tính đơn giản để điều chỉnh mã băm của một đối tượng cho phù hợp với kích thước của mảng các buckets - ở đây là hàm modulo) Bảng băm sẽ tự mở rộng khi số lượng phần tử vượt quá kích thước cho phép (mở rộng theo số nguyên tố prime number)

Hàm băm mà Dictionary trong C# thường sử dụng là một hàm virtual sau:

public virtual int GetHashCode( )

Hàm này là một trong những hàm có sẵn trong System.Object System.Object là lớp cơ bản mà tất cả các đối tượng trong C# đều thừa kế, do đó ta hoàn toàn có thể override lại hàm này cho phù hợp với yêu cầu Tất cả các thao tác như thêm, xóa, tìm kiếm đều có liên quan tới hàm GetHashCode này Tuy nhiên mã băm trả về bởi hàm trên không phải là vô hạn (Int32 – nghĩa là tối đa 232

giá trị có thể được trả về bởi hàm trên), như vậy hoàn toàn có thể xảy ra đụng độ (collision) Collision nghĩa là hai phần tử khác nhau nhưng lại có cùng mã băm và như vậy chúng lại nằm cùng vị trí bucket Dạng băm của Dictionary là dạng băm mở (cho phép khóa có cùng địa chỉ, lúc này mỗi mục địa chỉ sẽ là một danh sách liên kết các phần tử có cùng địa chỉ)

Phương pháp giải quyết đụng độ:

Dictionary xử lý đụng độ bằng phương pháp “chaining”: sử dụng hai array có cùng số phần tử

- Buckets array: chứa chỉ mục mà đối tượng được lưu trữ trong mảng bucket

- Entries array: chứa các phần tử thật sự được lưu trữ nếu nằm trong cùng một bucket (thường lưu dưới dạng danh sách liên kết)

Trang 37

Hình 2.10 Minh họa cách xử lý đụng độ trong bảng băm

Như hình vẽ trên, ta thấy nếu như 2 đối tượng Obj1 và Obj2 được băm vào cùng một vị trí, thì Dictionary sẽ lưu trữ 2 đối tượng đó vào một danh sách liên kết

Nếu như ta muốn tìm kiếm Obj1 và Obj2 thì ta cần phải tốn thêm chi phí

duyệt danh sách liên kết này và so trùng hai phần tử (tham chiếu) bằng hàm Equal( ) được cung cấp sẵn

Từ cơ sở lý thuyết trên, ta thấy được chi phí trung bình khi tìm kiếm một phần tử là tỉ số giữa số phần tử đang có chia cho kích thước của Dictionary Tuy nhiên Dictionary luôn cố gắng duy trì tỉ số giữa số phần tử nó đang chứa và kích thước của nó là 1-1 (kích thước Dictionary không nhỏ hơn số lượng item trong đó)

Do đó chi phí trung bình xem như là O(1)

Trang 38

CHƯƠNG 3 : CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN

3.1 Các phương pháp tìm motif trong dữ liệu chuỗi thời gian

3.1.1 Phương pháp tìm motif đối với cơ sở dữ liệu chuỗi thời gian lớn

Nhóm tác giả P.Patel, E.Keogh, J.Lin, S.Lonardi (2002) [17] đã đề xuất một phương pháp tìm motifs trên dữ liệu chuỗi thời gian Đầu tiên họ áp dụng phương pháp xấp xỉ gộp từng đoạn (PAA) để thu giảm dữ liệu, sau đó công trình chuyển chuỗi dữ liệu sang dạng kí tự bằng phương pháp SAX Cuối cùng họ sử dụng giải

thuật EMMA để tìm ra motif có chiều dài n cho trước [17]

Đặc điểm của giải thuật EMMA là áp dụng một hàm băm để đưa các chuỗi con tương tự nhau vào cùng một địa chỉ trong bucket Ta cũng lưu trữ vị trí bắt đầu của chuỗi trong bảng băm Sau đó giải thuật sẽ tiến hành khảo sát trên vị trí có nhiều phần tử nhất (gọi là MPC – Most Promising Candidate) Giải thuật cũng áp dụng công thức tính độ tương tự của 2 chuỗi con để xây dựng tập lân cận gồm những phần tử trong MPC và những chuỗi con nằm ở những vị trí khác nhưng có độ tương tự so với phần tử trong MPC vẫn nhỏ hơn một thông số R do người dùng lựa chọn

Sau đó nhóm tác giả sử dụng giải thuật ADM do Shasha và Wang đề xuất [52] để tìm các motif thật sự (true-motif) từ tập ứng viên đã có Lý do ta phải dùng giải thuật ADM là vì hàm tính khoảng cách ở trên chỉ mới áp dụng cho chuỗi dạng

kí tự nên ta phải tiến hành thêm một bước kiểm tra khoảng cách thật sự ở dữ liệu gốc để xem một ứng viên có thật sự là motif hay không Quá trình lặp lại cho tới khi motif tìm được có số lần xuất hiện lớn nhất (1 motif) Giải thuật có thể được mở rộng để tìm k – motif

3.1.2 Phương pháp tìm motif dựa trên MDL

Y.Tanaka và K.Uehara [21] đề xuất phương pháp tìm motif dựa trên một giải thuật có khả năng tìm được độ dài thời khoảng tối ưu của motif Giải thuật tìm độ dài thời khoảng tối ưu (optimum period length) xuất phát từ khái niệm MDL

Trang 39

(Minimum Description Length) - một khái niệm được đề xuất bởi Rissanen (1989) được dùng để đánh giá độ tối ưu của một mô hình ngẫu nhiên

Công trình ra đời xuất phát từ thực tế là thông số chiều dài của motif phải do người dùng tự định nghĩa Điều này dẫn đến việc xác định chiều dài của motif trở thành một vấn đề không đơn giản Nếu như ta áp dụng các giải thuật tìm motif thông dụng như EMMA với các chiều dài motif khác nhau có thể có thì rõ ràng phương pháp đó không khả thi và kém hiệu quả Nhóm tác giả đã đề xuất cách tìm chiều dài motif tự động thông qua khái niệm MDL

Đầu tiên công trình tiến hành chuyển đổi chuỗi thời gian gốc sang dạng chuỗi kí tự bằng cách kết hợp phương pháp PAA và SAX Chiều dài của cửa sổ trượt là Tmin , đây là giá trị chiều dài nhỏ nhất có thể có của motif do người dùng định nghĩa Cuối cùng sau khi có được các chuỗi con dưới dạng chuỗi kí tự, nhóm tác giả gán các kí tự hành vi cho từng chuỗi con đó

Việc khai phá motif được chuyển đổi từ chuỗi dữ liệu thời gian gốc sang khai phá motif trên chuỗi kí tự hành vi

Quá trình trên được tóm tắt như hình vẽ sau:

Hình 3.1 Hình minh họa cho quá trình chuyển đổi [21]

Trang 40

Giải thuật tìm chiều dài mẫu tối ưu được tóm tắt như sau:

Từ chuỗi

~

C giải thuật sử dụng một cửa sổ trượt với chiều dài cố định trượt trên C~ để có được các chuỗi con Lần lượt xem xét những mẫu có số lần xuất hiện nhiều nhất là mẫu tốt nhất của chuỗi kí tự hiện tại Sau đó ta tính hàm MDL và chiều dài mẫu L1, ta cũng đồng thời lưu con trỏ P1 tới vị trí bắt đầu của mẫu Thay thế mẫu bằng một kí tự khác Quá trình trên được lặp lại cho tới khi không còn mẫu nào xuất hiện hơn 2 lần trong chuỗi kí tự

Khi quá trình phân tích trên hoàn thành, mẫu có giá trị MDL nhỏ nhất được xem là mẫu tốt nhất trong C~ Sử dụng chiều dài mẫu là Lp, chiều dài tối ưu của motif được tính như sau:

Topt = Tmin + Lp

Ta xem mẫu này là ứng viên của motif Sau đó nhóm tác giả sử dụng giải thuật EMMA để tìm motif thật sự với tập ứng viên MPC chính là tập ứng viên ta vừa tìm thấy trong quá trình phân tích ở trên

3.2 Một số giải thuật khai phá mẫu phổ biến

Thông qua các giải thuật tìm mẫu phổ biến truyền thống như Apriori hay Growth, luận văn sẽ có được ý tưởng về hướng tiếp cận lặp từng mức trong quá trình khai phá mẫu phổ biến Các giải thuật như GSP và Prefix-Span giúp ta thấy được hình dạng cũng như tính chất tuần tự của các mẫu cần khai phá

FP-3.2.1 Giải thuật Apriori

Giải thuật Apriori [1] là một trong những giải thuật nền tảng được đề xuất bởi R Agrawal và R Srikant (1994) để khai phá tập phần tử phổ biến đối với luật kết hợp luận lý

Đặc tính của giải thuật là sử dụng tri thức có trước về tính chất của các itemset phổ biến Giải thuật triển khai một hướng tiếp cận lặp từng mức, trong đó k-itemsets được dùng để tìm (k + 1) itemsets Đầu tiên tập 1 – itemsets phổ biến được tìm bằng cách duyệt qua toàn bộ tập dữ liệu, đếm số lần xuất hiện của từng item, sau đó chọn những item nào có số lần xuất hiện thỏa ngưỡng hỗ trợ min-sup Ta kí

Ngày đăng: 27/01/2021, 13:49

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