ĐẠI HỌC QUỐC GIA TP. HCM ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

---------------  ---------------

BÁO CÁO

Môn: Học máy thống kê

Lớp : DS102.L21

ĐỀ TÀI: STOCK PRICE PREDICTION

GIẢNG VIÊN HƯỚNG DẪN:

TS. Nguyễn Tấn Trần Minh Khang

Th.S. Võ Duy Nguyên

Hồ Thái Ngọc

NHÓM THỰC HIỆN:

Nguyễn Lương Toàn - 18521510

Nguyễn Anh Phi - 19522005

TPHCM, Ngày 16 tháng 6 năm 2021

1

ĐẠI HỌC QUỐC GIA TP. HCM ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

---------------  ---------------

BÁO CÁO

Môn: Học máy thống kê

Lớp : DS102.L21

ĐỀ TÀI: STOCK PRICE PREDICTION

GIẢNG VIÊN HƯỚNG DẪN:

TS. Nguyễn Tấn Trần Minh Khang

Th.S. Võ Duy Nguyên

Hồ Thái Ngọc

NHÓM THỰC HIỆN:

Nguyễn Lương Toàn - 18521510

Nguyễn Anh Phi - 19522005

TPHCM, Ngày 16 tháng 6 năm 2021

2

LỜI CẢM ƠN

Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến Trường Đại học Công

nghệ thông tin – Đại học Quốc gia TP.HCM và xin gửi lời cảm ơn sâu sắc nhất tới

TS. Nguyễn Tấn Trần Minh Khang, người thầy đã trực tiếp giảng dạy, hướng dẫn và

tận tình chỉ bảo chúng em trong suốt quá trình học tập. Chân thành cảm ơn ThS. Võ

Duy Nguyên, anh Hồ Thái Ngọc đã hỗ trợ, giúp đỡ và đóng góp nhiều ý kiến quý

báu cho chúng em trong suốt môn học cũng như thực hiện đồ án.

Trong quá trình thực hiện nhóm chúng em đã vận dụng những kiến thức nền tảng

đã tích lũy đồng thời kết hợp với việc học hỏi và nghiên cứu những kiến thức mới.

Từ đó đã vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo đồ

án tốt nhất. Tuy nhiên, khi thực hiện chắc chắn không tránh khỏi được những sai sót.

Chính vì vậy, chúng em rất mong nhận được sự góp ý của thầy cô nhằm hoàn thiện

những kiến thức mà nhóm chúng em đã học tập và là hành trang để thực hiện tiếp

các đề tài khác trong tương lai.

Nhóm em xin chân thành cảm ơn quý Thầy Cô!

TP. Hồ Chí Minh, ngày 10 tháng 6 năm 2021

3

MỤC LỤC

Tóm tắt nội dung

Danh mục viết tắt .......................................................................................................................................... 5

Tổng quan ..................................................................................................................................................... 7

1.1. Giới thiệu đề tài ............................................................................................................................ 7

1.1.1.

Giới thiệu bài toán ................................................................................................................ 7

Cơ sở lý thuyết .............................................................................................................................................. 8

2.1 Mô hình hồi quy ............................................................................................................................ 8

2.2

Hàm tổn thất .................................................................................................................................. 8

2.3

Bài toán Hồi quy ........................................................................................................................... 9

2.3.1 Đo hiệu năng bài toán hồi quy ..................................................................................................... 9

2.4

Nội dung........................................................................................................................................ 9

2.4.1 Hồi quy tuyến tính........................................................................................................................ 9

2.4.2 Support Vector Machine – Regression (SVR) ........................................................................... 15

2.4.3 Long Short-Term Memory (LSTM) .......................................................................................... 19

............................................................................................................................................................ 27

Thực nghiệm ............................................................................................................................................... 28

3.1. Phân tích tập dữ liệu .................................................................................................................... 28

3.2. Các bước tiến hành ...................................................................................................................... 32

3.3. Kết quả thực nghiệm .................................................................................................................... 33

Kết luận ....................................................................................................................................................... 42

4.1. Những kết quả đạt được .................................................................................................................. 42

4.2. Khó khăn .......................................................................................................................................... 42

4.2. Hướng phát triển ............................................................................................................................. 42

Bảng phân chia công việc ............................................................................................................................ 43

Tài liệu tham khảo ....................................................................................................................................... 44

LỜI CẢM ƠN .............................................................................................................................................. 3

4

Danh mục viết tắt

MSE Mean - Square Error

SSE Sum of Squared Errors

LNR Linear Regression

SVR Support Vector Regression

RNN Recurrent Neural Network

BPTT Backpropagation Through Time

LSTM Long Short Term Memory

5

Tóm tắt đồ án

Trong bối cảnh cả thế giới đang điên đảo vì thị trường tài chính và chứng khoán,

trí tuệ nhân tạo cũng là một lĩnh vực đang lớn mạnh lên từng ngày. Tại sao chúng ta

không thử kết hợp chúng lại để tạo nên những điều kì diệu.

Trong đồ án môn học này, chúng em tập trung xây dựng các mô hình dự đoán giá tương

lai của thị trường chứng khoán dựa trên dữ liệu của những năm trước.

Tập dữ liệu được cung cấp gồm dữ liệu lịch sử chứa các bản ghi về giá cổ phiếu của

nhiều cổ phiếu khác nhau như Apple, Tesla, Microsoft, Facebook. Tập dữ liệu cũng

chứa giá cổ phiếu theo ngày với giá mở cửa, đóng cửa, cao và thấp cùng với khối lượng

giao dịch vào ngày đó.

Tập dữ liệu được lấy từ nguồn: https://www.kaggle.com/altruistdelhite04/loan-

prediction-problem-dataset

Dữ liệu đầu ra của bài toán (Close price) là các giá trị thực và gần như liên tục nên bài

toán thuộc dạng hồi quy.

Mục tiêu của đồ án là nghiên cứu về ý tưởng, kỹ thuật cốt lõi của các thuật toán hồi quy

đã được học và áp dụng chúng để giải quyết một vấn đề thực tiễn trong đời sống. qua

đó chúng em đánh giá kết quả thực nghiệm, phân tích thách thức và đề xuất hướng giải

quyết trong tương lai.

6

Chương 1

Tổng quan

1.1. Giới thiệu đề tài

1.1.1. Giới thiệu bài toán

Với tập dữ liệu có các thuộc tính như sau

Hình 1.1. Tập dữ liệu

Bài toán yêu cầu dựa vào tập dữ liệu lịch sử chứa các bản ghi về giá cổ phiếu,

hãy chọn lựa và xây dựng một mô hình dự đoán giá tương lai của thị trường

chứng khoán (cụ thể ở đây gồm 4 loại cổ phiếu là Apple, Tesla, Microsoft,

Facebook) và tất nhiên là không thể thiếu phần đánh giá về độ chính xác của

mô hình.

7

Chương 2

Cơ sở lý thuyết

2.1 Mô hình hồi quy

Xét: Y = f(X) + ε

• Các phương pháp học giám sát:

– Học bởi các ví dụ (quan sát) - “Learn by example”

– Xây dựng mô hình f’ sử dụng tập các quan sát đã được gắn nhãn

(X(1), Y(1)), …, (X(n), Y(n))

– Y có kiểu dữ liệu liên tục

• Giải thuật học

– Lấy hàm ước lượng “tốt nhất” trong tập các hàm

• Ví dụ: Hồi quy tuyến tính

– Chọn 1 ước lượng tốt nhất từ dữ liệu học trong tập các hàm tuyến tính

f(X) = β0 + β 1X1 + … + β dXd

2.2 Hàm tổn thất

2

𝑖

Sai số bình phương (Squared error) ∑ (θi − θi’)

Sai số tuyệt đối (Absolute error) ∑ |𝑖 θi − θi’|

8

2.3 Bài toán Hồi quy

f’ = argmin E[L(Y, 𝑓̃(𝑋))]

(argument minimum: Cho giá trị nhỏ nhất của 1 hàm số trong miền xác định)

2.3.1 Đo hiệu năng bài toán hồi quy

Hàm tổn thất (Loss function): loại hàm dùng để đo lường sai số của mô hình

• Vd: Sai số bình phương trung bình (Mean squared error - MSE)

1

2

– Độ đo thông dụng dùng để tính độ chính xác bài toán hồi quy

𝑛 𝑖=1

∑ (𝑦̂ (𝑖) − 𝑦(𝑖)) MSE = 𝑛

– Tập trung đo các sai số lớn hơn là các sai số nhỏ

2.4 Nội dung

2.4.1 Hồi quy tuyến tính

Tại sao dùng hồi quy tuyến tính? – Mối quan hệ tuyến tính: là sự biến đổi tuân theo quy luật hàm bậc nhất

– Tìm một mô hình (phương trình) để mô tả một mối liên quan giữa X và Y

– Ta có thể biến đổi các biến đầu vào để tạo ra mối quan hệ tuyến tính

– Diễn giải các mối quan hệ giữa biến đầu vào và đầu ra - sử dụng cho bài toán suy

diễn

Hồi quy tuyến tính đơn giản

9

• Biến đầu ra Y và biến đầu vào X có mối quan hệ tuyến tính giữa X và Y như sau:

Y = β0 + β1X + ε

• Các tham số của mô hình:

β0 intercept: hệ số chặn (khi các xi = 0)

y-axis

(x2, y2)

(x1, y1)

x-axis

độ dốc β1 slope:

Cho hai điểm (x1, y1) và (x2, y2)

0

Làm sao để "phát triển" một phương trình nối 2 điểm này?

10

y-axis

(x2, y2)

∆𝑦

= y2 – y1

(x1, y1) slope =

x2 – x1

∆𝑥

x-axis

0 • Tìm gradient (slope): độ dốc.

• Tìm hệ số chặn (intercept) (hệ số khởi đầu của y khi x=0)

y = f(x) = β1X + β0

11

Hình 2.1. Mô phỏng hồi quy tuyến tính đơn giản

• β0 và β1 chưa biết Ta ước tính giá trị của chúng từ dữ liệu đầu vào

• Lấy 𝛽̂ 0, 𝛽̂ 1 sao cho mô hình đạt “xấp xỉ tốt nhất” (“good fit”) đối với tập

huấn luyện

Các giả định

• Mối liên quan giữa X và Y là tuyến tính (linear) về tham số

• X không có sai số ngẫu nhiên

• Giá trị của Y độc lập với nhau (vd, Y1 không liên quan với Y2)

• Sai số ngẫu nhiên (ε): phân bố chuẩn, trung bình 0, phương

sai bất biến

ε ~ N(0, s2)

Đường thẳng phù hợp nhất

Cho tập dữ liệu đầu vào, ta cần tìm cách tính toán các tham số của phương trình

đường thẳng

Đường thẳng phù hợp nhất là đường giảm thiểu độ dao động của các lỗi này

12

Hình 2.2. Đường thẳng phù hợp nhất.

Bình phương nhỏ nhất

• Thông thường, để đánh giá độ phù hợp của mô hình từ dữ liệu quan sát ta sử

dụng phương pháp bình phương nhỏ nhất (least squares)

• Lỗi bình phương trung bình (Mean squared error):

Đường thẳng phù hợp nhất

Rất hiếm để có 1 đường thẳng khớp chính xác với dữ liệu, do vậy luôn tồn tại

lỗi gắn liền với đường thẳng.

Đường thẳng phù hợp nhất là đường giảm thiểu độ dao động của các lỗi này.

13

Phần dư (lỗi)

Biểu thức (yi - yˆ ) được gọi là lỗi hoặc phần dư

ei = (yi- 𝑦̂)

2

𝑛 SSE = ∑ (𝑦𝑖 − 𝑦̂) 𝑖=1

Đường thẳng phù hợp nhất tìm thấy khi tổng bình phương lỗi là nhỏ nhất

SSxy

Ước lượng tham số • Các ước số 𝛽̂ 0, 𝛽̂ 1 tính được bằng cách cực tiểu hóa MSE

SSx

• Hệ số chặn của đường thẳng 𝛽̂ 1 =

2 (𝑦𝑖 − 𝑦̅) và SSx = ∑ (𝑥𝑖 − 𝑥̅)

𝑛 𝑖=1

𝑛 𝑖=1

Trong đó: SSxy = ∑ (𝑥𝑖 − 𝑥̅)

14

yi

xi

• Hệ số chặn của đường thẳng 𝛽̂ 0 = 𝑦̅ - 𝛽̂ 1𝑥̅

𝑛 𝑖=1 n

𝑛 𝑖=1 n

Trong đó: 𝑦̅ = 𝑥̅ =

2.4.2 Support Vector Machine – Regression (SVR)

Support Vector Machine cũng có thể được sử dụng như một phương pháp hồi quy,

duy trì tất cả các tính năng chính đặc trưng cho thuật toán. Support Vector

Regression (SVR) sử dụng các nguyên tắc tương tự như SVM để phân loại, chỉ có

một số khác biệt nhỏ.

Trước hết, bởi vì đầu ra là một số thực nên rất khó dự đoán thông tin có trong tay.

Trong trường hợp hồi quy, biên độ dung sai (epsilon) được đặt gần đúng với SVM

đã được yêu cầu từ bài toán. Nhưng bên cạnh thực tế này, cũng có một lý do phức

tạp hơn, thuật toán phức tạp hơn do đó cần được xem xét.

Tuy nhiên, ý tưởng chính luôn giống nhau: để giảm thiểu lỗi, cá nhân hóa siêu mặt

phẳng (hyperlane) để tối đa hóa sự chính xác, lưu ý rằng một phần lỗi được chấp

nhận.

15

Hình 2.3. Giải thích SVR.

Hình 2.4. Giải thích SVR.

- SVR tuyến tính

Các hàm nhân biến đổi dữ liệu thành không gian đặc trưng có chiều cao hơn

để có thể thực hiện phân tách tuyến tính.

- SVR không tuyến tính

16

Hình 2.5. Giải thích SVR.

Kernel function

- Một vài loại kernel-SVR thường được sử dụng:

+ Linear kernel-SVR.

+ Polynomial kernel-SVR.

+ Sigmoid kernel-SVR.

+ Radial Basis Function kernel-SVR

17

Linear kernel-SVR là kernel mặc định của SVR, chỉ sử dụng cho tập dữ liệu có

phân phối tuyến tính. Đối với dữ liệu phi tuyến, có hai loại kernel được sử dụng

nhiều đó là Polynomial kernel-SVR và Radial Basis Function Kernel-SVR.

18

2.4.3 Long Short-Term Memory (LSTM)

Giới thiệu về Recurrent Neural Network Trước khi đi sâu vào giải thích chi tiết mạng LSTM, nhóm sẽ giới thiệu sơ qua về

mạng nơ-ron hồi quy (Recurrent Neural Network -RNN).

Đây là mạng nơ-ron nhân tạo được thiết kế cho việc xử lý các loại dữ liệu có dạng

chuỗi tuần tự. Trong mạng RNN, trạng thái ẩn tại mỗi bước thời gian sẽ được tính

toán dựa vào dữ liệu đầu vào tại bước thời gian tương ứng và các thông tin có được

từ bước thời gian trước đó, tạo khả năng ghi nhớ các thông tin đã được tính toán ở

Hình 2.6. Kiến trúc của một mạng RNN cơ bản khi được duỗi ra.

những bước thời gian trước cho mạng.

19

Trong Hình 2.1, xét tại mỗi bước thời gian t theo chiều từ dưới lên trên,

x(t) là giá trị đầu vào.

h(t) là trạng thái ẩn.

o(t) là giá trị đầu ra.

U, W, V là các ma trận trọng số của mạng RNN.

L là hàm tính mất mát giữa giá trị ra o(t) từ mạng RNN và giá trị đầu ra

chuẩn y(t) từ tập dữ liệu.

Đi sâu vào kiến thức chi tiết hơn, chúng ta xem các vector x(1), x(2), …, x(τ) đại diện

cho các phần tử trong chuỗi dữ liệu đầu vào, tại mỗi bước thời gian t, mạng RNN

nhận lần lượt từng vector x (t) và thực hiện những tính toán để ánh xạ thành chuỗi

đầu ra được mô tả bởi các phương trình sau:

20

Trong đó:

• x (t): Giá trị đầu vào tại bước thời gian t

• h (t): Trạng thái ẩn bước tại thời gian t

• (t): Giá trị đầu ra tại bước thời gian t

• y (t): Vector xác xuất đã chuẩn hóa qua hàm softmax tại bước thời gian t

• U, V, W: Các ma trận trong số mạng RNN tương ứng với các kết nối theo

chiều lần lượt là từ dầu vào đến trạng thái ẩn, từ trạng thái ẩn đến đầu ra và

từ trạng thái ẩn đến trạng thái ẩn.

• b,c: Độ lệch (bias)

21

Hình 2.7. Kiến trúc chi tiết của một mạng RNN tại mỗi bước thời gian.

22

Các vấn đề về gradient trong quá trình huấn luyện

Gradient biến mất (Vanishing Gradient Problem) và gradient bùng nổ (Exploding

Grandient Problem) là những vấn đề gặp phải khi sử dụng các kỹ thuật tối ưu hóa

trọng số dựa trên gradient để huấn luyện mạng nơ-ron. Các vấn đề này thường gặp

phải là do việc lựa chọn các hàm kích hoạt không hợp lí hoặc số lượng các lớp ẩn

của mạng quá lớn. Đặc biệt, các vấn đề này thường hay xuất hiện trong quá trình

huấn luyện các mạng nơ-ron hồi quy.

Trong thuật toán BPTT. Khi chúng ta càng quay lùi về các bước thời gian trước đó

thì các giá trị gradient càng giảm dần, điều này làm giảm tốc độ hội tụ của các trọng

số do sự thay đổi hầu như rất nhỏ. Trong một số trường hợp khác, các gradient có

giá trị rất lớn khiến cho quá trình cập nhật các trọng số bị phân kỳ và vấn đề này

được gọi là gradient bùng nổ. Các vấn đề về gradient biến mất thường được quan

tâm hơn vấn đề gradient bùng nổ do vấn đề gradient biến mất khó có thể được nhận

biết trong khi gradient bùng nổ có thể dễ dàng quan sát và nhận biết hơn. Có nhiều

nghiên cứu đề xuất các giải pháp để giải quyết những vấn đề này như lựa chọn hàm

kích hoạt hợp lý, thiết lập các kích thước cho mạng hợp lý hoặc khởi tạo các trọng

số ban đầu phù hợp khi huấn luyện. Một trong các giải pháp cụ thể có thể chỉ ra là

thuật toán Truncated BPTT, một biến thể cái tiến của BPTT được áp dụng trong quá

trình huấn luyện mạng nơ-ron hồi quy trên các chuỗi dài.

Ngoài ra, cơ chế của mạng LSTM được đề xuất đã khắc phục được các vấn đề này

sẽ được giới thiệu trong phần tiếp theo.

23

Cơ chế hoạt động của mạng LSTM

LSTM là một phiên bản mở rộng của mạng RNN, được đề xuất vào năm 1997 bởi

Sepp Hochreiter và Jurgen Schmidhuber. LSTM được thiết kế để giải quyết các bài

toán về phụ thuộc xa (long-term dependencies) trong mạng RNN do bị ảnh hưởng

bởi vấn đề gradient biến mất.

Có thể hiểu một cách đơn giản là mạng RNN cơ bản trong thực tế không có khả năng

ghi nhớ thông tin từ các bước có khoảng cách xa và do đó những phần tử đầu tiên

trong chuỗi đầu vào không có nhiều ảnh hưởng đến các kết quả tính toán dự đoán

Hình 2.8. Sơ đồ biểu diễn kiến trúc bên trong của một tế bào LSTM.

phần tử cho chuỗi đầu ra trong các bước sau.

24

Mạng LSTM có thể bao gồm nhiều tế bào LSTM (LSTM memory cell) liên kết với

nhau và kiến trúc cụ thể của mỗi tế bào được biểu diễn như trong Hình 2.6.

Ý tưởng của LSTM là bổ sung thêm trạng thái bên trong tế bào (cell internal state)

st và ba cổng sàng lọc các thông tin đầu vào và đầu ra cho tế bào bao gồm: forget

gate ƒt, input gate it và output gate ot.

Tại mỗi bước thời gian t, các cổng đều lần lượt nhận giá trị đầu vào xt (đại diện cho

một phần tử trong chuỗi đầu vào) và giá trị ht-1 có được từ đầu ra của memory cell

từ bước thời gian trước đó t - 1. Các cổng đều đóng vai trò có nhiệm vụ sàng lọc

thông tin với mỗi mục đích khác nhau:

• Forget gate: Có nhiệm vụ loại bỏ những thông tin không cần thiết nhận được

khỏi cell internal state

• Input gate: Có nhiệm vụ chọn lọc những thông tin cần thiết nào được thêm

vào cell internal state

• Output gate: Có nhiệm vụ xác định những thông tin nào từ cell internal state

được sử dụng như đầu ra

Trước khi trình bày các phương trình mô tả cơ chế hoạt động bên trong của một tế

bào LSTM, chúng ta sẽ thống nhất quy ước một số ký hiệu được sử dụng sau đây:

• xt là vector đầu vào tại mỗi bước thời gian t

• Wf,x, Wf.h, W𝒔̃, 𝒙, W𝒔̃, 𝒉, Wi,x, Wi,h, Wo,x, Wo,h là các ma trận trọng số trong

mỗi tế bào LSTM.

• bf, b𝒔̃, bi, bo là các vector bias.

25

• ƒt, it, ot lần lượt chứa các giá trị kích hoạt lần lượt cho các cổng forget gate,

input gate và output gate tương ứng.

• st, 𝒔̃ lần lượt là các vector đại diện cho cell internal state và candidate value.

• ht là giá trị đầu ra của tế bào LSTM.

Trong quá trình lan truyền xuôi (forward pass), cell internal state st và giá trị đầu ra

ht được tính như sau:

Ở bước đầu tiên, tế bào LSTM quyết định những thông tin nào cần được loại bỏ từ

cell internal state ở bước thời gian trước đó St-1. Activation value ƒt của forget gate

tại bước thời gian tđược tính dựa trên giá trị đầu vào hiện tại xt giá trị đầu ra ht-1 từ

tế bào LSTM ở bước trước đó và bias bf của forget gate. Hàm sigmoid function biến

đổi tất cả activation value về miền có giá trị trong khoảng từ 0 (hoàn toàn quên) và

1 (hoàn toàn ghi nhớ):

Ở bước thứ hai, tế bào LSTM quyết định những thông tin nào cần được thêm vào

cell internal state st. Bước này bao gồm hai quá trình tính toán đối với 𝒔̃ và ƒt.

Candidate value 𝐬̃t biểu diễn những thông tin tiềm năng cần được thêm vào cell

internal state được tính như sau:

26

Activation value it của input gate theo đó cũng được tính như sau:

Ở bước thứ ba, giá lới của cell internal state st được tính dựa trên kết quả tính toán

thu được từ các bước trước với phép nhân Hadamard theo từng phần tử (Hadamard

product) được ký hiệu bằng o:

Ở bước cuối cùng, giá trị đầu ra ht của tế bào LSTM được tính toán dựa theo hai

phương trình sau:

27

Chương 3

Thực nghiệm 3.1. Phân tích tập dữ liệu a. Tổng quát

Tập dữ liệu gồm 8 cột tương đương 8 thuộc tính:

- Date

- Open

- High

- Low

- Close

- Volume

- OpenInt

- Stock

Tập dữ liệu gồm gần 20.000 dòng, mỗi dòng là một bản ghi về giá của 1

trong 4 loại cổ phiếu:

- Dòng (2 – 8365): là bản ghi về giá của Apple.

- Dòng (8366 – 10223): là bản ghi về giá của Tesla.

- Dòng (10224 – 18206): là bản ghi về giá của Microsoft.

- Dòng (18207 – 19578): là bản ghi về giá của Facebook.

b. Phân tích ý nghĩa các thuộc tính của tập dữ liệu.

- Date: ngày tháng năm.

- Open: giá mở cửa.

- High: mức giá cao nhất trong phiên giao dịch.

- Low: mức giá thấp nhất trong phiên giao dịch.

28

- Close: giá đóng cửa.

- Volume: khối lượng giao dịch trong phiên.

- Stock: loại cổ phiếu.

Các thuộc tính của tập dữ liệu cần thiết cho bài toán: Date (biến độc lập),

Close Price (biến phụ thuộc), Stock.

c. Trực quan hóa dữ liệu

Hình 3.1. Giá cổ phiếu Apple theo thời gian.

• Apple

29

Hình 3.2. Giá cổ phiếu Tesla theo thời gian.

• Tesla

• Microsoft

30

Hình 3.3. Giá cổ phiếu Microsoft theo thời gian.

Hình 3.4. Giá cổ phiếu Facebook theo thời gian.

• Facebook

Nhận xét:

- Biểu đồ gồm:

▪ Trục hoành là ngày tháng (Date) đã được chuẩn hóa.

▪ Trục tung là giá đóng cửa (Close Price) của cổ phiếu.

- Hình dạng của mỗi biểu đồ là các đường lên xuống khó đoán, không

theo dạng tuyến tính, trông giống như các biểu đồ trên các sàn giao

dịch chứng khoán mà ta thường thấy.

31

3.2. Các bước tiến hành B1. Lựa chọn thuật toán

Ở bài toán này, nhóm đã tham khảo kĩ và chọn ra ba thuật toán phù hợp nhất với yêu

- Linear Regression (LNR): Thuật toán cơ bản, mục đích thực hiện chỉ

cầu của bài toán. Trong đó gồm:

- Support Vector Regression (SVR): Tương đối phù hợp, mục đích thực

mang tính tham khảo.

- Long Short Term Memory (LSTM): Thuật toán được chọn để giải quyết

hiện chỉ mang tính tham khảo.

bài toán.

B2. Xử lý tập dữ liệu

Vì tập dữ liệu chứa lịch sử các bản ghi của cả 4 loại cổ phiếu, nên sẽ có những điểm

dữ liệu có cùng giá trị Date nhưng lại khác loại cổ phiếu và giá đóng cửa.

Tóm lại, phải chia tập dữ liệu ra thành bốn tập con tương ứng với 4 loại cổ phiếu và

theo đó, mỗi thuật toán sẽ cần tạo 4 model khác nhau cho mỗi tập dữ liệu con.

Điều này cũng hoàn toàn phù hợp với thực tế, vì giá của mỗi loại cổ phiếu là khác

nhau, sự biến động của giá cả theo các sự kiện kinh tế - xã hội, tình hình chính trị,…

của chúng cũng khác nhau, không lý nào mà một model có thể dự đoán chính xác

cho cả 4 loại cổ phiếu được.

▪ Với LNR và SVR, biến độc lập của model là ngày tháng (Date), biến phụ

thuộc là giá đóng cửa (Close).

▪ Với LSTM, cứ trong 101 ngày liên tục thì giá đóng cửa của 100 ngày đầu là

biến độc lập, giá đóng cửa của ngày thứ 101 là biến phụ thuộc (100 là timestep

mà nhóm đã chọn).

▪ Phân chia tập dữ liệu train – test theo tỉ lệ 0.8:0.2 cho mỗi tập dữ liệu con.

32

Hình 3.5. Trực quan hóa dữ liệu giá cổ phiếu Apple và kết quả dự đoán với LNR.

Hình 3.6. Trực quan hóa dữ liệu giá cổ phiếu Tesla và kết quả dự đoán với LNR.

3.3. Kết quả thực nghiệm 3.3.1. Linear Regression Trực quan hóa dữ liệu

33

Hình 3.7. Trực quan hóa dữ liệu giá cổ phiếu Microsoft và kết quả dự đoán với LNR.

Hình 3.8. Trực quan hóa dữ liệu giá cổ phiếu Facebook và kết quả dự đoán với LNR.

34

Lưu ý:

- Đường màu xanh dương là giá dự đoán của dữ liệu từ tập Train.

- Đường màu xanh lá cây là giá dự đoán của dữ liệu từ tập Test.

- Các chấm màu đỏ là các điểm dữ liệu thực tế.

Đánh giá độ chính xác thuật toán Sử dụng hàm đánh giá R Squared để đánh giá độ chính xác.

0.446 0.815 0.676 0.961

- Độ chính xác khi chạy trên tập Train

Apple Tesla Microsoft Facebook

-5.328 0.175 -0.044 0.398

- Độ chính xác khi chạy trên tập Test

Apple Tesla Microsoft Facebook

(Độ chính xác dưới 0.5 được gọi là thấp)

3.3.2. Support Vector Regression Trực quan hóa dữ liệu

35

Hình 3.9. Trực quan hóa dữ liệu giá cổ phiếu Apple và kết quả dự đoán với SVR.

Hình 3.10. Trực quan hóa dữ liệu giá cổ phiếu Tesla và kết quả dự đoán với SVR.

36

Hình 3.11. Trực quan hóa dữ liệu giá cổ phiếu Microsoft và kết quả dự đoán với SVR.

Hình 3.12. Trực quan hóa dữ liệu giá cổ phiếu Facebook và kết quả dự đoán với SVR.

37

Lưu ý:

- Đường màu xanh dương là giá dự đoán của dữ liệu từ tập Train.

- Đường màu xanh lá cây là giá dự đoán của dữ liệu từ tập Test.

- Các chấm màu đỏ là các điểm dữ liệu thực tế.

Đánh giá độ chính xác thuật toán Sử dụng hàm đánh giá R Squared để đánh giá độ chính xác.

0.895 0.957 0.909 0.983

- Độ chính xác khi chạy trên tập Train

Apple Tesla Microsoft Facebook

- Độ chính xác khi chạy trên tập Test

0.695 -2.762 0.0233 -1.698

Apple Tesla Microsoft Facebook

(Độ chính xác dưới 0.5 được gọi là thấp)

38

Hình 3.13. Trực quan hóa dữ liệu giá cổ phiếu Apple và kết quả dự đoán với LSTM.

Hình 3.14. Trực quan hóa dữ liệu giá cổ phiếu Tesla và kết quả dự đoán với LSTM.

3.3.2. Support Vector Regression Trực quan hóa dữ liệu

39

Hình 3.15. Trực quan hóa dữ liệu giá cổ phiếu Microsoft và kết quả dự đoán với LSTM.

Hình 3.16. Trực quan hóa dữ liệu giá cổ phiếu Facebook và kết quả dự đoán với LSTM.

40

Lưu ý:

- Đường màu xanh dương là giá dự đoán của dữ liệu từ tập Train.

- Đường màu xanh lá cây là giá dự đoán của dữ liệu từ tập Test.

- Các chấm màu đỏ là các điểm dữ liệu thực tế.

Đánh giá độ chính xác thuật toán Đánh giá độ chính xác với hàm đánh giá R Squared

0.994 0.985 0.993 0.965

- Độ chính xác khi chạy trên tập Test

Apple Tesla Microsoft Facebook

(Độ chính xác dưới 0.5 được gọi là thấp)

Đánh giá độ chính xác với hàm lỗi Root Mean Squared Error (RMSE)

1.049

- Sai lệch trung bình khi chạy trên tập Test.

Apple

2.839

Tesla

0.734

2.160

Microsoft

Facebook

41

Chương 4

Kết luận 4.1. Những kết quả đạt được

• Tìm hiểu phương pháp hồi quy.

• Có được một vài kiến thức cơ bản về chứng khoán.

• Tìm hiểu về Mạng nơ-ron hồi quy (Recurrent Neural Network).

4.2. Khó khăn

• Nắm được kĩ năng lập trình bằng python cơ bản.

• Chứng khoán là một lĩnh vực khó và rất khó để dự đoán.

• Giá của cổ phiếu biến động liên tục và liên quan đến những sự kiện kinh tế -

tài chính, chính trị - xã hội,…

4.2. Hướng phát triển Phát triển lên một ứng dụng lấy giá cổ phiếu trực tiếp từ giá thị trường hiện tại, từ

• Những biến động này thì khó để số hóa và cho máy tính hiểu được.

đó dự đoán và đưa ra gợi ý về tín hiệu mua bán cho người dùng.

42

Bảng phân chia công việc

Mức độ hoàn thành STT MSSV Công việc được giao (%)

- Tìm hiểu Support Vector 18521510

Regression – Nguyễn 100 1 - Tìm hiểu LSTM Lương

- Coding, làm báo cáo các phần Toàn

tương ứng

19522005 - Tìm hiểu Linear Regression

100 2 – Nguyễn - Coding, làm báo cáo các phần

Anh Phi tương ứng

43

Tài liệu tham khảo

https://www.kaggle.com/altruistdelhite04/loan-prediction-problem-dataset

https://nguyentruonglong.net/giai-thich-chi-tiet-ve-mang-long-short-term-

memory-lstm.html

https://dominhhai.github.io/vi/2017/10/what-is-lstm/

https://www.aionlinecourse.com/tutorial/machine-learning/support-vector-

regression

http://www.jaist.ac.jp/~bao/VNAlectures/Regression%20Dec%206-

TungNT-in.pdf

https://www.youtube.com/watch?v=H6du_pfuznE

44