Tải bản đầy đủ (.doc) (66 trang)

Tiểu luận môn khai phá dữ liệuTÍNH SỰ TƯƠNG ĐỒNG CỦA CHUỖI DỮ LIỆU THỜI GIAN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (833.79 KB, 66 trang )

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Chuyên đề
KHAI PHÁ DỮ LIỆU
Tiểu Luận
TÍNH SỰ TƯƠNG ĐỒNG CỦA
CHUỖI DỮ LIỆU THỜI GIAN
MỘT ỨNG DỤNG TRONG CHỨNG KHOÁN
VỚI MÔ HÌNH PAIR-TRADING
Giảng viên: PGS.TS. ĐỖ PHÚC
Học viên : HUỲNH LÊ
Mã số : CH0901026
Lớp: CH CNTTQM K4
TP.HCM - 12/2014
LỜI NÓI ĐẦU
Sự phát triển vượt bậc của các thiết bị lưu trữ cho phép con người lưu trữ lại một lượng
khổng lồ dữ liệu mà họ đã tạo ra trong quá trình sử dụng các hệ thống ứng dụng trong
thực tế. Con người có thể truy xuất nguồn dữ liệu này để trích xuất các báo cáo, thống kê
phục vụ nhu cầu của mình. Bên cạnh đó, dữ liệu bản thân nó còn tìm ẩn những tri thức
mà các kỹ thuật trích xuất, thống kê truyền thống khó có thể tìm ra được. Kỹ thuật khai
phá dữ liệu (Data Mining – DM) đã được nghiên cứu nhằm giúp con người phát hiện
những tri thức tìm ẩn bên trong đó. Những kỹ thuật này có thể kể đến như : tìm luật kết
hợp (association rule), tìm mẫu (pattern), episode, phân lớp (classification), gom cụm
(cluster analysis), dò tìm các phần tử dị biệt (outlier dection)…
Một trong số các bài toán liên quan đến khai phá dữ liệu thời gian (time series data) đó là
vấn đề đo lường sự tương đồng (similarity) của các chuỗi dữ liệu. Nhiều độ đo và giải
thuật đã được các nhà nghiên cứu đưa ra như : độ đo Eucliden, phương pháp xoắn thời
gian động (Dynamic Time Warping -DTW), chuỗi con chung dài nhất (Longest Common
Subsequence – LCSS),…
Một vấn đề khi tính toán sự tương đồng theo các độ đo đó là sự phức tạp của các thuật
toán do phải xử lý trên một chuỗi số liệu rất lớn. Nhiều giải thuật đã đưa ra nhằm khắc


phục nhược điểm đó nhưng lại giảm bớt các tiêu chí khác như : độ chính xác, sai số dữ
liệu.
Tiểu luận này giới thiệu một giải thuật mới : SparseDTW do tác giả Ghazi H. Al-Naymat
đưa ra năm 2009 [Gha08] nhằm đo lường sự tương đồng của dữ liệu theo độ đo DTW.
Đây là một giải thuật hiệu quả cả về không gian bộ nhớ xử lý và độ chính xác tuyệt đối
của kết quả. Trái ngược với các giải thuật nghiên cứu trước đó hi sinh bớt sự chính xác
của kết quả để giảm bớt không gian xử lý. Ý tưởng chính của giải thuật này tận dụng sự
tương đồng nếu có giữ 2 chuỗi dữ liệu theo nguyên lý : nếu hai chuỗi dữ liệu càng tương
đồng thì càng ít thao tác tính toán và càng cần ít không gian tính toán. Giải thuật này
được thử nghiệm cho thấy kết quả vượt trội hơn so với các giải thuật tính toán trước đó
cả về thời gian xử lý và độ chính xác của kết quả tìm được.
Giải thuật này được ứng dụng vào việc tìm kiếm các cập chứng khoán tương đồng cho 50
mã chứng khoán được chọn ngẫu nhiên của sàn giao dịch chứng khoán TP.HCM
(HOSE). Dữ liệu tính toán là dữ liệu cuối ngày EOD (End of Day) của các chứng khoán
tính từ 5/2009 đến 12/2010. Tiểu luận cũng đưa ra một mô hình cho đầu tư chứng khoán
theo chiến lược Pair-Trading mà một phần trong mô hình này là module dò tìm các cập
chứng khoán tương đồng theo giải thuật SparseDTW đã đưa ra.
Em xin gởi lời cảm ơn chân thành đến PGS.TS. Đỗ Phúc đã giành thời gian quí báo của
mình truyền đạt những kiến thức bổ ích cũng như truyền cảm hứng cho em trong lĩnh vực
này.
Tp.HCM, tháng 12 năm 2010
Trang 3/66
MỤC LỤC
CHƯƠNG 1 5
TỔNG QUAN 5
1.GIỚI THIỆU 5
1.1.Khai phá dữ liệu thời gian 5
1.2.Tìm kiếm mã chứng khoán tương đồng (pair trading) 6
1.3.Quá trình khai phá dữ liệu 7
2.DỮ LIỆU THỜI GIAN VÀ CÁC ĐỘ ĐO SỰ TƯƠNG ĐỒNG 8

2.1.Dữ liệu thời gian 9
2.2.Đo sự tương đồng 13
2.3.Các độ đo sự tương đồng 13
2.3.1.Độ đo Euclidean 24
2.3.2.Xoắn thời gian động (Dynamic Time Warping – DTW) 28
2.3.3.Phương pháp chuỗi con chung dài nhất (LCSS) 35
2.3.4.So sánh các độ đo 35
2.3.5.Một số độ đo khác 36
CHƯƠNG 2 38
TIẾP CẬN MỚI TRONG TÍNH TOÁN DTW VÀ ỨNG DỤNG TRONG CHỨNG KHOÁN. .38
1.Giới thiệu 38
2.Ma trận sparse 39
2.1.Lưu trữ theo dòng (Compressed Row Storage – CRS) 40
2.2.Lưu trữ theo cột (Compressed Column Storage – CCS) 41
2.3.Lưu trữ theo khối (Block compressed row storage– BCRS) 42
3.Các khái niệm 42
4.Giải thuật SparseDTW 43
4.1.Mô hình Pair-Trading trong chứng khoán 46
4.1.1.Một số khái niệm 46
4.1.2.Pair-trading framework 46
4.1.3.Kết hợp DTW với phương pháp cận dưới 48
4.1.4.Phát hiện các cơ hội đầu tư 50
4.1.5.Tìm cập chứng khoán tương đồng của sàn HOSE 50
4.2.Thiết kế chương trình 59
4.2.1.Cơ sở dữ liệu 59
4.2.2.Các lớp 60
4.2.3.Giao diện & hướng dẫn sử dụng 61
4.2.4.Cài đặt 62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 65

Trang 4/66
CHƯƠNG 1
TỔNG QUAN
1. GIỚI THIỆU
1.1. Khai phá dữ liệu thời gian
Một chuỗi dữ liệu thời gian (Time series) là một chuỗi các điểm dữ liệu thông thường
được đo lường ở một chu kỳ thời gian nhất định nào đó, trong đó mỗi điểm dữ liệu được
đặc trưng bởi một giá trị và vì vậy dữ liệu thời gian (TSD – time series data) là bao gồm
tập các chuỗi này. Trong tiểu luận này, khi đề cập đến chuỗi dữ liệu tức là chuỗi dữ liệu
về thời gian.
Tìm kiếm sự tương tự trong chuỗi dữ liệu thời gian đã được nghiên cứu nhiều trong nhiều
năm qua. Độ tương tự của các chuỗi dữ liệu này có thể được đo lường bằng cách dùng
khoảng cách Euclidean hay phương pháp xoắn thời gian động (DTW-Dynamic Time
Warping). Bởi vì các chuỗi dữ liệu này có các độ dài khác nhau và chu kỳ lấy dữ liệu
cũng khác nhau nên phương pháp Eulidean không phù hợp mà thay vào đó là phương
pháp DTW được chấp nhận nhiều hơn.
DTW sử dụng mô hình lập trình động để tính toán sự so khớp giữ 2 chuỗi dữ liệu. Giải
thuật DTW truyền thống có độ phức tạp là O(nm) với n, m là chiều dài của 2 chuỗi dữ
liệu cần tính toán.
Để giảm thiểu độ phức tạp này, các nhà nghiên cứu đã đưa ra nhiều giải thuật để tăng tốc
tính toán DTW. Về mặt tổng quan có thể nhóm các kỹ thuật này thành 3 loại :
- Phương pháp bổ sung thêm các ràng buộc để giảm bớt không gian tìm kiếm (công
trình của Sakoe & Chiba (1978), Itakura (1975)). Các phương pháp này giảm
thiểu không gian tìm kiếm nhưng lại không đảm bảo cho kết quả tốt nhất.
- Phương pháp dựa trên việc biến đổi dữ liệu qua đó dữ liệu gốc được biến đổi và
tính toán trên đó, sau đó sẽ chuyển lại thành dữ liệu ban đầu (Salvador & Chan
2007). Phương pháp này cũng không đảm bảo cho ra kết quả tối ưu nhất.
- Phương pháp dựa vào kỹ thuật đánh chỉ mục (index) được đưa ra bởi Keogh &
Ratanamahatana (2004) và Sakurai et. (2005). Phương pháp này không trực tiếp
tăng tốc tính toán DTW nhưng nó giới hạn số lần tính DTW.

Trang 5/66
Rất nhiều ứng dụng có thể thừa hưởng từ kết quả của việc nghiên cứu sự tương đồng của
chuỗi dữ liệu như :
- Trong ứng dụng tài chính (chứng khoán, vàng,…) : qua đó nhà đầu tư sẽ tìm các
mã chứng khoán tương đồng. Ứng với mỗi cập sẽ theo dõi sự thay đổi giá của một
mã để có quyết định đầu tư đúng đắn cho mã còn lại (gọi là kỹ thuật Pair-trading).
Tiểu luận này ứng dụng để tìm các cập chứng khoán tương đồng của sàn giao dịch
chứng khoán HCM (HOSE).
- Trong các ứng dụng nhận dạng giọng nói ví dụ : tìm các clips có chứa giọng nói
của người nào đó, so sánh giọng nói trong các hệ thống bảo mật,
Hầu kết các nghiên cứu trước đây đều tập trung vào tăng tốc tính toán DTW bằng cách
hoặc giảm không gian tìm kiếm nhưng lại giảm độ chính xác của kết quả hay đưa ra kỹ
thuật đường biên dưới nhằm giảm tính toán trên những chuỗi không cần thiết nhưng lại
không giảm được tính toán DTW.
Để khắc phụ 2 nhược điểm đó, giải thuật SparseDTW được đưa ra nhằm giảm thiểu tính
toán DTW nhưng vẫn luôn cho được kết quả tối ưu nhất.
1.2. Tìm kiếm mã chứng khoán tương đồng (pair trading)
Nhiều nhà nghiên cứu đã đưa ra các giải thuật cũng như mô hình tập trung vào vấn đề tìm
kiếm các mẫu (pattern) ứng dụng trong thị trường chứng khoán. Tiểu luận này đưa ra mô
hình Pair-trading, đây là một chiến lượt đầu tư liên quan đến việc tìm kiếm các mã chứng
khoán tương đồng, theo dõi sự thay đổi giá của chúng để có quyết định đầu tư đúng đắn
qua kỹ thuật short-sell và long buying.
Luật kết hợp cũng đã được ứng dụng trong chứng khoán để dự đoán sự dịch chuyển giá
cổ phiếu dựa trên dữ liệu thu thập trước đó, giúp nhà đầu tư tìm ra được điểm hội tụ của
giá cổ phiếu (Lu et al., 1998 ; Ellatif, 2007). Tuy nhiên, luật kết hợp lại cho ra quá nhiều
luật do vậy gây khó khăn cho nhà đầu tư khi quyết định. Basalto et al 2004 [bas04] đã
đưa ra giải thuật gom cụm để tìm sự tương quan giữa các cổ phiếu. Cao et al 2006 đã
đưa ra giải thuật di truyền mờ (fuzzy genetic) để tìm ra các cập có quan hệ và xếp hạng
các quan hệ đó.
Trang 6/66

Các nhà đầu tư khi theo dõi bảng chứng khoán là nhằm quan sát sự thay đổi giá của các
chứng khoán mà họ nghĩ là sẽ đem lại lợi nhuận. Như vậy, nếu ta xây dựng được một hệ
thống qua đó tự động dò tìm các cập chứng khoán tương đồng, sau đó tự động theo dõi sự
thay đổi giá giữa chúng và tự động đưa ra các đề nghị (dựa vào các quy luật đầu tư chứng
khoán) cho nhà đầu tư thì đây là một hệ thống rất hữu ích.
1.3. Quá trình khai phá dữ liệu
Khai phá dữ liệu là quá trình trích xuất các thông tin quan tâm hay các mẫu trong CSDL
lớn (CSDL quan hệ, nhà kho dữ liệu – data warehouse, XML) (theo định nghĩa của
Piatetsky-Shapiro & Frawley – 1991).
Hình 1: Quá trình khai phá tri thức trong CSDL (KDD)
Mặc dù khai phá dữ liệu chỉ là một bước quan trong tiến trình khai phá tri thức trong
CSDL (knowledge discovery in databases - KDD) nhưng hầu như nó được ngằm hiểu
như quá trình KDD. Quá trình KDD bao gồm 4 bước :
- Bước 1 (chọn lọc, tích hợp dữ liệu) : Công đoạn này bắt buộc phải thực hiện vì dữ
liệu có thể được thu thập từ nhiều nguồn khác nhau do đó có thể dư thừa, không
đầy đủ hoặc nhiễu. Quá trình này sẽ loại bỏ những thành phần không mong muốn
đó.
- Bước 2 (Tiền xử lý) : mặt dù dữ liệu sau khi qua bước 1 đã bị loại bỏ sự dư thừa,
nhiễu nhưng đây là dữ liệu thô và thực sự không cần thiết để khai phá. Vì vậy
bước 2 là trích lọc ra các thông tin liên quan và chuyển đổi chúng về đúng định
dạng phù hợp để có thể khai phá.
Trang 7/66
- Bước 3 (khai phá) : sau khi dữ liệu đã sẵn sàn, rất nhiều kỹ thuật khai phá khác
nhau được áp dụng nằm tìm ra tri thức mong muốn. Các kỹ thuật khác nhau cho
phép khai phá các tri thức khác nhau tùy thuộc từng ứng dụng.
- Bước 4 (hậu xử lý) : tri thức sau khi tìm được cần được ước lượng, đánh giá, giải
thích cho người dùng. Bên cạnh đó còn phải hiện thực (thể hiện trực quan) để
người dùng dễ hiểu và nắm được tri thức trong nó.
Hình sau mô tả quan hệ giữa các đối tượng liên quan trong khai phá dữ liệu và mức độ hỗ
trợ tri thức :

Hình 2: Data Mining và BI
- DBA : người quản trị CSDL sẽ thu thập, tích hợp các hệ thống CSDL đã có để
hình thành kho dữ liệu phục vụ cho khai phá dữ liệu.
- Data Analyst : nhân viên phân tích dữ liệu dựa vào nguồn dữ liệu do DBA cung
cấp để tiến hành các phân tích thống kê, truy vấn, thiết lập báo cáo và thực hiện
tiến trình khai phá dữ liệu.
- Tri thức có được sẽ đến nhân viên phân tích nghiệp vụ sẽ hiện thực, giải thích các
kết quả đó và chuyển cho lãnh đạo để ra quyết định.
2. DỮ LIỆU THỜI GIAN VÀ CÁC ĐỘ ĐO SỰ TƯƠNG ĐỒNG
Trang 8/66
2.1. Dữ liệu thời gian
Định nghĩa 1 : một chuỗi dữ liệu thời gian S được định nghĩa như sau :
Trang 9/66
}{
NtsS
t
∈=
:
(1)
Trang 10/66
,trong đó s
t
là điểm dữ liệu tại thời điểm t.
Định nghĩa 2 : một CSDL dữ liệu thời gian TSD là một tập các chuỗi được mô tả như
sau :
Trang 11/66
}{
NiSTSD
i
∈=

:
(2)
Trang 12/66
,trong đó S
i
là chuỗi thứ i trong tập các chuỗi dữ liệu.
Ví dụ một chuỗi dữ liệu thời gian như Hình 3 :
Hình 3:Hai chuỗi dữ liệu của mã chứng khoán DPM và GMD
2.2. Đo sự tương đồng
Nếu ta có N tập chuỗi dữ liệu thời gian thì vấn đề đo lường sự tương đồng giữa chúng có
thể được diễn đạt theo hai cách sau :
- Tìm tất cả các cập dữ liệu có khoảng cách giữa chúng nhỏ hơn hoặc bằng ngưỡng
∈ cho trước.
- Đánh chỉ mục (indexing) hay truy vấn theo nội dung của dữ liệu (query by
content) : có 2 cách tiếp cận theo hướng này gồm :
 (1) : Theo khoảng (by range) : tìm tất cả các chuỗi dữ liệu có khoảng cách
nhỏ hơn ∈ với các chuỗi dữ liệu chỉ định.
 (2) : tìm các m phần tử láng giềng gần nhất.
Hai cách trên được nhóm vào loại bài toán so sánh toàn chuỗi (whole series matching).
Một dạng so sánh khác là so sánh chuỗi con (subsequence matching) tức là tìm sự xuất
hiện của một chuỗi con trong chuỗi khác (chuỗi con tìm thường ngắn).
2.3. Các độ đo sự tương đồng
Trang 13/66
Định nghĩa 3 : cho D là không gian tìm kiếm được định nghĩa trên tập chuỗi dữ liệu thời
gian và 2 điểm x, y

D, một hàm đo khoảng cách dist trên D được định nghĩa là :
Trang 14/66
RDxDdist
→

:
(3)
Trang 15/66
,trong đó R là tập số thực. Hàm dist là hàm đối xứng nếu nó thỏa mãn các tính chất sau :
- Không âm (nonnegativity) :
Trang 16/66
0),(

yxdist
(4)
Trang 17/66
- Phản xạ (reflexivity) :
Trang 18/66
dist(x,y) =0 nếu chỉ nếu x=y (5)
Trang 19/66
- Đối xứng (symmetry) :
Trang 20/66
dist(x,y) = dist( y,x) (6)
Trang 21/66
- Bất đẳng thức tam giác (triangle inequality) :
Trang 22/66
dist(x,y)

dist( x,z)+dist(z,y)
(7)
Trang 23/66
Định nghĩa 4 : cho D là không gian tìm kiếm , 2 điểm x, y

D, hàm dist và một ngưỡng
ε thì : x, y được xem là tương đồng nếu dist(x,y)



ε
và không tương đồng nếu dist(x,y)>
ε
Sự tương đồng của hai chuỗi được tính bằng cách so sánh từng cập điểm của hai chuỗi
bằng hàm khoảng cách dist. Hàm đo khoảng cách trên là hàm độc lập dữ liệu do vậy cần
được thiết kê riêng, chuyên biệt cho từng loại dữ liệu và từng ứng dụng khác nhau.
2.3.1. Độ đo Euclidean
Độ đo Euclidean là độ đo khoảng cách đầu tiên được sử dụng để đo sự tương đồng của
chuỗi dữ liệu thời gian (các công trình của Agrawal et al. 1993, Faloutsos et al. 1994,
Rafiei & Mendelzon 1998). Ta có 2 định nghĩa về đọ đo này tùy thuộc vào loại và chiều
của dữ liệu.
Định nghĩa 5 : cho hai chuỗi dữ liệu một chiều S=(s
x
) và Q=(q
x
) khoảng cách Euclidean
được định nghĩa là :
Trang 24/66
||)(
2
xxxx
qsqsEucDist
−=−=
(8)
Trang 25/66

×