Như vậy, về cơ bản thì mô hình cây quyết định là một mô hình tương đối tốt đối với
dữ liệu thời gian thực. Độ chính xác khi xây dựng mô hình trên tập huấn luyện rất cao,
cao hơn hẳn mô hình mạng nơron và SVM và thời gian xây dựng mô hình rất rất nhanh
giúp nhà đầu tư có nhiều thời gian suy nghĩ trước khi quyết định hơn. Phần lớn các bộ dữ
liệu có kết quả dự đoán gần với giá trị thực hơn so với mô hình mạng nơron và SVM
74 trang |
Chia sẻ: lylyngoc | Lượt xem: 2705 | Lượt tải: 1
Bạn đang xem trước 20 trang 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ên quan đến tập N trường hợp. Tập E
không thuộc về các lớp đa số. Thay vì E/N, giải thuật C4.5 xác định một giới hạn trên của
một phân phối nhị thức khi sự kiện E được quan sát trong N mẫu thử, một tham số riêng
được sử dụng thường có giá trị là 0.25.
• Cắt nhánh được lan truyền từ lá đến gốc của cây. Lỗi ước lượng tại nút lá với N
25
trường hợp và E lỗi là N lần tỉ lệ lỗi thiêu số như nêu trên. Cho mỗi cây con, C4.5 thêm
các lỗi được ước lượng của các nhánh và so sánh nó với cây con được thay thế bới một lá;
nếu kết quả sau cùng không cao hơn kết quả trước đó, cây con bị cắt. Tương tự, C4.5
kiểm tra các lỗi ước lượng nếu cây con được thay bằng một nhánh của nó và khi điều này
tồn tại và có ích, cây được sửa đổi lại. Quá trình cắt nhánh được hoàn tất xuyên qua cây.
Tổng kết
Như vậy, ta đã biết một cây quyết định gồm những thành phần nào, các độ đo, các
thuật toán dùng trong quyết định. Tóm lại, để xây dựng được một cây quyết định, chúng
ta cần nắm vững những khái niệm sau:
• Cấu trúc của một cây quyết định: nút lá, nhánh
• Độ đo sử dụng để xác định điểm chia để xây dựng được một cây tối ưu
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp có
một số ưu điểm sau:
• Cây quyết định dễ hiểu. Người ta có thể hiểu mô hình cây quyết định sau khi được
giải thích ngắn
• Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần thiết. Các kỹ
thuật khác thường đòi hỏi chuấn hóa dữ liệu, cần tạo các biến phụ và loại bỏ các giá
trị rỗng
• Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị là tên
thể loại. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ gồm một
loại biến. Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên, trong khi
mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số
• Cây quyết định là một mô hình hộp trắng. Nếu có thể quan sát một tình huống cho
trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằng logic
Boolean. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho kết
quả quá phức tạp để có thể hiểu được
• Có thể thẩm định một mô hình bằng các kiểm tra thống kê. Điều này làm cho ta có
thể tin tưởng vào mô hình
26
• Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn. Có thể
dung máy tính cá nhân để phân tích các lượng dữ liệu lớn trong thời gian đủ ngắn để
cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của cây quyết định
27
Chương 3. Mô hình cây quyết định trong dự báo xu thế của
thị trường chứng khoán
3.1. Giới thiệu chung về dữ liệu thời gian thực
Định nghĩa: Dữ liệu thời gian thực hay chuỗi tuần tự theo thời gian (time series) là
một chuỗi các giá trị của một đại lượng nào đó được ghi nhận là tuần tự theo thời gian [6,
15].
Những tập dữ liệu chuỗi thời gian rất lớn, xuất hiện trong nhiều lĩnh vực khác nhau
như y khoa, kỹ thuật, kinh tế, tài chính....
Ví dụ: Số lượng hàng hóa được bán ra trong 12 tháng năm 2008 của một công ty.
Các giá trị của chuỗi tuần tự theo thời gian của đại lượng X được kí hiệu là X1, X2,
….Xt,….Xn. với Xt là giá trị của X tại thời điểm t
3.1.1. Các thành phần của dữ liệu thời gian thực
Các nhà thống kê thương chia chuỗi tuần tự theo thời gian thành 4 thành phần:
• Thành phần xu hướng dài hạn (long-term trend componet)
• Thành phần mùa (seasional componet)
• Thành phần chu kỳ (cyclical componet)
• Thành phần bất thường (irregular componet)
Thành phần xu hướng dài hạn
Thành phần này dùng để chỉ xu hướng tăng hay giảm của đại lượng X trong thời
gian dài. Về mặt đồ thị thành phần này có thể biểu diễn bởi một đường thẳng thay một
đường cong tròn (Smooth curve)
28
Hình 3-0: Thành phần xu hướng dài hạn
Thành phần mùa
Thành phần này dùng để chỉ xu hướng tăng hay giảm của đại lượng X tính theo mùa
trong năm (có thể tính theo tháng trong năm)
Ví dụ: Lượng tiêu thụ chất đốt sẽ tăng vào mùa đông và giảm vào mùa hè, ngược lại,
lượng tiêu thụ xăng sẽ tăng vào mùa hè và giảm vào mùa đông
Lượng tiêu thụ đồ dùng học tập sẽ tăng vào mùa khai trường
Đồ thị:
Hình 3-1: Thành phần mùa
Thành phần chu kỳ
Thành phần này chỉ sự thay đổi của đại lượng X theo chu kỳ. Thành phần này khác
thành phần chu kỳ ở chỗ chu kỳ của đại lượng X kéo dài hơn 1 năm. Để đánh giá thành
phần này các giá trị của chuỗi tuần tự theo thời gian được quan sát hàng năm
29
Ví dụ: Lượng dòng chảy đến hồ Trị An từ năm 1959 – 1985
Hình 3-2: Thành phần chu kỳ
Thành phần bất thường
Thành phần này dùng để chỉ sự thay đổi bất thường của các giá trị trong chuỗi tuần
tự theo thời gian. Sự thay đổi này không thể dự đoán bằng các số liệu kinh nghiệm trong
quá khứ, về mặt bản chất thành phần này không có tính chu kỳ.
3.1.2. Các phương pháp làm trơn
Trong nhiều chuỗi tuần tự theo thời gian, thành phần mùa và thành phần bất thường
thay đổi quá lớn dẫn tới việc xác định giá trị của thành phần xu hướng và thành phần chu
kỳ gặp nhiều khó khăn. Để giải quyết vấn đề này, người ta có thể giảm nhỏ các giá trị
thay đổi quá lớn của thành phần mùa và bất thường bằng các phương pháp làm trơn. Tôi
xin giới thiệu hai phương pháp làm trơn đơn giản gồm: phương pháp trung bình dịch
chuyển (moving average) và phương pháp làm trơn bằng hàm số mũ (exponential
smoothing methods)
Phương pháp trung bình dịch chuyển
Nội dung của phương pháp này là thay thế giá trị quan sát Xt bằng giá trị Xt* là giá
trị trung bình của chính nó với m giá trị trước nó và m giá trị sau nó:
* 1
2 1
m
t t j
j m
X X
m +=−
= + ∑ (3.0)
30
* 1 1... ...
2 1
t m t m t t m t m
t
X X X X XX
m
− − + + − ++ + + + + += + (3.1)
Xt*: là giá trị dịch chuyển của 2m + 1 điểm
Ví dụ: nếu m = 2, giá trị trượt trung bình của 5 điểm là
* 2 1 1 2
5
t t t t t
t
X X X X XX − − + ++ + + += (3.2)
Nếu t = 3 thì:
* 1 2 4 53
5t
X X X X XX + + + += (3.3)
Phương pháp làm trơn bằng hàm số mũ đơn giản
Phương pháp làm trơn bằng hàm số mũ đơn giản được tiến hành dựa trên sự xem xét
liên tục của các giá trị trong quá khứ, dựa trên trung bình có trọng số của chuỗi dữ liệu.
Trọng số có giá trị càng nhỏ khi nó càng cách xa điểm dự báo.Với ý nghĩa như vậy ta có:
Vậy ta có:
(1 )t t tX X Xα α= + − với 0 1,α α≤ ≤ là hệ số làm trơn (3.4)
3.2. Dữ liệu chứng khoán
Dữ liệu chúng ta sử dụng là dữ liệu thời gian thực (time series). Đặc điểm chính để
phân biệt dữ liệu có phải là thời gian thực hay không đó chính là sự tồn tại của cột thời
gian được đính kèm trong đối tượng quan sát [12, 17]. Nói cách khác, dữ liệu thời gian
thực là một chuỗi các giá trị quan sát của biến Y:
31
Mục đích chính của việc phân tích chuỗi thời gian thực là thu được một mô hình dựa
trên các giá trị trong quá khứ của biến quan sát y1, y2, y3, …, yt-1, yt cho phép ta có thể
dự đoán được giá trị của biến Y trong tương lai, tức là có thể dự đoán được các giá trị
yt+1, …., yn.
Trong bài toán của chúng ta, dữ liệu chứng khoán được biết tới như một chuỗi thời
gian đa dạng bởi có nhiều thuộc tính cùng được ghi tại một thời điểm nào đó. Với dữ liệu
đang xết, các thuộc tính là: Open, High, Low, Close, Volume
Open: Giá cổ phiếu tại thời điểm mở cửa trong ngày
High: Giá cổ phiếu cao nhất trong ngày
Low: Giá cổ phiếu thấp nhất trong ngày
Close: Giá cố phiểu được niêm yết tại thời điểm đóng cửa sàn giao dịch
Volume: Khối lượng giao dịch cổ phiếu (bán, mua) trong ngày
32
3.3. Mô hình dự báo tài chính
Hình 3-3: Mô hình cây quyết định dự báo chứng khoán
M: Số phần tử nhỏ nhất mà một nút lá có
C: Ngưỡng dùng cho việc cắt tỉa
Mô hình gồm hai quá trình sau:
Tập huấn luyện
Xây dựng mô hình
â Cây quyết định
Mô hình
Cây quyết định
Tập kiểm chứng
M, C
Đánh giá
Mô hình tốt nhất
Dữ liệu kiểm tra
Dự đoán
33
Huấn luyện mạng (training): Đầu vào của cây quyết định là các thiết lập của các
tham số ban đầu như số nhánh mà các nút lá có thể có, một ngưỡng nào đó để cắt tỉa cây,
tập huấn luyện (training set),….Khi có được mô hình cây quyết định đã được huấn luyện,
chúng ta đưa tập dữ liệu kiểm chứng vào để đánh giá mô hình vừa xây dựng được, đồng
thời điều chỉnh các tham số của mô hình để thu được một mô hình cây quyết định tốt nhất
phục vụ dự báo. Cắt nhánh nằm nâng cao khả năng dự đoán và phân lớp của cây quyết
định
Dự đoán (forecasting): Sau khi kết thúc quá trình 1, ta sẽ thu được một mô hình
cây quyết định với các tham số tốt nhất. Khi đó, ta dùng bộ dữ liệu kiểm tra (testing set)
để đưa ra giá trị dự báo cho thị trường chứng khoán
3.4. Thiết kế cây quyết định cho dữ liệu thời gian thực
Không có một phương pháp chung nào để xác định cấu trúc phù hợp của cây quyết
định cho từng bài toán. Việc thiết kế cây quyết định có thành hay không phụ thuộc vào sự
hiểu biết rõ ràng về vấn đề, có thể dựa vào thực nghiệm hoặc kinh nghiệm trong lĩnh vực
đó
Tương tự như quá trình khai phá dữ liệu cơ bản, để đạt được kết quả trong khai phá
và thành công trong việc phân tích dữ liệu thì khi thiết kế cây dữ liệu cũng thực hiện theo
sáu bước sau
1. Tập hợp dữ liệu
2. Xử lý dữ liệu
3. Thiết lập tập huấn luyện, tập kiểm thử, tập kiểm tra
4. Mô hình hóa cây quyết định
5. Tiêu chuẩn đánh giá
6. Triển khai
3.4.1. Tập hợp dữ liệu
Các dữ liệu về chứng khoán của các công ty có thể thu thập được khá nhiều nguồn
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.vietstock.com,
www.finalcial.yahoo.com, www.cafef.vn.
34
3.4.2. Tiền xử lý dữ liệu
Dữ liệu được xử lý trước khi đưa vào sử dụng trong mô hình. Như đã giới thiệu
trong chương 2, ngoài số nút, số nhánh của cây, ta cần xác định đầu vào và đầu ra của
cây. Với bài toán dự báo dữ liệu thời gian thực, đầu ra là giá trị dự đoán cho thời điểm
t+1, đầu vào là giá trị k ngày trước đó (với k cho trước và tùy thuộc vào từng bài toán)
t(n) t(-1) t(n-2) …. t(n-k)
Với bài toán này, ta tổ chức dữ liệu thời gian lùi với các cột đầu là giá trị lần lượt
của k ngày trước đó được sắp xếp lùi dần theo thời gian t và cột cuối cùng là dự đoán
T1 T2 Tk Tk+1 Class
t(1) t(2) … t(k) t(k+1) Tang/Giam
t(2) t(3) … t(k+1) t(k+2) Tang/Giam
t(3) t(4) … T(k+2) t(k+3) Tang/Giam
… … … … … …
t(n) t(n+1) … t(n +k) t(n+k + 1) Tang/Giam
Hình 3-4: Tổ chức dữ liệu của mô hình
Khi xử lý dữ liệu, chúng ta nên xây dựng một vài bộ dữ liệu để xây dựng mô hình và
thay đổi các tham số khai phá để cố gắng xây dựng các mô hình tốt nhất hay hiệu quả
nhất
3.4.3. Phân hoạch dữ liệu
Sau khi chuẩn hóa dữ liệu, chúng ta chia dữ liệu thành hai tập: tập huấn luyện
(training set), tập kiểm chứng (validation test). Hai tập dữ liệu này được để trên hai bảng
khác nhau. Tập huấn luyện thường là tập lớn nhất chiếm khoảng 70% tập dữ liệu ban đầu
sử dụng để huấn luyện mô hình. Tập kiểm chứng chiếm khoảng 30% tập dữ liệu ban đầu
35
dùng để đánh giá mô hình được chọn có thật sự tốt hay không và để tìm ra được tham số
tốt nhất cho mô hình
Hiện tượng overfiting xảy ra khi cây được tạo ra có thể quá khít với dữ liệu huấn
luyện. Việc quá khít có thể xảy ra trong những trường hợp quá nhiều nhánh, một số có thể
phản ánh sự dị thường vì những phần tử hỗn loạn (noise) hoặc những phần tử nằm ngoài
phân lớp (outlier). Kết quả nhận được thiếu chính xác đối với những mẫu chưa thấy. Với
cây quyết định, số nhánh và kích thước tập huấn luyện có ảnh hưởng quyết định đến nguy
cơ overfiting [21].
Để ngăn chặn nguy cơ overfitting (hiện tượng khả năng học của mạng là rất tốt
nhưng khả năng tổng quát hóa của mạng là kém, tức là mạng dự đoán tốt với những dữ
liệu đã được huấn luyện nhưng lại tỏ ra kém hiệu quả khi dữ liệu mới vào mô hình) thì
người ta phân chia tập huấn luyện thành tập dữ liệu huấn luyện (2/3) và dữ liệu thử
nghiệm (1/3), sử dụng sự đánh giá chéo. Cũng có một cách khác là sử dụng tất cả dữ liệu
để huấn luyện nhưng áp dụng kiểm tra thống kê để định lượng khi nào mở rộng hoặc tỉa
bớt một nút để có thể cải thiện toàn bộ sự phân phối
Dữ liệu kiểm chứng Dữ liệu huấn luyện
Hình 3-5: Tỷ lệ kích thước của tập huấn luyện và tập kiểm chứng
36
3.4.4. Mô hình hóa cây quyết định
Lựa chọn độ đo để tìm thuộc tính chia cắt tốt nhất
Chỉ rõ độ đo dùng để đo sự không thuần nhất cho cây quyết định: entropy, gain hay
gini. Thông thường các thuật toán trong cây quyết định đã trình bày trong mục 2.7 đều lựa
chọn một độ đo nào đó để tìm một giá trị chia cắt tốt nhất. Ví dụ như ID3 chọn độ đo là
entropy, C4.5 chọn độ đo Gain Ratio, CART chọn độ đo là gini…. Hầu như tất cả các
thuật toán đều tính độ chia cắt trên tất cả các thuộc tính đầu vào, sau đó tùy từng độ đo để
tìm một thuộc tính có giá trị thích hợp: gain lấy thuộc tính có giá trị lớn nhất, gini lấy
thuộc tính có giá trị nhỏ nhất. .….
Số nhánh trên một nút lá
Nếu số nhánh này càng lớn thì cây sinh ra sẽ rộng, chiều cao của cây sẽ giảm xuống
và ngược lại. Thông thường, mọi người đặt giá trị này là 2 để đỡ phải tìm số nhánh phù
hợp cho cây. Nhưng như thế, nó có thể làm cho sự tương tác trong dữ liệu kém đi, đối với
những dữ liệu lớn có thể sẽ tạo ra một cây với kích thước lớn, làm giảm khả năng học của
cây.
Bohanec và Bratko (1994) [12] xây dựng một cây quyết định để quyết định xem vị
trí nào của con cờ trắng trên bàn cờ là hợp pháp. Họ đã chứng minh được rằng, khi xây
dựng cây quyết định với 4 nhánh thì độ chính xác là 98.45%, với 5 nhánh là 99.57%, với
11 nhánh thì độ chính xác là lớn nhất 100%. Như vậy, lớn gấp đôi về số nhánh nhưng độ
chính xác chỉ nhỏ hơn dưới 0.5%.
Ngưỡng sử dụng cho việc cắt tỉa
Nếu giá trị này càng nhỏ thì cây sinh ra sẽ được cắt càng nhiều và sẽ không tiếp tục
phân chia nếu số lượng bản ghi nhỏ hơn giá trị này. Mặc định giá trị này là 0.25
Cắt nhánh
Tránh overfitting và làm giảm những nhánh thừa không ảnh hưởng đến kết quả phân
lớp trên dữ liệu huấn luyện, chúng ta sử dụng cắt nhánh trong quá trình lớn lên của cây.
Có hai giá trị để chọn là “true” hoặc “false”. Mặc định là cây được cắt nhánh
37
3.4.5. Tiêu chuẩn đánh giá
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
4. ĐẾN KHI t = n
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( )t tA FRMSE
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. Triển 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. Tổng 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 thực nghiệm
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
o Simlpe CLI: cho phép truy xuất thông qua các câu lệnh
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
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ữ liệu
4.2.1. Dữ liệu chứng 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,
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 dựng dữ liệu 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
(low), khối lượng giao dịch (volume)…Tất cả các thông tin đều trợ giúp một phần khi xây
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:
(a)
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ữ liệu có định dạng CSV
Weka.core.converters.C45Loader: đọc dữ liệu có định dạng 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. Thực nghiệm mô hình cây quyết định cho dữ liệu thời gian thực
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 thời gian thực
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
cấp các tập kiểm chứng vào mô hình huấn luyện để xác định Accuracy và
misclassification
Hình 4-8: Lệnh đánh giá dựa trên tập kiểm chứng
Kiểm thử mô hình với 10 bộ dữ liệu kiểm chứng và 10 mô hình đã xây dựng
được chúng ta có kết quả đánh giá trên tập kiểm chứng như sau:
- Bộ dữ liệu thứ 1
java weka.classifiers.trees.J48 -l F:\fpt_1.model –T
F:\fpt_validation_1.arff
- Bộ dữ liệu thứ 2
java weka.classifiers.trees.J48 –l F:\fpt_2.model –T
F:\fpt_validation_2.arff
- ….
- Bộ dữ liệu thứ 10
java weka.classifiers.trees.J48 –l F:\fpt_10.model–T
F:\fpt_validation_10.arff
51
Tập kiểm chứng Accuracay (%) Misclassification (%)
fpt_validation_1 48.6486 51.3514
fpt_validation _2 85.3659 14.6341
fpt_validation _3 90.2439 9.7561
fpt_validation _4 100 0
fpt_validation _5 93.3333 6.6667
fpt_validation _6 93.4783 6.5217
fpt_validation _7 100 0
fpt_validation _8 100 0
fpt_validation _9 79.5455 20.4545
fpt_validation _10 58.6957 41.3043
Kết quả trung bình 84.9311 15.0689
Hình 4-9: Kết quả đánh giá trên tập kiểm chứng
Từ kết quả trên ta thấy rằng, hiệu năng của mô hình cây quyết định không phải là
hằng số, nó thay đổi với các bộ dữ liệu khác nhau hay nói cách khác nó thay đổi theo các
tháng khác nhau
4.3.3. Lựa chọn mô hình tốt nhất
Trong các phần trước, khóa luận đã xây dựng một một vài mô hình hồi quy có thể
được sử dụng để dự đoán giá đóng cửa của chỉ số vnindex một ngày sau thời điểm t nào
đó. Đồng thời, khóa luận cũng đã đưa ra một vài đại lượng nhằm đánh giá mô hình. Khi
có được đánh giá cho các mô hình, bài toán sử dụng mô hình tốt nhất để dự báo
Chúng ta không cần thiết phải sử dụng các loại mô hình khác nhau. Đó có thể là các
mô hình với cùng kỹ thuật khai phá dữ liệu nhưng các tham số khi sử dụng lại khác nhau.
Ví dụ như mô hình cây quyết định được giới thiệu ở trên, có ít nhất hai tham số tham có
thể tác động: số nút nhỏ nhất trên một nút lá, nhân tố dùng để chia cắt . Những thiết lập
tham số khác nhau dẫn đến các mô hình cây quyết định khác nhau. Câu hỏi đặt ra là làm
thế nào có được bộ tham số tốt nhất là một vấn đề lựa chọn mô hình.
52
Chúng ta đã mô tả một vài hệ số thống kê có thể đánh giá mô hình dự đoán chứng
khoán. Tuy nhiên, các thiết lập thử nghiệm để đánh giá mô hình lại có vai trò quyết định.
Việc thiết lập này bao gồm việc chia dữ liệu thành hai phần: huấn luyện và thử nghiệm.
Để lựa chọn mô hình, ta sẽ phân chia tập huấn luyện thành hai phần: một phần để lấy
được các tập tham số của mô hình (tập train) và một phần khác để chọn ra tập tham số tốt
nhất (tập kiểm chứng –validation set). Sau khi có được bộ tham số tốt nhất này, chúng ta
sẽ xây dựng được mô hình tốt nhất. Sử dụng mô hình này cho toàn bộ tập huấn luyện
(training set), kể cả phần dữ liệu kiểm chứng (validation set)
Đầu tiên ta minh họa chiến lược lựa chọn mô hình bằng cách sử dụng nó để tìm ra
những thiết lập ban đầu tốt nhất cho từng kỹ thuật khai phá dữ liệu riêng biệt. Tất cả các
kỹ thuật khai phá dữ liệu đều có một vài biến bạn có thể thay đổi để có được kết quả tốt
nhất. Thậm chí có một vài công cụ còn tự động thay đổi các biến này để có kết quả tốt
nhất
Trong bài toán này, ta sẽ thiết lập một số thay đổi cho hai biến minNumObj (-M) và
confidenceFactor (-C) của cây quyết định.
• minNumObj (-M) là nhánh tối thiểu trên một nút lá, nếu giá trị này càng lớn thì
cây bị cắt thành nhiều nhánh. Mặc định trong weka CLI là 2
• confidenceFactor (-C) là một ngưỡng sử dụng cho việc cắt tỉa, nếu giá trị này
nhỏ thì cây sinh ra sẽ được cắt càng nhiều. Mặc định trong weka CLI là 0.25
Trong luận văn này, tôi tiến hành thay đổi các tham số -M và -C với 10 bộ dữ liệu
huấn luyện kết hợp với tập kiểm chứng để tìm ra các độ chính xác (Accuracy) và chuẩn
trung bình bình phương sai số (root mean squared error) để đánh giá mô hình thu được.
Mô hình cho kết quả tốt nhất là mô hình có độ chính xác là lớn nhất và hệ số RMSE là
nhỏ nhất
Bộ tham số (C, M) Accuracy (%) RMSE
(0.01, 1) 89.12427 0.25059
(0.01, 2) 89.12427 0.25964
53
(0.01, 3) 79.12427 0.34199
(0.01, 4) 78.03731 0.35424
(0.01,5) 77.81004 0.35634
(0.01, 7) 72.25953 0.41067
(0.01, 10) 66.57771 0.44587
(0.05, 1) 89.12427 0.25053
(0.05, 2) 89.12427 0.25958
(0.05, 3) 89.12427 0.28272
(0.05, 4) 89.12427 0.28272
(0.05, 5) 88.897 0.28488
(0.05, 7) 83.34649 0.34549
(0.05, 10) 66.57771 0.44592
(0.1, 1) 89.12427 0.25072
(0.1, 2) 89.12427 0.25977
(0.1, 3) 89.12427 0.28272
(0.1, 4) 89.12427 0.28272
(0.1, 5) 88.897 0.28482
(0.1, 7) 83.34649 0.34549
(0.1, 10) 66.57771 0.44592
(0.25, 1) 88.07164 0.271
(0.25, 2) 88.0716 0.28005
(0.25,3) 90.0334 0.25026
(0.25,4) 89.8061 0.2782
(0.25,5) 89.5788 0.2803
(0.25,7) 83.3465 0.34612
54
(0.25,10) 66.5777 0.44592
(0.4,1) 88.0716 0.271
(0.4,2) 88.0716 0.2827
(0.4,3) 89.8061 0.2557
(0.4,4) 89.8061 0.27823
(0.4,5) 89.5788 0.28033
(0.4,7) 83.3465 0.3461
(0.4,10) 66.0857 0.4524
(0.5,1) 88.0716 0.271
(0.5,2) 88.0716 0.28271
(0.5,3) 89.8061 0.25572
(0.5,4) 89.1539 0.281
(0.5,5) 88.9266 0.2831
(0.5,7) 83.3465 0.3461
(0.5,10) 66.0857 0.45237
Hình 4-10: Kết quả khi thay đổi các tham số -C, -M
Thiết lập tham số -C với các giá trị 0.01, 0.05, 0.1, 0.25, 0.4, 0.5, tham số -M với các
giá tri 1, 2, 3, 4, 5, 7, 10 kết quả thu được trên hình 4-10, các kết quả không khác xa nhau
là mấy chỉ trừ các bộ tham số có số nhánh là 7 và 10 thì kết quả bị lệch nhiều. Kết quả có
accuracy lớn nhất là 90.0334 và RMSE nhỏ nhất là 0.25026 ứng với C = 0.25 và M = 3
Như vậy ta đã tìm ra bộ tham số tốt nhất với C=0.25, M=3, xây dựng lại mô hình
cây quyết định với bộ tham số ở trên ta thu được kết quả như sau
55
Tập dữ liệu
Thời gian
huấn
luyện (s)
Accuracy
trên tập
huấn luyện
(%)
Accuracy
trên tập
kiểm
chứng(%)
RMSE
fpt_train_1 0.03 97.8571 100 0
fpt_train _2 0.05 98.9209 93.3333 0.2582
fpt_train _3 0.03 98.5915 93.4783 0.2597
fpt_train _4 0.04 99.2982 100 0.1267
fpt_train _5 0.03 97.9239 100 0
fpt_train _6 0.03 97.9522 81.8182 0.3859
fpt_train _7 0.04 96.587 63.0435 0.5853
fpt_train _8 0.03 96.2329 81.8182 0.4134
fpt_train _9 0.04 97.2603 89.4737 0.3135
fpt_train _10 0.04 96.6216 97.3684 0.1599
Trung bình 0.029 97.7246 90.0334 0.25026
Hình 4-11: Kết quả khi huấn luyện lại mô hình với tham số tốt nhất
Khi xây dựng mô hình với bộ tham số tốt nhất thì độ chính xác trên tập kiểm chứng
tăng 5.1023% so với độ chính xác của tập kiểm chứng khi huấn luyện mô hình với tham
số mặc định
4.4. Một số mô hình khác
Trong khai phá dữ liệu có nhiều kỹ thuật để xây dựng mô hình dự đoán khác nhau,
mỗi kỹ thuật đều có những thiết lập, hỗ trợ và điểm mạnh riêng. Mục đích chính của tất cả
các phương pháp là dự đoán giá trị của tương lai sử dụng dữ liệu của quá khứ. Vậy sử
dụng phương pháp nào sẽ cho mô hình dự đoán tốt nhất ?.
Trong khóa luận này tôi xin giới hiệu hai mô hình của hai kỹ thuật khác cho bài toán
của mình, và lấy kết quả để đánh giá với mô hình cây quyết định mà tôi đã xây dựng
56
trong những phần trước để thấy được kỹ thuật nào là tốt cho dự đoán. Ta sử dụng dữ liệu
vnindex đã qua xử lý ở phần trước, kết quả của hai mô hình này tương ứng với kết quả
trung bình trên 10 bộ dữ liệu kiểm chứng (validation set) như trong mô hình cây quyết
định ở trên để thuật lợi cho việc đánh giá. Đồng thời sử dụng độ chính xác (Accuracy),
RMSE và thời gian huấn luyện để đánh giá kết quả giữa các mô hình
4.4.1. Mô hình mạng nơ ron
Mạng nơ ron là một trong những phương pháp mô hình hóa tập trung vào các bài
toán phi tuyến, do đó được lựa chọn nhiều trong bài toán dự báo tài chính. Mạng nơ ron là
mạng các phần tử (gọi là nơ ron) kết nối với nhau thông qua các liên kết (gọi là trọng số
liên kết) để thực hiện một công việc cụ thể nào đó [7]
Mạng nơ ron có thể được xem như là một mô hình toán học: Y = F(X) với X là
vector số liệu vào và Y là vector số liệu ra. Chỉ cần đưa vào mạng một tập hợp mẫu dữ
liệu, trong quá trình học thì mạng có khả năng phát hiện những đặc trưng, rằng buộc này
trong quá trình sử dụng mạng
Mạng nơ ron thực hiện nhiệm vụ của mình thông qua các thao tác: nhận đầu vào từ
các nơ ron trước nó, xử lý đầu vào bằng cách nhân mỗi đầu vào này với trọng số liên kết
tương ứng và tính tổng các tích thu được rồi đưa qua một hàm truyền, sau đó gửi kết quả
cuối cùng cho các nơ ron tiếp theo hoặc đưa ra output
Khả năng học của mạng nơ ron chủ yếu dựa trên kỹ thuật lan truyền ngược sai số
(backpropagation). Việc huấn luyện mạng với thuật toán lan truyền ngược sai số gồm hai
pha ngược chiều nhau: quá trình truyền thẳng (lan truyền xuôi) và quá trình lan truyền
ngược
57
(a) (b)
Hình 4-12: (a) Cấu trúc một nơ ron
(b) Cấu trúc mạng nơ ron
Khi huấn luyện mạng trong weka, có ba tham số chính làm thay đổi độ chính xác
của mô hình huấn luyện là
Số vòng lặp (training time): tỷ lệ thuận với hiệu suất của mạng nhưng đến một mức
nào đó nó sẽ gây ra hiện tượng học vẹt (over learning) sẽ bỏ qua trạng thái tối ưu. Giá trị
mặc định trong weka là 500.
Số lớp ẩn (hiddenLayers):được tính theo công thức a = (số trường hợp + số lớp) / 2
Tốc độ học (learningRate): cũng ảnh hưởng đến hiệu suất của mạng đối với số
vòng lặp xác định. Giá trị tham số này càng nhỏ thì mạng hiệu chỉnh trọng số càng chậm.
Nhưng muốn đạt đến trạng thái tối ưu thì ta phải tăng số vòng lặp nhiều hơn. Giá trị mặc
định trong weka là 0.3
Như vậy, ta sẽ xây dựng mô hình mạng với các giá trị của các tham số: tốc độ học =
0.7, số vòng lặp 600, số tầng ẩn a
58
Tập dữ liệu
Thời gian
huấn luyện
(s)
Accuracy trên
tập huấn luyện
(%)
Accuracy trên
tập kiểm chứng
(%)
RMSE
NR DS NR DS NR DS NR DS
fpt_train_1 4.69 0.03 96.0714
97.857
1
100 100 0.0256 0
fpt_train_2 4.07 0.05 97.1223
98.920
9
93.3333
93.333
3
0.2398 0.2582
fpt_train_3 4.18 0.03 96.831
98.591
5
93.4783
93.478
3
0.2517 0.2597
fpt_train_4 4.51 0.04 97.193
99.298
2
100 100 0.0072 0.1267
fpt_train_5 4.4 0.03 95.1557
97.923
9
100 100 0 0
fpt_train_6 4.6 0.03 96.9283
97.952
2
84.0909
81.818
2
0.3857 0.3859
fpt_train_7 4.48 0.04 96.587 96.587 73.913
63.043
5
0.4832 0.5853
fpt_train_8 4.29 0.03 97.2603
96.232
9
77.2727
81.818
2
0.4746 0.4134
fpt_train_9 4.39 0.04 96.5753
97.260
3
89.4737
89.473
7
0.3242 0.3135
fpt_train_1
0
4.37 0.04 97.973
96.621
6
97.3684
97.368
4
0.1621 0.1599
trung bình 4.398 0.029 96.7697
97.724
6
90.8930
3
90.033
4
0.23541
0.2502
6
59
Hình 4-13: So sánh kết quả giữa Mạng nơ ron và cây quyết định
Từ công thức ( 3-5), ta thấy rõ: mẫu số của biểu thức là không đổi. Độ lệch chuẩn
bình phương (RMSE) nhỏ hơn tức là giá trị dự đoán gần với giá trị thực sự của dữ liệu
hơn. Với cùng các bộ dữ liệu, nếu dựa vào kết quả trung bình thì ta sẽ thấy rằng mô hình
mạng nơ ron có hệ số RMSE nhỏ hơn mô hình cây quyết định một lượng là 0.01519
nhưng nhìn trên từng bộ dữ liệu thì có tới 5 bộ dữ liệu khi huấn luyện bằng cây quyết định
có hệ số RMSE cao hơn khi huấn luyện bằng mạng nơ ron và 1 bộ dự liệu có RMSE ở cả
hai mô hình bằng nhau. Xét về thời gian xây dựng mô hình thì cây quyết định đưa ra mô
hình nhanh gấp 151 lần so với mạng nơ ron, độ chính xác khi phân lớp trên tập huấn
luyện sử dụng cây quyết định cũng cao hơn so với mạng nơ ron.
4.4.2. Mô hình SVM (support vector machine)
SVM là một phương pháp máy học tương đối mới nhiều ứng dụng thành công trong
lĩnh vực khai phá dữ liệu đặc biệt là trong bài toán dự báo thời gian thực. SVM được nhận
định là phương pháp phân lớp nhanh, giải quyết vấn đề overfiting rất tốt và có thể xử lý
hiệu quả với bài toán dữ liệu có số chiều lớn
Tư tưởng chính của SVM là chuyển tập mẫu từ không gian biểu diễn Rn của chúng
sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd, tìm một số siêu
phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, cũng có nghĩa là
tìm ra miền phân bố của từng lớp trong không gian Rn để từ đó xác định được phân lớp
của một mẫu cần dự đoán
Khi xây dựng mô hình với SVM, chúng ta cần phải chọn các tham số tốt nhất cho
thuật toán. SMO (Sequential minimal optimization) - thuật toán tối ưu tuần tự là thuật
toán tối ưu dành riêng cho phương pháp SVM do J.Platt đưa ra vào năm 1988. Thuật toán
có 3 tham số làm thay đổi độ chính xác của mô hình [8]
Hệ số phức tạp (Complexity factor): Quyết định sự cân bằng giữa lỗi tối thiểu của
mô hình trên dữ liệu huấn luyện và trên mô hình phức tạp. Giá trị mặc định trong weka là
C = 1.0. Để đẩm bảo tính ổn định của quá trình huấn luyện, giá tri của tham số C càng lớn
càng tốt, ví dụ C = 100 [8].
60
Epsilon: là một thiết lập SVM ứng dụng để xây dựng mô hình hồi quy. Giá trị của
epsilon ảnh hưởng đến số lượng vector hỗ trợ vì vậy gián tiếp ảnh hưởng đến sự cân bằng
giữa mô hình phức tạp và tổng quát.
Dung sai: độ lệch lớn nhất của một tiêu chuẩn hội tụ. Nếu giá trị này lớn thì quá
trình xây dựng mô hình sẽ nhanh hơn nhưng độ chính xác sẽ thấp hơn. Giá trị mặc định là
0.001
Ta sẽ xây dựng mô hình SVM với các thiết lập tham số C = 100, P (epsilon) = 1.0E-
12, L (dung sai) = 0.001
Tập dữ liệu Thời gian
huấn luyện
Accuracy trên
tập huấn
luyện(%)
Accuracy trên
tập kiểm chứng
(%)
RMSE
SVM DS SVM DS SVM DS SVM DS
fpt_train_1 0.35 0.03 89.6429 97.8571 100 100 0 0
fpt_train_2 0.21 0.05 91.3669 98.9209 93.3333 93.3333 0.2582 0.2582
fpt_train_3 0.14 0.03 91.9014 98.5915 93.4783 93.4783 0.2554 0.2597
fpt_train_4 0.05 0.04 97.193 99.2982 100 100 0 0.1267
fpt_train_5 0.15 0.03 95.8478 97.9239 100 100 0 0
fpt_train_6 0.11 0.03 95.9044 97.9522 75 81.8182 0.5 0.3859
fpt_train_7 0.06 0.04 95.9044 96.587 65.2174 63.0435 0.5898 0.5853
fpt_train_8 0.07 0.03 95.8904 96.2329 84.0909 81.8182 0.3989 0.4134
fpt_train_9 0.25 0.04 92.8082 97.2603 89.4737 89.4737 0.3244 0.3135
fpt_train_10 0.21 0.04 92.9054 96.6216 97.3684 97.3684 0.1622 0.1599
trung bình 0.16 0.029 93.9365 97.7246 89.796 90.0334 0.24889 0.25026
Hình 4-14: So sánh kết quả giữa mô hình SVM và cây quyết định
Xét về thời gian xây dựng mô hình, độ chính xác (Accuracy) trên tập huấn luyện, và
trên tập kiểm chứng thì mô hình cây quyết định đều cao hơn so với SVM. Riêng có hệ số
61
RMSE thì khi nhìn vào kết quả trung bình ta có thể thấy mô hình SVM có kết quả thấp
hơn so với mô hình cây quyết định là 0.00137 nhưng xét trên từng tập dữ liệu thì có tới 5
bộ dữ liệu khi sử dụng mô hình cây quyết định thì kết quả RMSE cao hơn so với SVM và
có tới 2 bộ dữ liệu có kết quả bằng nhau khi sử dụng mô hình cây quyết định và mô hình
SVM
Như vậy, về cơ bản thì mô hình cây quyết định là một mô hình tương đối tốt đối với
dữ liệu thời gian thực. Độ chính xác khi xây dựng mô hình trên tập huấn luyện rất cao,
cao hơn hẳn mô hình mạng nơ ron và SVM và thời gian xây dựng mô hình rất rất nhanh
giúp nhà đầu tư có nhiều thời gian suy nghĩ trước khi quyết định hơn. Phần lớn các bộ dữ
liệu có kết quả dự đoán gần với giá trị thực hơn so với mô hình mạng nơ ron và SVM
62
Kết luận
Kết quả đạt được của luận văn
Khai phá dữ liệu hiện nay là một hướng nghiên cứu còn khá mới mẻ, thu hút sự
quan tâm không chỉ của giới CNTT mà còn của nhiều ngành khoa học khác. Ngày nay có
nhiều phương pháp và các thuật toán kinh điển, tạo nên một bức tranh hết sức sôi động về
lĩnh vực nghiên cứu còn khá mới mẻ này.
Thông qua việc tìm hiểu, tiếp thu những kiến thức cơ bản và kết quả của một số
công trình nghiên cứu mới được công bố gần đây, tôi đã trình bày một cách tương đối đầy
đủ và có hệ thống về các vấn đề liên quan đến khai phá dữ liệu nói chung và khai phá dữ
liệu bằng cây quyết định nói riêng. Áp dụng khai phá dữ liệu bằng cây quyết định vào bài
toán dự báo xu thế thị trường chứng khoán, trong khóa luận tôi đã lấy giá đóng cửa qua
các phiên giao dịch của công ty fpt để làm thực nghiệm. Đặc biệt đã đi sâu phân tích,
đánh giá và so sánh với một số phương pháp khác
Tuy nhiên do việc hạn chế về thời gian, kinh nghiệm nên kết quả thực nghiệm vẫn
chưa thực sự thuyết phục, mặc dù phương pháp và kỹ thuật mà luận văn trình bày là hoàn
toàn khả thi, đó chính là điểm hạn chế của luận văn này
Hướng nghiên cứu tiếp theo
Khai phá dữ liệu nói chung và khai phá dữ liệu bằng cây quyết định nói riêng hiện
nay vẫn là vấn đề nghiên cứu và triển khai mang tính thời sự. Những vấn đề dưới đây sẽ
là nội dung nghiên cứu tiếp theo của luận văn này
• Sử dụng một số thuật toán tối ưu tổ hợp như thuật toán di truyền (General
Algorithm –GA) hay thuật toán đàn kiến (Ant Colony Algorithm –ACO) để tối ưu hóa
việc chọn các tham số như số số nhánh tối thiểu trên một nút lá, ngưỡng dùng để cắt tỉa
• Đưa thêm các mối tương quan của một số thuộc tính như: khối lượng giao dịch
trong ngày (Volume), giá dầu, giá vàng trên thị trường để mô hình gần với thực tế và kết
quả của mô hình có sức thuyết phục hơn
• Xây dựng mô hình hoàn chỉnh có giao diện tương tác với người sử dụng, triển
khai ứng dụng vào thực tế
63
PHỤ LỤC-MỘT SỐ THUẬT NGỮ ANH –VIỆT
Thuật ngữ Giải nghĩa
Supervised learning Học có giám sát
Root mean squared error Chuẩn trung bình bình phương sai số
Overfiting Hiện tượng mô hình nhận dạng các mẫu đã học tốt
nhưng khả năng tổng quát hóa để nhận dạng các
mẫu chưa học lại kém
Testing set Tập mẫu kiểm tra mô hình
Time series Chuỗi tuần tự theo thời gian/Dữ liệu thời gian thực
Training set Tập mẫu huấn luyện mô hình
Unsupervised learning Học không có giám sát
Validation set Tập mẫu kiểm chứng mô hình
Confusion matrix Ma trận nhầm lẫn
Accuracy Độ chính xác
Missclassification Tỷ lệ các trường hợp phân lớp sai
Time series Thời gian thực
Informatin Gain Độ lợi thông tin
Gain ratio Tỷ lệ độ lợi
64
TÀI LIỆU THAM KHẢO
Tài liệu tham khảo tiếng việt
[1] Nguyễn Đức Cường. Tổng quan về khai phá dữ liệu. Kỷ yếu hội nghị Khoa học và
Công nghệ lần thứ 9, Đại học Bách khoa, Tp. Hồ Chí Minh
[2] Bùi Quang Huy.Một số vấn đề liên quan đến khai phá dữ liệu bằng cây quyết
định.Luận văn thạc sĩ, ngành Công nghệ thông tin - Đại học công nghệ - Đại học
quốc gia Hà Nội 2006.
[3] Lê Văn Tường Lân.Phụ thuộc dữ liệu và tác động của nó đối với bài toán phân lớp
của khai phá dữ liệu. Tạp chí khoa học, Đại học Huế, Số 53, 2009
[4] Nguyễn Thái Nghe. Một phân tích giữa các kỹ thuật trong dự đoán kết quả học tập.
Khoa công nghệ thông tin và truyền thông, Đại học Cần Thơ
[5] Phạm Hữu Tài.Xây dựng Cơ sở dữ liệu các cấu hình An toàn thông tin trên Internet
cho hệ thống Phòng chống dịch hại. Cần thơ, 10/2009
[6] Cao Hào Thi. Phân tích chuỗi tuần tự theo thời gian và dự báo. Đại học kỹ thuật TP.
Hồ Chí Minh
[7] Đặng Thị Ánh Tuyết. Tìm hiểu và ứng dụng một số thuật toán khai phá dữ liệu time
series áp dụng trong bài toán dự báo tài chính. Khóa luận tốt nghiệp, Đại học Công
nghệ - Đại học Quốc gia Hà Nội, 2008
Tài liệu tham khảo tiếng anh
[8] Biljana Miveva-Boshkoska and Mile Stankovski. Prediction of Missing Data for
Ozone Concentrations Using Support Vector Machines and Radial Basis Neural
Networks. Department of Automatics, Faculty for Electrotechnics and Information
Technologies
[9] Lior Rokach and Oded Maimon. Data mining with decision trees, theory and
applications. World Scientific Publishing Co.Pte Ltd, 2008
[10] Luis Torgo. Data mining with R: learning by case studies. LIACC-FEF, University
of Porto, May 22, 2003
65
[11] Matthew N. Anyanwu and Sajjan G. Shiva. Comparative Analysis of Serial
Decision Tree Classification Algorithms. International Journal of Computer Science
and Security,2009
[12] Minos Garofalakis, Dongjoon Hyun, Rajeev Rastogi, Kyuseok Shim. Building
Decision Tree With Constraints. Data Mining and Knowleadge Discovery, 2003
[13] Ramon Lawrence . Using Neural Networks to Forecast Stock Market Prices.
Department of Computer Science University of Manitoba, 1997
[14] Remco R.Bouckaert, Eibe Frank, Mark Hall, Richard Kirkby, Peter Reutemann,
Alex Seewald, David Scuse. Weka Manual for version 3-6-1, June 4, 2009
[15] Ruey S.Tsay. Analysis of Financial Time Series. University of Chicago,2005,
tr.192-194
[16] Stefan Zemke. Data mining for Prediction Financial Series Case. Department of
Computer and System Sciences, December 2003
[17] Thomas Hellstrom and Kenneth Holmstrom. Predicting the Stock Market.
Department of Mathematics and Physics Malardalen University, August 12, 1998,
[18]
12.pdf
[19]
[20]
[21]
[22]
[23] ây_quyết_định
Các file đính kèm theo tài liệu này:
- 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.pdf