Không gian tuyến tính

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Dự báo xu hướng chứng khoán tại Việt Nam bằng phương pháp học máy 04 (Trang 35)

trong đó:

 là vector trọng số hay vector chuẩn của siêu phẳng phân cách, T là kí hiệu chuyển vị.

 là độ lệch

 là véc tơ đặc trƣng, làm hàm ánh xạ từ không gian đầu vào sang không gian đặc trƣng, (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ề 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 và chống lại sự quá khớp (overfitting), một biến lỏng (slack variable) đƣợc đƣa vào để nới lỏng điều kiện phân lớp.

Hình 2.6: Biến lỏng được sử dụng trong SVM

Bài toán đƣa đến việc giải quyết tối ƣu có ràng buộc:

(2)

trong đó:

C > 0 là tham số chuẩn tắc (regularization parameter)

 là biến lỏng: cho mọi điểm dữ liệu.

 cho những điểm nằm trên lề hoặc phía trong của lề

 cho những điểm còn lại.

Do đó những điểm nằm trên đƣờng phân cách sẽ có

Còn những điểm phân lớp sai sẽ có

(2) có thể đƣợc giải bằng phƣơng pháp SMO [7] (Sequential Minimal Optimization). Phƣơng pháp này đƣa đến giải bài toán đối ngẫu quy hoạch toàn phƣơng - QP (Quadratic Programming):

(3)

Thỏa mãn: và với αi là các nhân tử

Lagrange.

Sau khi có đƣợc các giá trị từ bài toán (3), 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ó 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:

(4)

Gọi là hàm nhân của không gian đầu vào. Theo đó, tích vô hƣớng trong không gian đặc trƣng tƣơ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.

Đối với dữ liệu chứng khoán biến đổi một cách phi tuyến [6], hàm phi tuyến Gauss (RBF-Radial Basis Function) có thể chọn làm hàm nhân:

2 , > 0 (5) Ngoài ra còn các hàm nhân khác thƣờng đƣợc sử dụng nhƣ :

 Hàm Linear Kernel (Tuyến tính) : K(xi, xj) = xiT.xj

 Hàm Polynomial Kernel (Đa thức bậc d): K(xi, xj) = ( xiT.xj + r)d, > 0

Với r và d là các tham số của hàm nhân.

Với mô hình thuật toán SVM hồi quy (SVR - Support Vector Regression). SVR là mở rộng của SVM, khác với hồi quy tuyến tính y(x)=w.x + w0 ở đây mô hình SVR dùng hàm lỗi -insensitive (Vapnik, 1995) đƣợc cho bởi:

Trong hàm này cho giá trị 0 nếu sai số tuyệt đối giữa dự đoán y(x) và mục tiêu t là < với >0. Do đó, giống nhƣ sử dụng SVM cho việc phân loại, mô hình dự báo dùng SVR chỉ phụ thuộc vào một tập hợp các dữ liệu huấn luyện. Ở đây hàm lỗi bỏ qua các điểm dữ liệu gần (trong ngƣỡng ) để dự đoán và chỉ các điểm nằm ngoài ống  đƣợc cho phép nhƣng bị chặn bằng các biến lỏng quyết định chiều rộng của ống [5].

Hình 2.7: ε – SVR với hạt nhân đa thức (phù hợp với một điểm dữ liệu)

Hình 2.8: SVR với hạt nhân tuyến tính giảm thiểu lỗi với biến lỏng tính giảm thiểu lỗi với biến lỏng Kết luận chương 2

Các kiến thức về khai phá dữ liệu có nhiều, trên đây chúng tôi chỉ giới thiệu để giúp ngƣời đọc hiểu đƣợc tổng quan về khai phá dữ liệu, một vài phƣơng pháp cơ bản để thực hiện đƣợc khai phá dữ liệu. Phƣơng pháp SVM đƣợc chúng tôi phân tích kỹ hơn cả với mục đích sử dụng cho xây dựng mô hình dự đoán chứng khoán tiếp theo.

Chƣơng 3. MÔ HÌNH DỰ BÁO CHỨNG KHOÁN

Trong chƣơng này, các lý thuyết nền tảng và kiến thức đƣợc trình bày ở trên sẽ đƣợc xem xét nghiên cứu để giải quyết bài toán. Trƣớc hết chúng tôi giới thiệu bài toán dự báo chứng khoán, mô hình dự đoán chung. Sau đó chuyển hƣớng đến mô hình sử dụng cho việc dự báo chứng khoán dựa trên những kiến thức trên và công cụ hỗ trợ việc triển khai thực nghiệm chƣơng trình.

3.1. Giới thiệu bài toán dự báo chứng khoán

Bài toán dự báo là thực hiện dự báo tƣơng lai dựa vào thông tin trong quá khứ và hiện tại. Gần đây, có rất nhiều nghiên cứu đã đƣợc thực hiện trong việc áp dụng các thuật toán học để phân tích mô hình giá và dự đoán giá cổ phiếu và thay đổi chỉ số. Hầu hết các nhà đầu tƣ chứng khoán hiện nay dựa vào hệ thống giao dịch thông minh hỗ trợ họ trong việc dự đoán giá dựa trên các tình huống và điều kiện khác nhau, qua đó giúp họ đƣa ra quyết định đầu tƣ tốt nhất có thể.

Giá cổ phiếu đƣợc coi là nhiều biến động và nhạy cảm với những thay đổi nhanh chóng vì bản chất cơ bản của lĩnh vực tài chính và một phần là do sự pha trộn của các thông số đƣợc biết đến nhƣ ( Dữ liệu lịch sử giá, lợi nhuận quý trƣớc, năm trƣớc, …) và yếu tố chƣa biết (nhƣ Kết quả cuộc bầu cử, tin đồn, …) [11]

Một nhà kinh doanh thông minh sẽ dự đoán giá cổ phiếu và mua cổ phiếu trƣớc khi tăng giá, hoặc bán trƣớc khi giảm giá trị của nó. Mặc dù khó có thể thay thế cho một nhà kinh doanh có chuyên môn sâu và kinh nghiệm nhiều, song một thuật toán dự đoán tối ƣu có thể hỗ trợ rất tốt và có thể trực tiếp dẫn đến lợi nhuận cao cho các nhà đầu tƣ hay công ty đầu tƣ.

Trong thực tế, có 2 phương pháp dự báo chứng khoán chính:

Phân tích cơ bản: Thực hiện bởi các nhà phân tích cơ bản, phƣơng pháp này là

quan tâm nhiều hơn tới thông tin của công ty chứ không phải là giá cổ phiếu thực tế. Các nhà phân tích đƣa ra quyết định dựa trên hiệu suất trong quá khứ của công ty, các dự báo lợi nhuận …

Phân tích kỹ thuật: Thực hiện bởi các nhà phân tích kỹ thuật, phƣơng pháp này

đề với việc xác định giá cổ phiếu dựa trên các mô hình trong quá khứ của các cổ phiếu (sử dụng phân tích chuỗi thời gian.)

Trong việc nghiên cứu giải quyết bài toán trên chúng tôi thực kết hợp thông tin cổ phiếu với phƣơng pháp học máy. Với thông tin cổ phiếu chúng tôi quan tâm nhiều hơn tới việc phân tích kỹ thuật để nghiên cứu thuật toán với các chỉ số kỹ thuật cơ bản trong chuỗi thời gian của cổ phiếu. Thuật toán đƣợc áp dụng là thuật toán SVM kết hợp với các chỉ số chứng khoán cơ bản, chỉ số kỹ thuật đƣợc lựa chọn. Sự kết hợp này sẽ cho ta một hệ hỗ trợ cho quyết định dự báo giá chứng khoán sẽ tăng hay giảm hoặc không thay đổi. Mô hình dự báo sẽ đƣợc trình bày ở phần tiếp theo dƣới đây.

3.2. Mô hình dự báo (Predictive Model)

Dựa vào những phân tích trên, ở đây chúng tôi sử dụng mô hình cho việc dự báo đƣợc thực hiện nhƣ sau:

Hình 3.1: Mô hình dự báo chứng khoán đề xuất

Ở đây chúng tôi sử dụng mô hình SVR và thử nghiệm với hàm nhân cho SVR là hàm nhân đa thức (Polynomial - Poly) để ánh xạ dữ liệu nhƣ là các biến đầu vào xi

trong mô hình SVR. Thử nghiệm thực hiện với giải thuật SMO cho mô hình hồi quy vector hỗ trợ.

Trong mô hình này do việc triển khai thuật toán SVR là phức tạp nên chúng tôi đã sử dụng thƣ viện có sẵn là LIBSVM – do Chih-Chung Chang và Chih-Jen Lin đƣa ra tại http://www.csie.ntu.edu.tw/~cjlin/libsvm/ kết hợp với công cụ hỗ trợ Weka phiên bản 3.7.9 (là công cụ mã nguồn mở viết bằng Java bởi các nhà khoa học thuộc trƣờng Đại học Waitako phát triển phục vụ cho lĩnh vực học máy và khai phá dữ liệu để triển khai thực nghiệm mô hình. Bộ dữ liệu thực tế đƣợc thu thập từ các sàn chứng khoán HSX và HNX của thị trƣờng chứng khoán Việt Nam tại website www.stox.vn.

3.3. Thu thập và xử lý dữ liệu

Để mô hình hoạt động hiệu quả thì dữ liệu đầu vào dành cho việc huấn luyện (training) và đánh giá (testing) là rất quan trọng. Việc thu thập và xử lý dữ liệu thông qua các bƣớc sau:

- Thu thập dữ liệu

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

- Chọn dữ liệu đầu vào

- Phân hoạch dữ liệu

3.3.1. Thu thập dữ liệu

Chúng tôi thực hiện thu thập dữ chứng khoán của từng cổ phiếu với các thông tin về cổ phiếu là: Ngày giao dịch, Giá mở cửa, Giá đóng cửa, Thay đổi, Giá cao nhất, Giá thấp nhất, Khối lượng giao dịch khớp lệnh, Giá trị giao dịch khớp lệnh, Khối lượng giao dịch thỏa thuận, Giá trị giao dịch thỏa thuận.

Bộ dữ liệu đƣợc thu thập dựa trên dữ liệu lịch sử của mã cổ phiếu đƣợc giao dịch trên sàn chứng khoán. Dữ liệu đƣợc lấy về từ trang www.stox.vn.

3.3.2. Tiền xử lý dữ liệu

Trong qui trình khai phá dữ liệu, công việc xử lý dữ liệu trƣớc khi đƣa vào các mô hình là rất cần thiết, bƣớc này làm cho dữ liệu có đƣợc ban đầu qua thu thập dữ liệu (gọi là dữ liệu gốc original data) có thể áp dụng đƣợc (thích hợp) với các mô hình khai phá dữ liệu (data mining model) cụ thể. Các công việc cụ thể của tiền xử lý dữ liệu thƣờng bao gồm những công việc nhƣ:

- Clean data: Làm sạch dữ liệu nhƣ xóa bỏ các dữ liệu bất thƣờng (Outlier).

- Transformation: Chuyển đổi dữ liệu cho phù hợp với các mô hình nhƣ chuyển đổi dữ liệu từ dạng số (numeric) sang dữ liệu dạng danh nghĩa (nomial) hay dữ liệu dạng thứ tự (ordinal).

Ở giai đoạn này, ngoài các dữ liệu đƣợc thu thập về chúng tôi còn thực hiện thêm các thông tin dữ liệu khác là các chỉ số kỹ thuật, thông tin này đƣợc tính toán dựa trên các thông tin đã có – Các chỉ số cụ thể sẽ đƣợc trình bày ở phần thực nghiệm.

Để sử dụng thƣ viện này dữ liệu phải đƣợc chuẩn hóa về theo định dạng ARFF (*.arff), cấu trúc của tập tin ARFF bao gồm các thành phần:

- Header: Chứa khai báo quan hệ, danh sách các thuộc tính (tên, kiểu dữ liệu).

- Data: Có nhiều dòng, mỗi dòng thể hiện giá trị của các thuộc tính cho một mẫu. Tập tin đƣợc khai báo nhƣ sau:

% This is a relation about wather @relation <relation-name>

@attribute <attribute-name><datatype>

@attribute <nominal attributes>{<nominal name1>, <nominal name2>, …, <nominal namen>}

@data

data 1,data 2, …, data n, Trong đó:

% : Sau dấu này là các chú thích

@relation <relation-name> : Khai báo tên của mối quan hệ (cũng chính là tên của file dƣ liêu), nó đƣợc khai báo ở dòng đầu tiên và tên của mối quan hệ phải viết liền hoặc viết cách thì phải có dấu gạch nối.

@attribute <attribute-name><datatype>: Là phần định nghĩa tên thuộc tính và kiểu dữ liệu. Thứ tự khai báo các thuộc tính là vị trí các dữ liệu trong tập tin, có 2 loại thuộc tính là:

- Thuộc tính số: Là các giá trị kiểu số có thể là số thực hoặc số nguyên

(vd: @attribute Gia_mocua string )

- Thuộc tính danh nghĩa: Đƣợc xác định bằng cách cung cấp một danh sách các thuộc tính ( Vd: @attribute Gia_CP {Tang,Giam,Khong_thaydoi}

* Với dữ liệu ngày tháng ta khai báo như sau: @attribute timestamp Date "yyyy-MM-dd HH:mm:ss"

* Phần phân loại được khai báo là giá trị cuối cùng

@data : Sau từ khóa này là bắt đầu của phần khai báo các giá trị của các thuộc tính đƣợc khai báo ở trên. Các dữ liệu phải tƣơng ứng với thứ tự các thuộc tính đƣợc khai báo ở trên.

Vd: 32, 53, 24, Tang Mẫu 1 ; 31, 50, 21, Giam Mẫu 2 ; ….

3.3.3. Chọn loại dữ liệu đầu vào

Với mỗi mã cổ phiếu có rất nhiều chỉ số dùng để đánh giá khác nhau, trong phạm vi bài toán dự báo chỉ số chứng khoán này ta chỉ chọn một số biến sau:

- Close: giá đóng cửa

- Ngoài ra, còn các dữ liệu đặc trƣng đƣợc dùng phổ biến trong các dự báo chứng khoán là các chỉ số kỹ thuật: trung bình trƣợt giản đơn (SMA) 12 ngày và 26 ngày, dải biên độ biến động giá (Bollinger bands) với Bollinger upper và lower, trung bình trƣợt hội tụ và phân kỳ (MACD) và MACD Histogram [10].

Các dữ liệu chỉ số kỹ thuật trên và giá đóng của tạo nên véc tơ đầu vào với số chiều là 8.

3.3.4. Phân hoạch dữ liệu

Sau khi chuẩn hoá dữ liệu, chúng ta chia dữ liệu thành các tập là tập huấn luyện (train set) và tập kiểm tra (test dataset). Tập huấn luyện là tập lớn nhất đƣợc sử dụng bởi mô hình để học các mẫu trong tập dữ liệu. Tập kiểm tra có kích cỡ chiếm khoảng 10%-30% của tập huấn luyện, kiểm tra độ chính xác của thuật toán.

Mô hình dựa đoán với dữ liệu huấn luyện và kiểm tra thành 3 xu hƣớng: Tăng, Giảm và Không xu hƣớng. Ở đây chúng tôi quy định Tăng tƣơng ứng với giá trị 1, Giảm tƣơng ứng với -1, Không xu hƣớng tƣơng ứng với giá trị 0.

Dữ liệu đƣợc gán nhãn dựa trên giá trị tăng giảm của ngày hôm đó.

Sau đó dữ liệu đƣợc phân hoạch cho các tập train và tập test, chúng tôi thực hiện dự báo xu hƣớng của mỗi mã cổ phiếu trong 1 ngày tiếp theo và 5 ngày tiếp theo.

3.4. Đánh giá mô hình

Ƣớc lƣợng độ chính xác của mô hình là quan trọng ở chỗ nó cho phép dự đoán đƣợc độ chính xác của các kết quả dự báo những dữ liệu tƣơng lai. Độ chính xác còn

holdout và k-fold cross-validation. Cả 2 kỹ thuật này đều dựa trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu [9]:

Trong phƣơng pháp holdout, dữ liệu dƣa ra đƣợc phân chia ngẫu nhiên thành 2 phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra. Thông thƣờng 2/3 dữ liệu cấp cho tập dữ liệu đào tạo, 1/3 dữ liệu còn lại cho tập dữ liệu kiểm tra.

Trong phƣơng pháp k-fold cross validation tập dữ liệu ban đầu đƣợc chia ngẫu nhiên thành k tập con (fold) có kích thƣớc xấp xỉ nhau S1, S2, …, Sk. Quá trình học và test đƣợc thực hiện k lần. Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp thành tập dữ liệu đào tạo. Có nghĩa là, đầu tiên việc dạy đƣợc thực hiện trên các tập S2, S3 …, Sk, sau đó test trên tập S1; tiếp tục quá trình dạy đƣợc thực hiện trên tập S1, S3, S4,…, Sk, sau đó test trên tập S2; và cứ thế tiếp tục.

Độ chính xác là toàn bộ số phân lớp đúng từ k lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu.

Hình 3.2: Phương pháp K-Fold

Nếu độ chính xác của mô hình đƣợc coi nhƣ là chấp nhận đƣợc, mô hình có thể đƣợc sử dụng để phân lớp các mẫu về sau mà nhãn lớp là chƣa biết. Dữ liệu nhƣ vậy cũng đƣợc biết đến trong học máy nhƣ là các dữ liệu chƣa biết “unknown” hoặc dữ liệu trƣớc đây chƣa tồn tại “previously unseen”.

Các tiêu chuẩn sau để đánh giá mô hình:

- Độ chính xác dự đoán (predictive accuracy): Độ chính xác là khả năng của mô hình để dự đoán chính xác nhãn lớp của dữ liệu mới hay dữ liệu chƣa biết.

- Tốc độ (speed): Tốc độ là những chi phí tính toán liên quan đến quá trình tạo ra và sử dụng mô hình.

- Sức mạnh (robustness): Sức mạnh là khả năng mô hình tạo ta những dự đoán đúng từ những dữ liệu noise hay dữ liệu với những giá trị thiếu.

- Khả năng mở rộng (scalability): Khả năng mở rộng là khả năng thực thi hiệu quả trên lƣợng lớn dữ liệu của mô hình đã học.

- Tính hiểu được (interpretability): Tính hiểu đƣợc là mức độ hiểu và hiểu rõ những kết quả sinh ra bởi mô hình đã học.

- Tính đơn giản (simplicity): Tính đơn giản liên quan đến kích thƣớc của cây quyết định hay độ cô đọng của các luật.

Độ đo chất lƣợng phân lớp tiêu chuẩn thể hiện thông qua:

- Độ chính xác (accuracy): là tỷ lệ các cặp khái niệm đƣợc phân loại đúng trên tổng số các cặp khái niệm.

- Độ hồi nhớ (recall): Đo tỷ lệ các tƣơng ứng đƣợc tìm thấy đúng trong tổng số tƣơng ứng đƣợc mong đợi của tập tham chiếu

- Độ đúng đắn (precision): Đo tỷ lệ các tƣơng ứng đƣợc tìm thấy đúng trên tổng số tƣơng ứng đƣợc trả về.

- Độ đo F-measure: là trung bình điều hoà có trọng số của precision và recall, đƣợc sử dụng để đánh giá tổng quát các hệ thống.

Các độ đo đƣợc định nghĩa dựa trên công thức nhƣ hình dƣới. Chúng ta xem các lớp trong một vấn đề phân lớp nhị phân nhƣ là lớp dƣơng “positive” và âm

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Dự báo xu hướng chứng khoán tại Việt Nam bằng phương pháp học máy 04 (Trang 35)

Tải bản đầy đủ (PDF)

(52 trang)