2.2.Lưu trữ theo cột (Compressed Column Storage– CCS)

Một phần của tài liệu 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 (Trang 41 - 50)

CHƯƠNG 2

2.2.Lưu trữ theo cột (Compressed Column Storage– CCS)

1 0 1 1 1 2 1 3 1 4 1 5 16 1 7 18 19 Val 10 3 3 9 7 8 4 8 8 7 7 9 -2 5 9 2 3 13 -1 row_inde x 1 5 1 2 6 2 3 4 1 3 4 5 2 4 5 6 2 5 6 col_ptr 1 4 8 10 13 17 Trang 41/66

Nhận xét : 2 các phương pháp này sẽ rất hiệu quả nếu ma trận chứa nhiều số 0 hoặc đối xứng.

2.3. Lưu trữ theo khối (Block compressed row storage– BCRS)

Nếu ma trân A hình thành các khối dữ liệu theo một cách thức nào đó thì ta có thể điều chỉnh phương pháp CBR để lưu trữ các khối đó.

A={val, Col_index, Row_ptr}

Với val : lưu trữ các giá trị <>0 của A

Col_index : vị trí cột tương ứng của phần tử trong val tức nếu val(k)=A(i,j) thì

col_index(k)=i.

row_ptr : chứ vị trí bắt đầu của hàng theo mảng val Ví dụ ma trận :

3. Các khái niệm

Định nghĩa 10 (Láng giềng dưới – Lower Neighbors) : láng giềng dưới của một ô c được định nghĩa là các ô có chỉ số (c-1), (c-n), (c-(n+1)) với n là số hàng của SM. Ví dụ xét ô (4) trong hình 6 thì các ô góc trái trên L là các ô láng giềng dưới.

Định nghĩa 11 (Láng giềng trên – Upper Neighbors) : láng giềng trên của một ô c được định nghĩa là các ô có chỉ số (c+1), (c+n), (c+n+1) với n là số hàng của SM. Ví dụ xét ô (4) trong hình 6 thì các ô góc PHẢI dưới U là các ô láng giềng trên.

.. .. .. .. . .. L L .. .. L 4 U .. .. U U .. .. .. .. .. .. Trang 42/66

Hình 7: Các láng giềng trên và dưới của ô (4)

Định nghĩa 12 (Blocked cell ): Một ô bị khóa ký hiệu là B nếu giá trị của nó là 0 (các ô có khoảng cách =0 thì được ký hiệu là -1 để phân biệt với ô B).

Định nghĩa 13 (Mở ô bị khóa ): cho c SM, nếu các ô láng giềng trên của c đều chứ B

(blocked) thì các ô này sẽ được mở ra theo công thức tính khoảng cách EucDist đã nêu.

4. Giải thuật SparseDTW

Input:S: chuỗi dữ liệu có chiều dài n,

Q: chuỗi dữ liệu có chiều dài m,

Res : độ rộng của các Bin

Output: đường so khớp tối ưu và độ đo khoảng cách DTW 1: [S’, Q’] ⇐Quantize(S, Q)

2: LowerBound⇐ 0, UpperBound⇐ Res 3: for all 0 ≤ LowerBound ≤ 1 −Res/2 do

4: IdxSFind(LowerBoundS’UpperBound) 5: IdxQFind(LowerBoundQ’UpperBound) 6: LowerBoundLowerBound +Res/2

7: UpperBoundLowerBound + Res

8: for allidxiIdxSdo

9: for allidxjIdxQdo

10: Add EucDist(idxi, idxj) to SM {chú ý khi EucDist(idxi, idxj)=0 thì SM (i, j) = −1.}

11: end for

12: end for

13: end for (adsbygoogle = window.adsbygoogle || []).push({});

{Chú ý: SM là ma trận truy xuất qua chỉ số.}

14: for all c ∈ SM do {c là một ô của SM}

15: LowerNeighbors⇐ {(c − 1), (c − n), (c − (n + 1))}

16: minCostmin(SM (Lower Neighbors))

{Chú ý SM(Lower Neighbors)=-1 có nghĩa cost=0.} 17: SM (c) ⇐SM (c) + minCost

18: UpperNeighbors⇐ {(c + 1), (c + n), (c + n + 1)} 19: if |Upper Neighbors| == 0 then

20: SMEucDist(Upper Neighbors)

21: end if

22: end for

23: Warping Path⇐ Φ

24: hop SM (n × m) {Last index in SM.} 25: Warping Path hop

26: while hop # SM (1) do

27: Lower Neighbors{(hop − 1), (hop − n), (hop − (n + 1))}

28: [minCost, index] min[Cost([Lower Neighbors])

29: hop index

30: Warping Path hop

31: end while

32: Warping PathSM (1)

33: returnWarpingPath, DTW (S,Q)

Ví dụ, xét hai chuỗi S={3,4,5,3,3} và Q={1,2,2,1,0}, Res=0.5 ta có quá trình tính toán như sau :. - Quantize S và Q để có S’ và Q’ S’={0,0.5, 1, 0, 0}, Q’={0.5, 1, 1, 0.5, 0} ) min( ) max( ) min( ) ( S S S s i Quantize i − − =

- Tính các Bin với res=0.5 ta có 4 bin như sau

Bin# Giới hạn Chỉ số S' Chỉ số Q' 1 0-0.5 1,2,4,5 1,4,5 2 0.25-0.75 2 1,4 3 0.5-1 2,3 1,2,3,4 4 0.75-1.25 3 2,3 - Ứng với từng Bin tính ma trận SM (dòng 14-21) Bin #1 Bin #2 SM 1 2 2 1 0 3 4 B B 4 9 4 9 B B 9 16 5 B B B B B 3 4 B B 4 9 3 4 B B 4 9 SM 1 2 2 1 0 3 4 B B 4 9 4 9 B B 9 16 5 B B B B B 3 4 B B 4 9 3 4 B B 4 9 Bin#3 Bin#4 SM 1 2 2 1 0 3 4 B B 4 9 4 9 4 4 9 16 5 16 9 9 16 B 3 4 B B 4 9 3 4 B B 4 9 SM 1 2 2 1 0 3 4 B B 4 9 4 9 4 4 9 16 5 16 9 9 16 B 3 4 B B 4 9 3 4 B B 4 9 - Tính chi phí (dòng 23-31) Xét ô c(1,1), Neighbors=ø Xét ô c(2,1), Neighbors={4} => Min=4 => c(2,1)=9+4=13 Xét ô c(3,1), Neighbors={13}=>Min=13=>c(3,1)=13+16=29 Tương tự cho các cells còn lại …

Ta có ma trận chi phí là : SM 1 2 2 1 0 3 4 B B 4 13 4 13 8 12 13 20 5 29 17 17 28 25 3 33 B B 21 30 3 37 34 35 25 30 Trang 45/66

- Tính đường so khớp tối ưu : bắt đầu từ c(5,5)=30 tìm ô Neighbors là ô 21 và tiếp tục. Ta có kết quả là các ô tô màu

- Tính khoảng cách DTW = sqrt(30+21+17+8+4)/5 = 1.78

4.1. Mô hình Pair-Trading trong chứng khoán

Giải thuật SparseDTW được ứng dụng trong khai phá dữ liệu chứng khoán để tìm kiếm các cập chứng khoán tương đồng. Đây là một phần trong mô hình đầu tư Pair-Trading. Bài toán trong lĩnh vực này có thể được phát biểu như sau : cho tập các chuỗi dữ liệu của các mã chứng khoán, tìm tất cả các cập chứng khoán tương đồng theo độ đo DTW trong một ngưỡng giới hạn cho trước.

4.1.1. Một số khái niệm

Short selling: là một kỹ thuật kinh doanh chứng khoán qua đó nhà đầu tư nhận thấy mã chứng khoán đã giảm đến giá sàn và sẽ tăng lại nên quyết định đầu tư để kiếm lời khi mã chứng khoán đó tăng trong tương lai gần

Long buying : là một kỹ thuật đầu tư chứng khoán của nhà đầu tư với hy vọng sẽ bán ra với giá cao hơn (adsbygoogle = window.adsbygoogle || []).push({});

Ask price : là giá thấp nhất mà người bán chấp nhận bán

Bid price : là giá cao nhất mà người mua chấp nhận mua

Spread : khoảng cách gữa giá Ask price và Bid price

Pair trading : là một chiến lượt kinh doanh chứng khoán qua đó nhà đầu tư tìm kiếm các cập chứng khoán có giá cùng thay đổi trong một khoảng thời gian nào đó. Mỗi khi phát hiện các cập chứng khoán đó thì nhà đầu tư sẽ tiếp tục quan sát giá của cổ phiếu này để có quyết định đúng đắn cho cổ phiếu còn lại

4.1.2. Pair-trading framework

Hình sau mô tả mô hình của Pair-trading áp dụng trong chứng khoán :

Hình 8: Mô hình pair-trading

- 1/ Tìm cập chứng khoán tương đồng : quan sát các cập chứng khoán có giá cùng thay đổi trong một khoảng thời gian. Cách đơn giản là quan sát tất cả cập chứng khoán và tìm ra cập chứng khoán tương đồng theo giải thuật SparseTDW

- 2/ Quan sát giá : hệ thống sẽ tự động gởi tín hiệu thông báo khi có sự thay đổi giá so với giá trước đó. Cảnh báo sẽ được gởi khi có sự phân kỳ về giá của cập chứng khoán quan sát.

- 3/ Trading process : trong tiến trình này nhà đầu tư sẽ chọn thời điểm thích hợp để thực hiện mua hay bán. Mỗi khi nhận được cảnh báo của hệ thống thì nhà đầu tư có thể quyết định bán hoặc mua bao nhiêu. Với mục đích là giá cổ phiếu sẽ đổi chiều nhằm thu lợi nhuận.

- 4/ Quan sát sự hội tụ giá : công đoạn này tương tự như công đoạn 2 nhưng lúc này chỉ quan sát giá hội tụ (thay vì phân kỳ). Khi giá cổ phiếu có khuynh hướng chuyển về giá ban đầu thì một cảnh báo sẽ được gởi cho nhà đâu tư để chọn thời điểm thích hợp để có được lợi nhuận cao nhất.

- 5/ Sau khi giá đã trở về vị trí ban đầu, nhà đầu tư lại tiếp tục quan sát sự phân kỳ giá và tiếp tục quy trình trên.

Ví dụ : quan sát cập chứng khoán sau :

Hình 9: Quan sát sự phân kỳ và hội tụ của giá

Ta thấy cập chứng khoán này có giá giao động cùng nhau mãi đến tháng 8/2009 thì bắt đầu phân kỳ. Khi đó hệ thống sẽ cảnh báo cho nhà đầu tư biết để có quyết định đầu tư đúng. Trong hình trên thì nhà đầu tư sẽ bán HMC (short sell) và mua KLS (long buying). Đến cuối tháng 10/09 thì giá 2 cổ phiếu này lại hội tụ, khi đó hệ thống cũng cảnh báo cho nhà đâu tư biết về sự biến động này.

4.1.3. Kết hợp DTW với phương pháp cận dưới

Tính đến tháng 12/2010, sàn giao dịch chứng khoán HOSE có hơn 630 mã chứng khoán. Do đó việc tìm tuần tự từng cập chứng khoán sẽ mất rất nhiều thời gian. Để giải quyết vấn đề đó, phương pháp cận dưới được áp dụng nhằm loại bỏ bớt các mã chứng khoán quá cách biệt.

Giải thuật SequenceSearch

Input:Q: chuỗi dữ liệu truy vấn có chiều dài n, CSDL chứa các chuỗi dữ liệu thời gian TSD. 1: BestSoFar = ∞

2: for all C ∈ T SD do

3: LB_Dist = LowerBoundDistance(Ci, Q) 4: ifLB_Dist < BestSoFARthen

5: True_Dist = SparseDTW(Ci , Q) 6: ifT rue_Dist < BestSoFarthen

7: BestSoFar = True_Dist

8: IndexOfBestMatch = i

9: end if

10: end if

11: end for

LowerBoundDistance được tính theo công thức (11) của Keogh & Ratanamahatana 2004. Hình sau mô tả đường U, L của mã chứng khoán PVT

Hình 10:Đường U và L của mã PVT

4.1.4. Phát hiện các cơ hội đầu tư (adsbygoogle = window.adsbygoogle || []).push({});

Dưới đây là hai quy tắc có thể áp dụng để quyết định đầu tư đúng lúc :

- Quy tắc về giá trị trung bình và độ lệch chuẩn (mean and two-standard-

deviations) : quy tắc này do Herlemont đưa ra năm 2004 được mô tả theo hình sau :

- Quy tắt về khoảng cách tuyệt đối (absolute distance) : Sử dụng công thức sau để đo khoảng cách tuyệt đối giữa 2 giá. Nếu AbsDist>δ thì phù hợp cho chiến lượt

Short sell long buying. | | t j t

Một phần của tài liệu 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 (Trang 41 - 50)