ỨNG DỤNG SVM VÀO DỰ ĐOÁN KẾT QUẢ CHỨNG KHOÁN
Bài đăng này đã không được cập nhật trong 9 năm
I. CÁC ĐẶC TRƯNG ĐẦU VÀO VÀ ĐẦU RA
Đầu vào của mô hình là dữ liệu chuỗi thời gian quá khứ bao gồm giá đóng cửa và các chỉ số kỹ thuật trong chứng khoán. Để đảm bảo được số chiều vừa phải và tránh việc làm nhiễu dữ liệu đầu vào, chúng tôi chọn các chỉ số kĩ thuật thông dụng nhất bao gồm: trung bình trượt giản đơn (SMA) 25 ngày và 65 ngày, Aroon up, Aroon down, dải biên độ biến động giá (Bollinger bands) với Bollinger upper, middle và lower, trung bình trượt hội tụ và phân kỳ (MACD), và MACD Histogram. Tất cả được mô tả chi tiết trong [15]. Giá đóng cửa cùng những chỉ số kỹ thuật tạo nên véc tơ đầu vào với số chiều là 10. Giá trị trong mỗi chiều được chuyển về đoạn [-1, 1].
Mô hình dự đoán xu hướng sẽ kết xuất ra ba giá trị những lớp ứng với xu hướng tăng, giảm và không có xu hướng. Để quyết định xu hướng của ngày hiện tại, chúng tôi dùng một định nghĩa được mô tả chặt chẽ [16] như sau:
Thị trường được xác định có xu hướng tăng (giảm) trong ngày hiện tại khi tất cả những điều kiện sau được thỏa mãn:
Giá đóng cửa phải cao hơn (thấp hơn) chỉ số trung bình trượt 25 ngày. Chỉ số trung bình trượt 25 ngày phải cao hơn (thấp hơn) chỉ số trung bình trượt 65 ngày. Đường trung bình trượt 25 ngày phải tăng (giảm) ít nhất trong 5 ngày. Đường trung bình trượt 65 ngày phải tăng (giảm) ít nhất 1 ngày. Nếu không thể thỏa mãn tất cả điều kiện trên để được đánh nhãn lớp có xu hướng tăng và giảm thì ngày hiện tại được đánh nhãn không có xu hướng.
II. MÔ HÌNH SVM VỚI ƯỚC LƯỢNG XÁC SUẤT
Bô phân lớp SVM:
Cho tập véctơ đầu vào x_i∈R^D,∀i∈[1,N] và tập các giá trị nhãn lớp tuơng ứng y_i∈{-1;+1} cho mô hình phân lớp nhịp hân. Hàm tuyến tính phân biệt hai lớp như sau: g(x)= w^T.Φ(x)+b (1) trong đó, w là véctơ chuẩn của siêu phẳng phân cách, b là độ lệch, và Φ(x) là hàm ánh xạ từ không gian đầu vào sang không gian đặc trưng, Φ(x):R^D→R^M (M > D).
Mục tiêu của SVM là tìm một siêu phẳng tối ưu sao cho khoảng cách lề (margin) giữa hai lớp đạt giá trị cực đại. Bên cạnh đó, để đảm bảo tính tổng quát hóa cao, slack variable đựoc đưa vào để nới lỏng điều kiện phân lớp. Bài toán đưa đến giải quyết tối ưu có ràng buộc: min┬(w,b,ξ)〖1/2 w^T w+C∑_(i=1)^N▒ξ_i 〗 (2) sao cho: y_i (w^T.Φ(x_i )+b)≥1-ξ_i ξ_i≥0,∀i∈[1,N] trong đó, C > 0 là tham số chuẩn tắc (regularization parameter), ξ_i là biến lỏng.
max┬α〖L(α)≡∑_(i=1)^N▒α_i -1/2 ∑_(i,j)▒〖α_i α_j y_i y_j 〖Φ(x_i )〗^T.Φ(x_j)〗〗 (3) Thỏa mãn: 0≤α_i≤C,∀i∈[1,N] và ∑_(i=1)^N▒〖α_i y_i 〗=0, với αi là các nhân tử Lagrange. Sau khi có đựoc các giá trị α_i , ta sẽ thu đươc các giá trị tối ưu w* và b* của siêu phẳng.
Chỉ có các mẫu có α_i≥0 mới tham gia vào các véc tơ hỗ trợ (support vector). Cuối cùng, hàm quyết định phân lớp có dạng: f(x)=sgn(∑_(i=1)^N▒〖α_i y_i 〗 〖Φ(x_i )〗^T.Φ(x)+b) (4) Gọi K(x_i,x_j )=〖Φ(x_i )〗^T.Φ(x_j ) là hàm nhân của không gian đầu vào. Theo đó, tích vô huớng trong không gian đặc trưng tuơng đương với hàm nhân K ở không gian đầu vào. Như vậy, thay vì tính trực tiếp giá trị tích vô huớng, ta thực hiện gián tiếp thông qua K.
Với thừa nhận dữ liệu chứng khoán biến đổi một cách phi tuyến, ta chọn hàm nhân cho mô hình là hàm phi tuyến Gauss (RBF-Radial Basis Function): K(x_i,x_j )=exp(-γ‖x_i-x_j ‖^2) (5) Ước lượng xác suất: Với việc áp dụng bộ phân lớp SVM, để phân k lớp, ta áp dụng cách tiếp cận một đối một.
Vì vậy, sẽ có k(k-1)/2 bộ phân lớp được xây dựng để phân biệt mỗi cặp lớp. Trong SVM, để dự đoán được nhãn lớp, ta áp dụng chiến lược voting strategy.
Nghĩa là, ta sẽ xây dựng một luật để phân biệt từng cặp lớp rồi chọn lớp thuộc về cặp chiến thắng nhờ hàm quyết định. Tuy nhiên, trong [20], Wu (2004) đã đề xuất mô hình ước lượng xác suất cho việc phân k lớp và chứng minh cả trên mặt lý thuyết và thực nghiệm, mô hình đề xuất tốt hơn chiến lược bỏ phiếu. Cho véc tơ đầu vào x và nhãn lớp y, mục tiêu là ước lượng p_i=P(y=i│x), i=1,…,k. (6) Theo cách tiếp cận một, ta thừa nhận rằng đã tồn tại ước lượng xác suất cặp lớp (pairwise class probability) rij của µij: r_ij≈μ_ij≡P(y=i|y=i hoặc j,x) (7) Từ lớp thứ i và thứ j của tập huấn luyện, ta sẽ tính được rij là xấp xỉ của µij thông qua x. Platt (2000) đã đưa ra công thức xấp xỉ rij bằng hàm sigmoid: r_ij (f)=1/(1+exp(Af+B)) , (8) trong đó, f là hàm quyết định của x, A và B được xấp xỉ bằng cách cực tiểu hóa hàm log-likelihood (với N+ của giá trị yk dương, N- của yk âm): min┬(A,B)〖F(A,B)=-∑_(n=1)^N▒[t_n log(p_n )+(1-t_n)log(1-p_n ) ] 〗 (9) trong đó, p_n=r_ij (f_n≡f(x_n ) ), và t_n={█((N_++1)/(N_++2) nếu y_n=+1@1/(N_-+2) nếu y_n=-1)┤, n = 1, …, N. Ta thực hiện phương pháp đánh giá chéo (cross-validation) với bộ dữ liệu được chia 5 phần để có được giá trị hàm quyết định f, trước khi giải quyết (9). Sau khi có tất cả giá trị rij, ta áp dụng phương pháp thứ hai của Wu (2004) để tính các giá trị pi trong (6): min┬p〖1/2 ∑_(i=1)^k▒∑_(j: j≠i)▒(r_ji p_i-r_ij p_j )^2 〗 (10) với ràng buộc p_i≥0,∀i,∑_(i=1)^k▒p_i =1. Bài toán (10) có được nhờ vào đẳng thức P(y=j│y=i hoặc j,x)∙P(y=i|x)=P(y=i│y=i hoặc j,x)∙P(y=j|x) (11) Ta có thể viết lại (10) theo dạng: min┬p〖1/2 p^T Qp〗 , (12) với Q_ij={█(∑_(s: s≠i)▒〖r_si〗^2 nếu i=j,@-r_ji r_(ij ) nếu i≠j.)┤
Thuật toán giải quyết được mô tả như sau: Bước 1. Khởi gán p thỏa p_i≥0,∀i,∑_(i=1)^k▒p_i =1. Bước 2. Lặp (t = 1, …, k, 1, …) p_t←1/Q_tt [-∑_(j:j≠t)▒〖Q_tj p_j 〗+p^T Qp] (16) Chuẩn hóa p
Source:
All rights reserved