Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 66 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
66
Dung lượng
3,14 MB
Nội dung
ĐẠ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 [...]... đó st 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 TSD = { S i : i ∈ N } Trang 12/66 (2) ,trong đó Si 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... Phương pháp xoắn thời gian động là một kỹ thuật lập trình động cho phép đo lường sự tương đồng của hai chuỗi dữ liệu có thể lệch pha nhau hay khác nhau về chiều dài Ví dụ như đo lường sự tương đồng của hai đoạn video được quay bởi hai người với tốc độ di chuyển khác nhau Hình 5 mô tả cách so khớp theo phương pháp DTW Trang 28/66 Hình 5:Cách so khớp 2 chuỗi dữ liệu theo DTW 2.3.2.1 Đặc điểm của DTW... là : hai chuỗi dữ liệu phải có cùng chiều dài và như vậy nó không hỗ trợ phương pháp dịch chuyển điểm cục bộ (local time shifting) Local time shifting xảy ra khi một phần tử của một chuỗi được dịch chuyển theo trục thời gian để so khớp với một điểm kia của chuỗi còn lại ở thời điểm khác (2 cập điểm có thể khác vị trí trong chuỗi dữ liệu) Kỹ thuật này rất hữu ích khi đo lường hai chuỗi dữ liệu giống... 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=(sx) và Q=(qx) khoảng cách Euclidean được định nghĩa là : Trang 24/66 EucDist = ( s x − q x ) 2 =| s x − q x | Trang 25/66 (8) Định nghĩa 6 : cho hai chuỗi. .. 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... 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... các phần tử của chuỗi dữ liệu sẽ bị dịch chuyển và hơn nữa các phần tử bị dịch chuyển này còn có các độ dịch chuyển khác nhau Global time shifting – dịch chuyển toàn cục : tất cả các phần tử trong chuỗi dữ liệu đều được dịch chuyển theo trục thời gian với cùng một độ dịch Hình 4 mô tả cách so khớp của đọ đo Euclidean : Hình 4:Cách so khớp 2 chuỗi dữ liệu theo Euclidean 2.3.2 Xoắn thời gian động (Dynamic... 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ỉ... giữa hai chuỗi dữ liệu thời gian Định nghĩa 7 : DTW là một phương pháp lập trình động trong đó phân chia chuỗi ban đầu thành các chuỗi con và tính toán độ đo trên các chuỗi con đó : Trang 29/66 D(i − 1, j ) D(i, j ) = d (i, j ) + min D (i − 1, j − 1) D(i, j − 1) (10) Ví dụ : cho S, Q có 10 điểm dữ liệu như sau : S={3,4,5,3,3,2,3,4,2,3} Q={1,2,2,1,0,1,1,2,1,2} Hình sau mô tả các so khớp chuỗi. .. B, C ) - Phương pháp của Keogh & Ratanamahatana 2004 : U i = max(qi−r , qi +r ) Li = min(qi −r , qi +r ) Trang 34/66 (ci − U i ) 2 , ci > U i LB _ Keogh(Q, C ) = ∑ (ci − Li ) 2 , ci < Li i =1 0 (11) n 2.3.3 Phương pháp chuỗi con chung dài nhất (LCSS) Độ đo LCSS (longest common subsequence) được đưa ra nhằm đo lường sự tương đồng của chuỗi dữ liệu bị nhiễu cao (các công trình của Hirschberg . 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. 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. 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