0
Tải bản đầy đủ (.pdf) (74 trang)

Tiêu chuẩn đánh giá 37

Một phần của tài liệu LUẬN VĂN: ỨNG DỤNG MÔ HÌNH HỌC MÁY TIÊN TIẾN NHẰM TĂNG CƯỜNG KHẢ NĂNG DỰ BÁO XU THẾ CỦA THỊ TRƯỜNG CHỨNG KHOÁN PPT (Trang 46 -74 )

Do sự phụ thuộc thời gian giữa các mẫu, các thủ tục đánh giá mô hình dựđoán thời gian thực sẽ khác nhau xuất phát từ mô hình chuẩn. Các mô hình gần đây thường được xây dựng dựa trên chiến lược tái lấy mẫu. Ví dụ như chiến lược kiểm chứng chéo (Cross- Validation) – là việc phân nhóm một mẫu dữ liệu thành các mẫu con để cho việc phân tích ban đầu chỉ dựa trên tập mẫu con đơn, còn các mẫu còn lại được giữ kín để dùng cho việc xác nhận và kiểm chứng lại lần phân tích đầu tiên đó, hoặc hoạt động bằng cách lấy mẫu ngẫu nhiên từ dữ liệu gốc chưa được sắp xếp. Mục đích của phương pháp luận này cho dữ liệu thời gian thực có thể dẫn tới những tình huống không mong muốn như sử dụng các mẫu quan sát ở tương lai cho các biến với mục đích huấn luyện, hoặc đánh giá mô hình với dữ liệu trong quá khứ. Để tránh những vấn đề này, tôi chia dữ liệu thành các cửa sổ thời gian, có được mô hình huấn luyện với thời gian trong quá khứ và kiểm tra nó với khoảng thời gian sau đó.

Mục đích chính của bất kỳ chiến lược đánh giá nào là độ chính xác của mô hình dự đoán đạt được một giá trịđáng tin cậy nào đó. Nếu như sựđánh giá của chúng ta đáng tin cậy, chúng ta hoàn toàn có thể tin tưởng rằng giá trị dựđoán sẽ không lệch nhiều so với kết quả thực tế khi ta đưa dữ liệu mới vào mô hình

Thiết lập thời gian khởi tạo t là thời gian bắt đầu giai đoạn kiểm chứng. Dữ liệu với thời gian trước t dùng để huấn luyện mô hình dựđoán, còn dữ liệu có được sau thời điểm t sẽđược sử dụng để kiểm chứng hiệu quả của mô hình đó

Đầu tiên ta phải thu được mô hình đánh giá với dữ liệu trước thời điểm t và sau đó kiểm tra mô hình với dữ liệu sau thời điểm t. Chúng ta có thể sử dụng chiến lược cửa sổ, đầu tiên là Growing window [10].

38 Hoặc có thể sử dụng Sliding window [10]

Những hướng tiếp cận cửa sổ trên rất phù hợp khi chúng ta sử dụng dữ liệu mới vào để kiểm tra mô hình, thời gian khi đó là liên tục. Tuy nhiên chúng yêu cầu một lượng lớn mô hình. Mặc dù còn tồn tại những thay đổi trung gian, trong nghiên cứu này ta sẽ áp dụng chiến lược mô hình đơn đểđơn giản quá trình kiểm tra mô hình. Tuy nhiên, chiến

1. Cho chuỗi Rh(1),Rh(2), . . . ,Rh(n) và thời gian t (t < n)

2. Xây dựng mô hình dự đoán với tập dữ liệu huấn luyện Rh(1),Rh(2), . . . ,Rh(t−1)

3. LẶP

a. Dự đoán giá trị của Rh(t) b. Ghi lại tỉ lệ lỗi dự đoán c. Thêm Rh(t) vào tập huấn luyện

d. Xây dựng mô hình mới với tập huấn luyện mới e. Đặt t = t + 1

4. ĐẾN KHI t = n

1. Cho chuỗi Rh(1),Rh(2), . . . ,Rh(n), thời gian t và kích thước cửa sổ w

2. Xây dựng mô hình với tập dữ liệu huấn luyện Rh(t−w−1), . . . ,Rh(t−1)

3. LẶP

a. Dự đoán giá trị cho Rh(t) b. Ghi lại tỉ lệ lỗi dự đoán

c. Thêm Rh(t) vào tập huấn luyện và xóa Rh(t−w−1) ra khỏi tập huấn luyện

d. Xây dựng mô hình mới với tập huấn luyện mới e. Đặt t = t + 1

39

lược cửa sổ có thể giúp ta đạt được những kết quả tốt hơn về sau, vì vậy với những ứng dụng thực tế, những điều này không nên bỏ qua.

Khi có quyết định thiết lập thử nghiệm, ta vẫn phải chọn công thức tỉ lệ lỗi sẽ sử dụng đểđánh giá mô hình. Đồng thời, chúng ta cũng phải đề cập đến những giới hạn lỗi tương quan như chuẩn trung bình bình phương sai số (root mean squared error – RMSE) [19], cung cấp chỉ số lỗi tương quan của mô hình được tính như trong công thức (3.5)

Đặt At = Giá trị thực ở thời điểm t (quan sát t) Ft= Giá trị dự báo ở thời điểm t

n = số lượng quan sát sử dụng trong dự báo 2 (At Ft) RMSE n − =

(3.5)

Trong kỹ thuật phân tích dữ liệu thời gian thực (time series) sử dụng cây quyết định, có một phương pháp điển hình là sử dụng một ma trận nhầm lẫn (confusion matrix) [11] . Confusion matrix bao gồm số trường hợp phân lớp đúng, số trường hợp phân lớp sai trong mỗi lớp. Những trường hợp phân lớp đúng của mỗi lớp nằm trên đường chéo chính của ma trận còn những trường hợp khác sẽ là phân lớp sai trong mỗi lớp. Trong trường hợp chúng ta có 2 lớp thì kích cỡ của ma trân là 2 x 2 như hình vẽ dưới đây

Giá trị thực sự Giá trị dựđoán Tăng Giảm Tăng Giảm m11 m12 m21 m22 m10 m20 m01 m02 m Hinh 3-6: Bảng ma trận 2 x 2

Trong đó: m là tổng số trường hợp dựđoán có trong tập dữ liệu

m11 là số dựđoán lớp“Tăng” và m22 là số dựđoán lớp “Giảm” là đúng m12 là số dựđoán lớp “Tăng” và m21 là số dựđoán “Giảm” là sai

40

Dựa trên ma trân này, chúng ta có thể tính được các độđo dùng đểđánh giá mô hình nhưđộ chính xác của mô hình cũng như tỷ lệ các nhãn đã dựđoán sai

Độ chính xác (Accuracy): phần trăm số trường hợp dựđoán đúng

Accuracy = 11 22 11 12 21 22

m m

m m m m

+

+ + +

(3.6)

Misclassification rate là tỷ lệ giữa các lớp dựđoán sai so với tổng số các trường hợp phân lớp Misclassification rate = 12 21 11 12 21 22

m m

m m m m

+

+ + +

(3.7) 3.4.6. Trin khai

Triển khai được coi như là bước cuối cùng của việc thiết kế mô hình cây quyết định, nhưng thực tế yêu cầu việc triển khai phải được chú ý trước khi tập hợp dữ liệu. Dữ liệu, tiêu chuẩn đánh giá, thời gian huấn luyện đều phải được định hướng trong mô trường mà cây quyết định sẽ triển khai. Hầu hết các nhà cung cấp phần mềm cây quyết định đều cung cấp một mô hình đã được huấn luyện trong chương trình hoặc trong file cấu hình. Nếu không có sẵn phần mềm, cây quyết định cũng có thể được tạo ra dễ dàng khi hiểu kiến trúc của nó, số nhánh tối thiểu trên một nút lá, một ngưỡng dùng để cắt tỉa cây…

Một ưu điểm của mô hình cây quyết định là khả năng thích ứng với sự thay đổi của môi trường qua sự huấn luyện tuần hoàn. Khi mô hình được triển khai, hiệu năng của mô hình sẽ giảm dần nếu không được huấn luyện lại nhưng không có nghĩa hiệu năng sẽđược duy trì như các biến độc lập. Do đó phải thường xuyên huấn luyện lại mô hình trong suốt quá trình thử nghiệm trên mô hình cuối cùng

3.5. Tng kết

Mục đích của chương này là giới thiệu cách thiết kế một mô hình dự báo chứng khoán. Thiết kế gồm 6 bước: (1) Tập hợp dữ liệu, (2) xử lý dữ liệu, (3) phân hoạch dữ liệu, (4) mô hình hóa cây quyết định, (5) tiêu chuẩn đánh giá, (6) triển khai. Với cách thiết

41

kế chi tiết cho từng bước đã chỉ ra ở trên, bạn đọc có thể tự xây dựng mô hình cây quyết định cho ứng dụng của mình.

Chương 4. Thực nghiệm

4.1. Môi trường thc nghim

Mô hình được cài đặt bằng phần mềm weka.3.6.1 chạy trên nền hệđiều hành window 7, máy tính tốc độ corei3 2.13 GHz, bộ nhớ 2GB RAM

Nói một cách ngắn gọn, weka là môi trường thử nghiệm khai phá dữ liệu do các nhà khoa học thuộc trường đại học waitako, là từ viết tắt của Waitako Environment for

Knowledge Analysis, khởi xướng và được sựđóng góp của rất nhiều nhà nghiên cứu trên thế giới. Weka là một gói phần mềm mã nguồn mởđược viết bằng ngôn ngữ java, cung cấp công cụ trực quan và sinh động cho sinh viên và người ngoài ngành công nghệ thông tin tìm hiểu về khai phá dữ liệu. Nó bao gồm một tập lớn các công cụ và thuật toán học máy dùng để phân tích và xây dựng mô hình dựđoán. Giao diện chính của weka có cho phép người dùng có thể chọn lựa 4 kiểu giao diện khác nhau để thao tác [1, 14]

o Explorer : giao diện đồ họa, cho phép truy xuất vào tất cả tiện ích của nó bằng cách sử dụng trình lựa chọn và thay đổi các tham số

o Knowledge Flow: cho phép thiết kế, cấu hình cho xử lý dòng dữ liệu.

o Experimenter: cho phép tựđộng xử lý dễ dàng phân loại, lọc với các tham số khác nhau

42

Hình 4-0: Giao diện chính của weka

Có thể tải phần mềm và tài liệu hướng dẫn tại trang web http://www.cs.waikato.ac.nz/ml/weka/

Trong khóa luận này này, tôi sử dụng giao diện CLI để thực nghiệm trên tập dữ liệu fpt_stock bởi các tính năng ưu việt mà weka cung cấp cũng như hỗ trợ giải thuật cây quyết định C4.5

4.2.

Xây d

ng cơ s d liu

4.2.1. D liu chng khoán

Dữ liệu tài chính của các công ty được niêm yết giá công khai trên các sàn giao dịch chứng khoán và trên internet. Có thể thu thập được dữ liệu tài chính của các công ty niêm yết giá trên sàn giao dịch ở khá nhiều trang như: trung tâm giao dịch chứng khoán Hà Nội (www.hastc.org.vn), Sở giao dịch chứng khoán HCM (www.hsx.com), và một số trang khác như: www.viestock.com, www.finalcial.yahoo.com, www.cafef.vn,

http://priceboard.fpts.com.vn

Khóa luận đã thu thập được dữ liệu chứng khoán của sàn giao dịch chứng khoán HCM, dữ liệu giao dịch của công ty fpt từ năm 2008 đến 31/3/2010. Ta sẽ sử dụng chỉ số vnindex thu thập được từ năm 2008 đến năm 2010 của công ty fpt để tiến hành thực nghiệm mô hình

Sau khi xử lý dữ liệu, loại bỏ các thông tin nhiễu, thiếu thông tin và không cần thiết. Dữ liệu có thểđược lưu trong một file txt hoặc csv.

4.2.2. Xây dng d liu cho mô hình

Dữ liệu thu được từ các sàn giao dịch chứng khoán bao gồm rất nhiều thông tin như giá mở cửa (open), giá đóng cửa (close), giá cao nhất trong ngày (high), giá thấp nhất

43

dựng mô hình dự báo nhưng để đơn giản trong khóa luận tôi chỉ sử dụng giá đóng cửa trong các phiên giao dịch.

Hình 4-1: Dữ liệu chứng khoán thu được từ sàn chứng khoán

Đểđảm bảo tính ngẫu nhiên của dữ liệu và tránh tình trạng sử dụng dữ liệu của tương lai để huấn luyện hoặc dữ liệu của quá khứđể kiểm chứng mô hình. Tôi chia bộ dữ liệu của năm 2008-2010 thành 10 bộ dữ liệu, mỗi bộ dữ liệu gồm 12 tháng khác nhau lấy một cách ngẫu nhiên tuần tự dùng để huấn luyện mô hình và lấy dữ liệu của 3 tháng kế tiếp để làm tập dữ liệu kiểm chứng. Tôi đã viết một chương trình bằng C/C++ để lấy giá đóng cửa của các phiên giao dịch trong các bộ dữ liệu và chuyển về dữ liệu dưới dạng ma trận nhưđã trình bày ở mục 3.4.2

44

Đầu vào của chương trình là các file dữ liệu sau khi đã tách ra từng bộ dữ liệu có dạng như sau:

45 (b)

Hình 4-2: (a) Một trong số những dữ liệu huấn luyện từ 1/2008-12/2008 (b) Một trong số những bộ kiểm chứng từ 1/2009-3/2009

Chương trình sẽ lấy giá đóng cửa của các phiên giao dịch sau đó chuyển về dữ liệu dưới dạng bảng với các T1, T2, …., T20 là giá cổ phiếu của 20 ngày giao dịch trong quá khứ, T1 là ngày gần với ngày cần dựđoán nhất, rồi tính toán xem với các giá cổ phiếu trong giai đoạn được đưa ra ấy tăng hay giảm và đưa ra kết luận ở trường Class ở file đầu ra. File đầu ra được lưu dưới định dạng .csv có dạng

Hình 4-3: Một trong những file dữ liệu đầu ra của chương trình

Sau khi xử lý xong dữ liệu, ta đưa dữ liệu vào trong weka. Weka CLI cung cấp một số lệnh để đọc hoặc chuyển sang định dạng chuẩn mà gói weka thường xử lý (.arff), các lệnh đó là:

Weka.core.converters.CSVLoader: đọc d liu có định dng CSV Weka.core.converters.C45Loader: đọc d liu có định dng C4.5

46

Hình 4-4: Lệnh đọc file CSV và chuyển thành file ARFF

Sau khi thực hiện những câu lệnh này, dữ liệu trong file csv được đưa vào trong weka và chuyển sang định sạng .arff để sử dụng cho việc huấn luyện mô hình. Hình sau mô tả dữ liệu sau khi đã đưa vào trong weka

- java weka.core.converters.CSVLoader F:\fpt_train_1.csv > F:\fpt_train_1.arff - java weka.core.converters.CSVLoader

F:\fpt_validation_1 > F:fpt_validation_1.arff - ……

47

Hình 4-5: Dữ liệu dưới định dạng arff trong weka

Dữ liệu này khi đưa vào mô hình cây quyết định sẽ dự báo giá đóng cửa của ngày hôm sau phụ thuộc vào 20 ngày trước đó.

4.3. Thc nghim mô hình cây quyết định cho d liu thi gian thc

Với bài toán dự báo thị trường chứng khoán, có hai cách xây dựng mô hình cây quyết định như sau:

Một là, ta xây dựng mô hình với mục đích dựđoán giá cổ phiếu của ngày thứ t+1 tăng hay giảm khi biết giá cố phiếu của n ngày trước đó: t, t-1, t-2, …., t-n+1. Sau đó dựa

48

vào kết quả dự báo này như một gợi ý để nhà đầu tưđưa ra các quyết định giao dịch của riêng mình

Hai là, ta xây dựng hệ thống đoán nhận giúp người dùng đưa ra quyết định trực tiếp. Theo hướng tiếp cận này, ta sẽ có tập mẫu các giá trị đầu ra: “mua”, “bán”, “giữ lại”. Hệ thống sẽđoán nhận ngày thứ t+1 sẽ thuộc giao dịch nào, nó giống như bài toán phân loại mẫu vậy.

Thị trường chứng khoán là thị trường rất nhạy cảm và bị tác động bởi nhiều yếu tố, với dữ liệu thu thập được và thời gian hạn hẹp, khóa luận chọn hướng tiếp cận đầu tiên cho nghiên cứu của mình

4.3.1. Mô hình d báo tài chính thi gian thc

Sử dụng dữ liệu đã được xây dựng sẵn ở trên, dùng các tập huấn luyện

fpt_train_1.arff, fpt_train_2.arff, …., fpt_train_10.arff để huấn luyện mô hình và các tập kiểm tra tương ứng fpt_validatoion_1.arff, ……,fpt_validation_10.arff để kiểm thử mô hình.

Ta sử dụng lệnh phân lớp dùng cây quyết định với 10 bộ dữ liệu đã xử lý để thu được mô hình dự báo giá chứng khoán như sau:

-Bộ dữ liệu thứ 1 java weka.classifiers.trees.J48 –C 0.25 –M 2 –t F:\fpt_train_1.arff -d F:\fpt_1.model -Bộ dữ liệu thứ 2 java weka.classifiers.trees.J48 –C 0.25 –M 2 –t F:\fpt_train_2.arff -d F:\fpt_2.model -…. -Bộ dữ liệu thứ 10 java weka.classifiers.trees.J48 –C 0.25 –M 2 –t F:\fpt_train_10.arff -d F:\fpt_10.model

49

Hình 4-6: Lệnh huấn luyện dữ liệu

Trong các lệnh huấn luyện trên, tôi cung cấp tập dữ liệu đầu vào là các tập huấn luyện đã xử lý fpt_train_1.arff, fpt_train_2.arff, ….fpt_train_10.arff và các tập kiểm chứng fpt_validatoion_1.arff, ……, fpt_validation_10.arff với các tham số mặc định của phân lớp bằng cây quyết định trong weka. Số phần tử nhỏ nhất trên một nút lá (-M) là 2 và ngưỡng sử dụng cho việc cắt tỉa (-C) là 0.25. Kết quả của quá trình phân lớp được lưu ra các file như fpt_1.model, fpt_2.model, …., fpt_10.model. Tập hợp kết quả của các lần huấn luyện, ta có bảng sau Tập dữ liệu Thời gian xây dựng mô hình (s) Accuracy (%) Missclassification (%) fpt_train_1 0.03 98.2063 1.7937 fpt_train_2 0.02 98.6175 1.3825 fpt_train_3 0.03 97.7578 2.2422 fpt_train_4 0.03 98.2063 1.7937 fpt_train_5 0.02 99.1071 0.8929 fpt_train_6 0.02 99.1189 0.8811 fpt_train_7 0.02 99.1228 0.8772 fpt_train_8 0.02 99.1228 0.8772 fpt_train_9 0.02 97.807 2.193 fpt_train_10 0.02 97.8261 2.1739 Kết quả trung bình 0.023 98.4893 1.5107 Hình 4-7: Kết quả qua các lần huấn luyện

Kết quả này cho chúng ta biết, độ chính xác của các trường hợp phân lớp trên tập dữ liệu huấn luyện trung bình là 98.4893% và có 1.5107% các trường hợp phân lớp sai. Thời gian trung bình để huấn luyện các mô hình là 0.023s

50

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

Chúng ta thường quan tâm xem xét độ chính xác trong dựđoán xu hướng của thị trường chứng khoán. Ví dụ như giá trị dựđoán của một ngày sau tăng hay giảm. Nhưđã giới thiệu trong mục 3.4.5, chúng ta sử dụng ma trận nhầm lẫn (confusion matrix) để tính cách độđo nhưđộ chính xác (accuracy), misclassification. Ta sử dụng Accuracy để ước lượng độ chính xác của mô hình trong việc dựđoán thị trường chứng khoán là tăng hay giảm. Misclassfication sử dụng cho những dựđoán sai so với dữ liệu thực tế

Trong weka CLI, sau khi huấn luyện mô hình thông qua tập training, chúng ta cung

Một phần của tài liệu LUẬN VĂN: ỨNG DỤNG MÔ HÌNH HỌC MÁY TIÊN TIẾN NHẰM TĂNG CƯỜNG KHẢ NĂNG DỰ BÁO XU THẾ CỦA THỊ TRƯỜNG CHỨNG KHOÁN PPT (Trang 46 -74 )

×