Nhận thay tam quan trong của van đề, khoá luận này đề xuất và xây dựng một hệthống cung cấp cho người dùng hai dịch vụ chính là sử dụng các mô hình thống kê trong dự đoán thời gian dài v
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HQC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
NGUYEN THI VIET HUONG - 19521595
KHOA LUAN TOT NGHIEP
DỰA TREN PHAN TÍCH CAM XUC VA HOC MAY XÂY DUNG MO HÌNH DỰ BAO TIEN MA HOÁ VÀ
CHUNG KHOAN
BASED ON SENTIMENT ANALYSIS AND MACHINE LEARNING: BUILDING FORECASTING MODELS FOR CRYPTOCURRENCY
AND STOCK PRICES
CU NHAN NGANH THUONG MAI DIEN TU
GIANG VIEN HUONG DAN PGS.TS NGUYEN ĐÌNH THUAN
Trang 2LỜI CẢM ƠN
Lời đầu tiên, chúng em xin được cảm ơn trường Đại học Công nghệ Thông tin - Đại
học Quốc gia Thành phố Hồ Chí Minh đã tạo điều kiện tốt nhất để chúng em có thể học
tập và phát triển Học tập tại đây, chúng em đã gặp được rất nhiều những thầy cô, những người bạn, và những con người tuyệt vời, song song đó là những cơ hội quý giá để phát
triển ban thân trong sự nghiệp lẫn cuộc sống Đề hoàn hoàn thành khóa luận này, chúng
em xin được gửi lời cảm ơn đặc biệt đến những người sau đây.
Chúng em xin trân trọng gửi lời cảm ơn tới thầy PGS.TS Nguyễn Đình Thuân và KS Nguyễn Minh Nhựt, những người đã hết lòng giúp đỡ chúng em trong con đường nghiên cứu lẫn học tập Thầy Thuan là một nguồn cảm hứng to lớn cho em có thể tự tin và vượt
qua vô số thử thách trên con đường học tập và nghiên cứu trong suốt thời gian qua.
Tiếp theo, chúng em muốn dành lời cảm ơn đến những thầy cô trong trường, đã dạy
dỗ và truyền đạt những kinh nghiệm, kiến thức quý báu trong suốt những năm học Bên cạnh đó, chúng em muốn gửi lời cảm ơn các thay cô trong khoa Hệ Thống Thông Tin đã
tạo nhiều cơ hội dé chúng em có thé phát triển Chúng em cũng muốn cảm ơn những anh chị và những người bạn đã luôn đồng hành cùng chúng em trong suốt hành trình học đại
học, đặc biệt là các bạn ở lớp TMCL2019 và các bạn ở nhóm nghiên cứu FTISU.
Cuối cùng, chúng em muốn gửi lời cảm ơn đến bố mẹ, gia đình cùng những người thân của chúng em, những người đã luôn đồng hành, tin tưởng, ủng hộ, và quan tâm giúp
đỡ chúng em trong những lúc khó khăn nhất Không có mọi người, chúng em đã không thể có được như ngày hôm nay.
Trang 3MỤC LỤC
I9 1W v04: 900090777 6 4+£—äAÃŒHH)H 1 9:10/9)/c0180/92710000 3 DoD canh 3
Na na :đg- L 3
1.3 Mục tiêu của để tài - 222 tt 22H 221121 4 1.4 Đối tượng và phạm vi nghiên CỨU ¿+ ¿+ ++++2£2£2£+*+£££+£+Eztzrerserererrs 4
1.4.1 Đối tượng nghiên cứu -¿-+¿©22++22+++E2+2EEEEEEEtEEEEtEEESrkrrrrkrrrrrrerree 4
1.4.2 Phạm vi nghiên cỨU -¿ - +52 2 E*EE2% 2 EEk£k*EESEkEkEEx kg re 4
1.5 Kiến trúc đề tài -cs 222 222 22221 221211122211122221112211112.111112.112 2 ca 5
1.6 Các đóng BÓp ch ng HT HT ngàn 6
CHƯƠNG 2: CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN - 7
CHƯƠNG 3 CƠ SỞ LÝ THUYẾT -22 ©22222222222EEEE22EEEEtSEEEEtrErvrrrrrrrree 10
3.1 Lý thuyết chuỗi thời gian
3.1.1 Định nghĩa chuỗi thời gian ¿-5¿5+25t‡2xt2Ext2EveEEverxrerrerrrsrrrrrrrek 10
3.1.2 Các thành phần của chuỗi thời gian
3.2 Các lý thuyết và kỹ thuật
3.2.1 Sentiment Analysis
K25 0000 1n 15
Trang 43.2.3.1 AR
c5 20 k2 20
3.2.4.4 Gradient BOOSK cá HT TH TH HH HH TH Hi 26
3.2.4.5 LSTM VN 0w cac ÁCL LH HH HH HH TH ky 26
3.2.4.6 GRUP TR ee MOO a LG HH rà, 28
CHƯƠNG 4: NỘI DUNG VÀ PHƯƠNG PHAP 0 csssscssssesssseesseeessessssecsssecssesesseees 30
4.1 Tổng quan và tiền xử lý ¿ 2:-22222221222122211222112211127112111 211.211 xe, 30
4.2 Các giai đoạn chính - ¿+ + + +11 91 121211111 1 111111 10101010 110101010 ri 32 4.2.1 Pharse 1 — Học mô hình dự báo - - ¿+55 +32 +22 *++£+z++eeeeeesrreesexse 32
4.2.2 Pharse 2 — Quy trình xây dựng hệ thống API -©z+c5+z5++ 34 4.2.2.1 Thiết kế thành phần chức năng 2 2¿+++22+z+2++z+zx+z+zxeez 34 4.2.2.2 Thiết kế thành phần dit liệu -2¿-2¿22222+++22x++2Exezrxersrreee 37 4.2.3 Pharse 3 — Triển khai hệ thống API lên Server Cloud Linux 40 4.2.4 Pharse 4 — Xây dựng giao diện và giao tiếp API -©cccccsscsrx 4I
Trang 5CHƯƠNG 5 THỰC NGHIỆM VÀ ĐÁNH GIÁ
5.1 Dữ Liệu Sử Dụng ¿+11 TT nh TH TH nh Hàn nh Hàn re 45 5.2 Chia BO Dit ma 46
5.3 Thông Số Đánh Gid eeesseeccssssecssssescesseecesssecessnsecesssecessnsesesnsecessnesessnsesesaneceesnees 47
na “ 47
mg 48
XS ni 0 .ố 4‹(2ŒÄä.,), H 49
5.4 Kết Quả Và Thảo Luận -222222:2222 2222221111222 E111 re 50
5.4.1 Sentiment Analysis Và Các Trường Hợp Dự Đoán Dựa Trên Ensemble
Learning 6 ⁄⁄22-.„6t , Â Le 50
5.4.2 Trường Hợp Dự Doan Dựa Trên Mô Hình Thong Kê 58
CHUONG 6 TONG KET VA HƯỚNG PHAT TRIEN ::::::¿¿¿2:zẻ2 62
6.1 Han Chế Và Công Việc Trong Tương Laii cccscscecsseecssescssecsssecssecsseecsneessneesseees 62 6.2 Kết Luận c2 22tvv 21212 1 1221 tr HH re 63 TÀI LIEU THAM KHẢO 22222222222222222222E222EE222212222211 22221 2E re 64
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1 Kiến trúc hệ thống -¿- 22 22©+£+2E+22EEE2EEEE222122221227312711222122211 22x e2 5
Hình 3.1 Biểu đồ thể hiện giá (USD) của Bitcoin theo thời gian -+ 10
Hình 3.2 Các thành phần của chuỗi thời gian trong Decomposition of time series
Hình 3.3 Các bước dé tiền xử lý và làm sạch một tweet
Hình 3.4 Các bước chính của kỹ thuật Bagging cho bài tốn hồi quy 17
Hình 3.5 Các bước chính của kỹ thuật Boosting cho bài tốn Hồi quy 18 Hình 3.6 Cấu trúc cơ bản của mơ hình LSTM -¿-2¿+z22++2c+++tzxeerzxesrx 27
Hình 3.7 Cấu trúc cơ bản của mơ hình GRU -.¿¿¿22vv+++22vvvvrssrrrrerrree 28
Hình 4.1 Minh họa tổng quan về quá trình xử lý tổng thể và các thuật tốn được sử dụng
trong thực nghiệm này
Hình 4.2 Trang web dùng để download dữ liệu Bitcoin
Hình 4.3 Đồ thị về Closing Price theo thời gian của indexes BTC, TSLA, và TWTR 34
Hình 4.4.Usecase tổng quan hệ thống dự báo và khuyến nghị BTC, TWTR, và
TSLA ỂG Te T É xốệt c.cnhiiheeie 35
Hình 4.5 Class diagram hệ thống ¿+ ©2+¿2©2++2E+++EE+++EE+tSEEErerxrerrrrerrrrrrs 37 Hình 4.6 Sequence Diagram Dự báo giá BTC, TWTR, và TSLA 40
Hình 4.7 File cấu hình crontab -++++++++++++++2222222222222222200000000.0 41
Hình 4.8 API auto crawl data tại €OrItFỌÏ€T - -¿- c2 3+ *+E+vEeesereeesesrereeevse 4I Hình 4.9 Hàm auto crawl data tại S€TVIC€ - cà 3n 2.1 *2 v9 1xx rrrriyn 4I
Hình 4.10 Màn hình tổng quan Home - 2 2£©+£+2E+£+EE+£+EEE2zx+tzrxzerrsrsrx 42 Hình 4.11 Màn hình tổng quan Ethereum 2-2¿2+++2+++22++t2zxetrrxesrrrcrrs 42
Hình 4.12 Màn hình xem lịch sử giá BitCoin ee ences ee k Street 4
Hình 4.13 Màn hình lựa chọn thuật tốn và dự báo 43
Hình 5.1.Cross Validation được minh hoa với k=
Trang 7Hình 5.2 Trực quan hóa kết quả của các thuật toán tốt nhất cho các mô hình chi số BTC
Trang 8DANH MỤC TỪ VIẾT TÁT
Số thứ tự | Thuật ngữ Mô tả
1 AI Artificial Intelligence
2 API Application Programming Interface
3 CPU Central Processing Unit
4 DL Deep Learning
5 GPU Graphics Processing Unit
6 ML Machine Learning
7 RAM Random-Access Memory
8 NLP Natural Language Processing
9 IR Information Retrieval
10 QA Question Answering
11 NLI Natural Language Inference
Trang 9Nhận thay tam quan trong của van đề, khoá luận này đề xuất và xây dựng một hệ
thống cung cấp cho người dùng hai dịch vụ chính là sử dụng các mô hình thống kê trong
dự đoán thời gian dài và đề xuất thêm các kĩ thuật Sentiment Analysis dựa trên tweets
của người dùng để tăng khả năng dự đoán và kết hợp thêm Ensemble Learning trong dự đoán thời gian ngắn.
1.3 Mục tiêu của đề tài
Mục tiêu đề tài bao gồm:
e Mô tả các đặc tinh của các mô hình dự báo chuỗi thời gian, trí tuệ nhân tạo từ đó
đánh giá sự phù hợp của mô hình đề xuất và áp dụng vào dự báo.
e_ Sử dụng dữ liệu trong quá khứ thông qua mô hình dự báo chuỗi thời gian và thuật
toán trí tuệ nhân tạo dé dự báo giá trị và đưa ra các quyết định trong tương lai.
e Tim hiểu cách hoạt động và kết hợp giữa các mô hình dự báo như: LR, EN, AB,
GB, LSTM, GRU, AR, ES, NNETAR, TBATS, GARCH, và phương pháp kết
hợp Boosting, Bagging.
e Đề xuất và xây dựng website dự báo giá (tiền mã hoa và chứng khoán) bằng các
thuật toán đề xuất, thông qua trang web: https://finance.yahoo.com.
e Phân tích quan điểm của các người dùng tiền mã hoá, chứng khoán và những
người có ảnh hưởng lớn.
1.4 Đối tượng và phạm vỉ nghiên cứu
1.4.1 Đối tượng nghiên cứu
© Nghién cứu dữ liệu giá tiền mã hoá (BTC) va chứng khoán (TWTR, TSLA) từ
năm 2015 — 2022.
e Binh luận của người dùng và người có ảnh hưởng lớn từ năm 2015 — 2022.
Trang 10e Mô hình trí tuệ nhân tao: LR, EN, AB, GB, LSTM, GRU.
¢ _ Các mô hình kết hợp: Boosting, Bagging.
¢ Bộ dữ liệu về lịch sử giá (tiền mã hoá và chứng khoán): crawl từ website
Yahoo!Finance.
¢ Ngôn ngữ lập trình sử dung: Python, Java Springboot, Nextjs, các framework và
thu vién lién quan.
e Phương pháp crawl dữ liệu thong qua API của Twitter: Thư viện Scrapy, Tweepy
¢ Kiến thức xây dung Website.
1.5 Kiến trúc dé tài
| L
PART 1 TEST MODEL FORECAST PART 2 BUILDING API SERVER
‘Sentiment Analyse 1 ae, +, Choose Best Modet————> (PubliefModel
State Models
xa
Linux Server ora MySOL
Jayaseipt oss) Nexis HTML
Hinh 1.1 Kién tric hé thong
Mô tả kiến trúc đề tài (Hình 1.1) gồm 4 pharse cơ bản như sau:
e Triển khai Pharse 1: Học trên các mô hình dự báo, sau đó chọn ra mô hình dự báo
tốt nhất đề tiền hành dự báo Từ PART /, tat cả mô hình máy học được đưa vào
PART 2 thư mục public.
Trang 11Triển khai Pharse 2: Xây dựng các API clone dữ liệu từ Website BTC, TWTR và
TSLA về, xây dựng các Controller, kiến trúc CSDL.
Triển khai Pharse 3: Giai đoạn đưa API lên Cloud Server Linux, dùng cơ chế
CRON Schedule của hệ điều hành Linux cho các hoạt động định thời chạy các
mô hình máy học hoặc lấy dữ liệu từ Website Data BTC/TWTR/ TSLA.
Triển khai Pharse 4: Ở PART 3, xây dựng Website Client để người dùng có thé
thây giá trị dự báo.
1.6 Các đóng góp
Xây dựng các mô hình dự đoán giá tiền mã hoá và chứng khoán thông qua phân tích cảm xúc, thực nghiệm kiểm thử.
Xây dựng cơ chế CRON chạy mô hình theo thời gian thực.
Xây dựng Controller phù hợp cho mô hình dựa trên Framework của nhóm nghiên cứu.
Cấu hình Dynamic Param cho từng ngày.
Hỗ trợ thiết kế giao diện.
Coding thành phan giao diện Component.
Quản lý bảo trì hệ thống chạy ồn định.
Trang 12CHƯƠNG 2: CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Dựa trên các đặc điểm, từ khóa liên quan về các thử nghiệm liên quan đến dự đoán,
học máy, học sâu, phân tích tình cảm, v.v chúng tôi đã tìm kiếm các bài báo liên quan
trong những năm gần đây và dựa vào những bài toán đó dé thực hiện nghiên cứu này và thể hiện chỉ tiết qua Bảng 2.1 dưới đây.
Những thành công của trí tuệ nhân tạo trong những năm gần đây đã làm cho các
nghiên cứu về dự báo giá chứng khoán được cải thiện về độ chính xác và hiệu suất Việc kết hợp các mô hình không chỉ hạn chế sai số từ mô hình đơn thông thường mà còn khai thác được thế mạnh tiềm ẩn bên trong các mô hình Với mục tiêu đó, Subhajit
Chakrabarty et al [1] đã áp dụng các mô hình bao gồm Support Vector Regression,
Decision Tree Regression, Gradient Boosted Regression, Rvàom Forest Regression, Ada Boost, Extreme gradient boost (XGBoost), Light Gradient Boosted Machine
(LightGBM), Long Short-Term Memory (LSTM) va Stacked Generalization ensemble
để dự đoán giá chứng khoán S&P 500 với bộ dữ liệu khoảng 29 năm.
Sự kết hợp giữa các mô hình giúp cho kết quả dự báo tối ưu hơn, điều này đã được chứng minh qua bài viết “Predicting Market Performance with Hybrid Model” của
Mehak Usmani et al [2] Trong đó, họ sử dụng các thuật toán bao gồm ARIMA, SMA,
Radial Basis Function và hai biến thể của Mạng nơ-ron nhân tạo, nhờ các phép đo của
mô hình với độ chính xác trên 70%.
Thuật toán đơn có một số sai sót dẫn đến ước tính không chính xác và mô hình không
phù hợp để triển khai thực tế, Yuanning Liu et al [3] đã dự đoán mô hình cơ sở và cải tiến nó bằng kỹ thuật Bagging va Stacking dé mô hình đạt hiệu suất tốt hơn, giá trị dự đoán gần với giá trị thực hơn.
Các tác gia [4] đã dự đoán giá đóng cửa của thị trường chứng khoán trong khoảng 17
năm, từ ngày 4 thang 1 năm 2000 đến ngày 17 thang 1 năm 2017 Họ đã sử dụng phương pháp học sâu, LSTM và GRU dé dự đoán giá trị này thông qua các chỉ sé đánh giá như
Trang 13RMSE và R? Kết quả cho thấy LSTM phù hợp với cả 2 tiêu chí, với RMSE nhỏ hơn
0,072 và R? đạt 85,5% kết quả dự đoán của mô hình LR - GD trên bộ dữ liệu của AAPL.
Thuật toán LSTM được nhóm tác giả [5] sử dụng trong việc dự đoán giá chứng khoán
dựa trên tác động của các cú sốc “máu công nghiệp” khác nhau - dau thô Với các tập dữ liệu lớn trong hơn 20 năm, kỹ thuật LSTM dựa trên biến đổi Fourier đã cải thiện độ chính
xác và góp phần vào hiệu suất dự báo kinh tế.
Các tác giả [6] đã sử dụng các kỹ thuật hồi quy, bao gồm Linear Regression, Lasso
Regression, Ridge Regression, Elastic Net Regression models, và Gradient Boost và Ada
Boost Regression cho các mô hình phi tuyến dé phân tích ham mắt mát Dựa trên King County Dataset, người ta đã chỉ ra rằng với các tiêu chí đánh giá R?, MSE và RMSE, Gradient Boost Regression là mô hình tối ưu nhất với độ chính xác hơn 90%.
Các tác giả [7] dự đoán khả năng sinh lợi của chứng khoán ngân hàng ở Ấn Độ dựa trên các yếu tố như chứng khoán hành động theo khối lượng bat kể quy mô, tính thanh
khoản hoặc doanh thu trong quá khứ của chúng Thông qua các chỉ ss MAE, MAPE, MSE và RMSE, mô hình XGBoost hoạt động tốt nhất so với Gradient Boost, Ada Boost
và Random Forest, với RMSE dao động từ 3% đến 5%, giúp nhà đầu tư có cái nhìn tổng
quan và đưa ra lựa chọn.
Các tác giả [8] đã dự báo giá chứng khoán của Thái Lan dựa trên dữ liệu tin tức hàng
ngày Bên cạnh các thuật toán phô biến Random Forest và Support Vector Regression,
nhóm tác giả còn sử dụng thuật toán Ada Boost để dự đoán mức độ biến động không chắc chắn của phiếu bầu đó Mô hình Support Vector Machine đã được dao tạo hiệu quả
với giá trị RMSE tối thiểu trong quá trình nghiên cứu - RMSE có thể giảm 8,63%.
Trang 14Bảng 2.1 Tổng hợp các công việc liên quan về giá chứng khoán
Năm | — Tác giả Tên bài báo Mô hình sử dụng | Tập dữ liệu | Phân tích
cảm xúc
600030.SH,
Shensting Wu S I LSTM: stock price prediction 601988.SH,
2021 | va, a (91 based on multiple data sources và | LSTM,CNN _ | 601398.SH, Có
sentiment analysis 601939.SH,
601288.SH
Manish Stock Prediction Based on LSTM, EDLA- HDFC, Yes :
2021 | Agrawal và et | Technical Indicators Using Deep Khong
LSTM Bank, SBI
al [10] Learning Model
ARIMA, LSTM,
FBProphet, Facebook
Konark Yadav Stock values predictions using CNN + LSTM, Inc., Nike
2021 vaet al [11] deep learning-based hybrid CNN + Bi-LSTM, Inc., Khong
models FastRNN-based, | Uber, Apple
Fast RNN + CNN + Inc.
Bi-LSTM-based Ishu Gupta va HISA-SMFM: Historical va
2022 | ` P sentiment analysis-based stock LSTM Tata Motors Có
et al [12] A
market forecasting model
Paraskevas Stock Market Prediction Using
2022 | Koukaras va et Microblogging Sentiment KNN, SVM, LR, DJIA Có
al [13] Analysis và Machine Learning NB, DT, RF, MLP Xiaohang Ren, Fourier transform based LSTM
2022 | Weixi Xu và et | stock prediction model under oil S&P 500 Khong
LSTM
al [5] shocks
Trang 15Các bài toán phổ biến trong lĩnh vực chuỗi thời gian bao gồm:
¢ Dự báo: Dự đoán giá trị của chuỗi thời gian trong tương lai Đây là bài toán quan
trọng trong kinh tế học, tài chính, sản xuất, marketing và nhiều lĩnh vực khác.
e Phan tích mùa vụ: Xác định và mô hình hóa các yếu tố mùa vụ trong đữ liệu
chuỗi thời gian Mùa vụ xuất hiện khi có sự biến động theo chu kỳ cé định trong một khoảng thời gian nhất định, chẳng hạn như mùa hè và mùa đông.
e Phan tích xu hướng: Xác định va mô hình hóa xu hướng tăng hoặc giảm trong
dữ liệu chuỗi thời gian Xu hướng thẻ hiện sự thay đổi thời gian dài và không
thường xuyên trong dữ liệu theo thời gian.
© Phan tích biến động chu kỳ: Xác định và mô hình hóa các biến động có chu kỳ
nhưng không thường kỳ trong dữ liệu chuỗi thời gian Biến động chu kỳ có thể gây ra các biến động kéo dài hơn so với mùa vụ và có thé không tuân theo các
chu kỳ đều đặn.
3.1.2 Các thành phần của chuỗi thời gian
Chuỗi thời gian có thé được phân thành các thành phan chính sau đây:
e Xu hướng (Trend): Thành phần xu hướng thé hiện sự thay đổi thời gian dài và
có xu hướng trong dữ liệu theo thời gian Xu hướng có thể tăng hoặc giảm theo
thời gian và cho thấy sự biến đổi thời gian dài của chuỗi thời gian Xu hướng có
thể là tuyến tính hoặc phi tuyến tính.
e Mia vu (Seasonality): Thành phần mùa vụ là sự biến đổi theo chu kỳ cố định
trong dữ liệu theo thời gian Nó xuất hiện khi có sự biến động định kỳ trong chuỗi
thời gian, thường xảy ra trong cùng một thời gian trong mỗi chu kỳ Mùa vụ có
thể có các chu kỳ hàng năm, quý, tháng hoặc tuần.
© Chu kỳ (Cycle): Thành phan chu kỳ thé hiện sự biến đổi có chu kỳ trong dữ liệu
chuỗi thời gian, nhưng không nhất thiết phải có chu kỳ đều đặn như mùa vụ Chu
kỳ thường kéo dài hơn so với mùa vụ và có thể không tuân theo các chu kỳ định
Trang 16kỳ Nó thường liên quan đến các biến động kinh tế, tài chính hoặc công nghiệp
thời gian dai.
e Yéu tố bat thường (Irregular Remainder): Thành phần bất thường đại diện cho
sự biến đổi ngẫu nhiên và không thể dự đoán được trong đữ liệu chuỗi thời gian
Nó là sự khác biệt giữa giá trị quan sát thực tế và dự đoán dựa trên các thành phần
trên Thành phần bất thường thường được gán cho các biến động ngẫu nhiên, lỗi
đo lường hoặc tác động của các yếu tô không xác định khác
Các thành phần trên cùng nhau tạo nên dữ liệu trong chuỗi thời gian và cần được xác
định và mô hình hóa để hiểu và dự báo chuỗi thời gian một cách hiệu quả Quá trình
phân tích và mô hình hóa các thành phần này có thé sử dụng các phương pháp và kỹthuật trong lĩnh vực lý thuyết chuỗi thời gian và thong kê Trong Hinh 3.2 dưới đây minh
hoạ cho các thành phần của chuỗi thời gian.
Trang 173.2.1 Sentiment Analysis
Tiến hành thu thập các tweets trên Twitter dựa trên hashtags (#BTC, #TSLA,
#TWTR) được đề cập trong nội dung tweets của người dùng Các bài viết được lấy từ
ngày 1 tháng 1 năm 2015 đến ngày 27 tháng 10 năm 2022 thông qua API của Twitter sử
dụng Tweepy Sau đó, lấy 50 bình luận phổ biến nhất hàng ngày, dựa trên
result_type=popular' Điều này được thực hiện vì việc lấy toàn bộ bộ dữ liệu sẽ dẫn đếncác giá trị ngoại lệ đáng kể, gây ảnh hưởng đến phân tích tâm trạng ở bước tiếp theo Do
đó trong thực nghiệm này, chỉ lay cac tweets phé biến dựa trên số lượt bình chọn (tương
tác cho mỗi tweet) đã được thực hiện.
Sau khi thu thập tập dữ liệu tweets ban đầu, dữ liệu sẽ được xử lý và làm sạch Mộttweet sẽ bao gồm các thành phần sau: cụm từ, biêu tượng cảm xúc, ký hiệu, URL, đề cậpngười dùng, v.v Nếu dữ liệu được làm sạch, việc xử lý sẽ dễ dàng và thuận tiện hơn khi
sử dụng VADER để tiến hành Sentiment Analysis cho mỗi tweet Do đó, trong thựcnghiệm này đã tham khảo nghiên cứu [16] dé tiền xử lý và làm sạch cho một tweet, và
các bước chính đã thực hiện được mô tả trong Hình 3.3 dưới đây.
Reduce character Convert the comment to Remove xin ii
\}<———— excess (white) space, sequences >3 to 3 the lower case
Hình 3.3 Cac bước dé tiền xử ly và làm sạch một tweet
Các bước xử lý cụ thé được sử dụng trong khoá luận này bao gồm:
Trang 18e Chuyến tất cả tweets thành chữ thường.
e Thay thé nhiều dau cham (.) bang khoảng trang
¢ Loại bỏ khoảng trang va dau ngoặc kép (” va ‘) ở đầu và cuối bình luận
e Thay thé hai hoặc nhiều khoảng trống bang một khoảng trống duy nhất
e Giảm số địa điểm được dé cập bởi người dùng
e Loại bỏ các từ trùng lặp trong một chuỗi bằng Python.
e_ Chuyên đối hashtag thành các từ quen thuộc.
e Loại bỏ biêu tượng cảm xúc không cân thiệt.
Sau khi tiền xử lý và làm sạch, sẽ thu được tập dữ liệu về sentiment Việc sử lí cáctweets tiéng anh, sử dung VADER - một thu viện được dùng cho Sentiment Analysis, sẽ
được sử dung va sé thu được các thông SỐ Sau: Compound, Polarity, Subjectivity,
Positive, Negative va Neural Cac thong số này sẽ đại diện cho các đặc điểm tâm trạngcủa mỗi tweet dé thé hiện quan điểm của họ Các thông số này sẽ được mô tả chỉ tiết
dưới đây:
e_ Compound: là một điểm dựa trên tong hợp tat cả các đánh giá từ vựng và sau đó
chuẩn hóa trong khoảng [-1:1] Nó thể hiện ở ba mức độ:
— Tính Positive: (điểm compound >= 0.05)
— Tính Neural: (điểm compound > -0.05) và (điểm compound < 0.05)
— Tính Negative: (điểm compound <= -0.05)
e Polarity: hiển thi sự khách quan của các câu trong khoảng từ [-1:1], với 1 có nghĩa
là một câu khẳng định tích cực và -1 có nghĩa là một câu phủ định.
e©_ Subjectivity: thé hiện những thái độ, cảm xúc và ý kiến cá nhân của một cá nhân,
trong khoảng [0:1], 1 có nghĩa là một câu có tính chủ quan va 0 có nghĩa là một câu khách quan.
¢ Positive: thể hiện tính tích cực của các câu trong khoảng từ [0:1]
e_ Negative: thê hiện tính tiêu cực của các câu trong khoảng từ [0:1]
14
Trang 19e Neural: Không thé hiện tính tích cực hoặc tiêu cực của các câu trong khoảng từ
[0:1].
Sau khi có được các tham số cảm xúc của mỗi bài viết trên Twitter, tính toán cáctham số trung bình của 50 bài viết mỗi ngày Sau đó, chuyên đổi các tham số trung bình
này thành một bộ dữ liệu với Index column là Date Cuối cùng, thu được các tập dữ liệu
về Sentiment cuối cùng và tiễn hành các bước tiếp theo trong quá trình xử ly tổng thé
3.2.2 Ensemble Learning
Ensemble Learning [17] là một kỹ thuật may hoc két hop các dự đoán từ nhiều môhình dé cải thiện độ chính xác Hoạt động của Ensemble Learning dựa trên việc chia tập
dữ liệu thành các tập con nhỏ hơn, thực hiện các dự đoán độc lập trên mỗi tập con này,
và tính trung bình các chỉ số độ chính xác của các tập con này dé thu được kết quả cuốicùng Hơn nữa, có thê kết hợp các thuật toán khác nhau để tạo ra dự đoán cuối cùng
Trong khoá luận này, sử dung hai loại Ensemble Learning, là Bagging va Boosting, dé
cải thiện độ chính xác của các mô hình đơn lẻ thông thường trong việc dự đoán giá sau một ngày.
3.2.2.1 Bagging
Bagging [18] là một kỹ thuật Ensemble Learning kết hợp các mô hình bang cachhuấn luyện mỗi mô hình dựa trên các tập con của dữ liệu huấn luyện Trong Bagging,
mỗi mô hình được huấn luyện độc lập với các mô hình khác và có cùng trọng số trong
dự đoán cuối cùng Bagging giúp giảm rủi ro quá khớp bang cách huấn luyện các tập
con khác nhau của tập dữ liệu và giảm phương sai bằng cách kết hợp các mô hình này
Dưới đây là các bước chỉ tiết của Bagging được thực hiện trong khoá luận này.
Các bước chỉ tiết của việc thực hiện như sau:
e Bước 1 (Chia dữ liệu): Chia dữ liệu thành các tập con, từ đó tạo ra các tập con dữ
liệu huân luyện và kiêm tra đê đánh giá hiệu suat của mô hình sau khi dự đoán.
Trang 203.2.3.2 ES
Exponential Smoothing (ES) [22] là một kỹ thuật được sử dụng phô biến trong dựbáo chuỗi thời gian, trong đó trọng số trung bình động được tính toán cho các giá trịquan sát Phương pháp ES sử dụng một cách tiếp cận trung bình có trọng số, gán trọng
số cao hơn cho các quan sát gần nhất và thấp hơn cho các giá trị cũ hơn Phương phápnày giup giảm thiểu tác động của sự biến động ngẫu nhiên và các giá tri ngoại lệ lên dự
3.2.3.3 ETS
ETS (Exponential Smoothing) [23] là một kỹ thuật dự báo chuỗi thời gian được sử
dụng trong phân tích dit liệu Công thức ETS được sử dụng dé dự báo xu hướng và mô
hình sự thay đổi dữ liệu theo thời gian ETS là một trong những phương pháp dự báo
chuỗi thời gian phô biến nhất Nó được sử dụng đề dự đoán giá trị của một biến số trongtương lai dựa trên các giá trị quá khứ của biến số đó, sử dụng ba thành phần chính: thànhphan mùa vụ, thành phần xu hướng và yếu tố ngẫu nhiên Thanh phần mùa vụ đại diệncho sự biến thiên chu kỳ của dữ liệu vào cùng thời điểm hang năm
Ngược lại, thành phần xu hướng đại diện cho xu hướng tăng hoặc giảm của đữ liệutheo thời gian Thành phần ngẫu nhiên đại diện cho sự biến động ngẫu nhiên của dữ liệu
Công thức chung cho phương pháp ETS là:
20
Trang 21đầu vào là các giá trị trễ của chuỗi thời gian, và các neuron đầu ra đại diện cho
các giá trị dự báo của chuỗi thời gian
e Bước 4: Mô hình được huấn luyện bằng thuật toán backpropagation dé tối thiêu
hóa sai số giữa các giá trị dự báo và thực tế
e Bước 5: Mô hình được sử dụng dé dự báo gia tri tiép theo của chuỗi thời gian, va
quy trình được lặp lại để dự báo giá trị trong tương lai.
Công thức chính xác của NNETAR phức tạp, phụ thuộc vào cấu trúc và các tham số
của mạng nơ-ron và mô hình ARIMA.
3.2.3.6 TBATS
TBATS [26] (Trigonometric seasonality, Box-Cox transformation, ARMA errors,
Trend, and Seasonal components) được giới thiệu bởi De Livera, Hyndman va Snyder
vào năm 2011 như một phương pháp dự báo chuỗi thời gian Day là một mở rộng của
phương pháp Exponential Smoothing (ETS) Nó dự báo chuỗi thời gian với các yếu tố
mùa vụ và các yếu tố khác như xu hướng, chu kỳ và yếu tô ngẫu nhiên.
Phương pháp TBATS sử dụng mô hình ARIMA (AutoRegressive Integrated Moving
Average) dé mô hình các yếu tô ngẫu nhiên và sử dụng các yếu tố chu kỳ dựa trên các
hàm lượng giác dé mô hình các yếu tố mùa vụ và các yếu tố khác Nó cũng sử dụng phépbiến đổi Box-Cox dé giảm độ lệch và tối ưu hóa phân phối các giá tri dit liệu
Phương pháp TBATS tính toán dự báo bằng cách phân rã chuỗi thời gian thành cácthành phần khác nhau và kết hợp chúng Các thành phần này bao gồm:
e 7: Thành phan xu hướng
e B: Thành phan mùa vụ được mô hình bằng các hàm lượng giác
e A: Thành phan mùa vụ tùy ý
e E: Thành phan sai số
e_ Box — Cox: Phép biến đổi Box-Cox.
Công thức chung cho phương pháp TBATS là:
Trang 22Yeon = Te + Bethmoamt At+n + Et+n BoxCox(¥;,A) (8)
Với:
© Y.p là giá tri dự báo tại thời điểm £ + h
e 7, là giá trị của thành phan xu hướng tại thời điểm ¿
3.2.4 Các thuật toán trí tuệ nhân tạo
3.2.4.1 Linear Regression
Linear Regression [27] là một trong những thuật toán cơ bản và phô biến nhất của
mô hình Học có giám sát (Supervised Learning), trong đó đầu ra dự đoán một giá trị liên
tục Trong hồi quy tuyến tính đơn biến, tập dữ liệu đầu vào chỉ có một biến độc lập được
sử dụng dé xác định rằng giá trị trung bình tổng thé của biến phụ thuộc thay đổi khi giá
trị của biến độc lập thay đồi Hồi quy tuyến tinh đa biến là sự mở rộng của hồi quy tuyến
tính đơn nhiều biến độc lập Trong mô hình hồi quy tuyến tính, mối quan hệ giữa các
biến độc lập và biến phụ thuộc được biểu diễn bang một phương trình tuyến tính dựa
trên dữ liệu thu thập được.
Mà phương trình được xác định ở dạng tổng quát như sau:
Ÿ = BX; + Bo (1)
Trong đó: Ÿ là giá trị dự đoán của biến phụ thuộc, X; là tập giá trị của biến độc lập
với i € {1} khi mô hình hồi quy tuyến tính đơn biến và i e {1,2,3, , N} khi mô hình
hồi quy tuyến tinh đa biến, Ø; là tập hợp các hệ số hồi quy tương ứng với các giá trị của
biến độc lập Tương tự X;, giá trị thứ i của X; cũng thuộc {1} trong mô hình hồi quy đơn
biến và thuộc {1, 2, 3, , W} khi mô hình hồi quy đa biến Hệ số /; này được sử dụng dé
ước tính sự thay đổi của Y khi tăng một đơn vị X; khi tat cả các biến độc lập khác không
đi Bo là hệ số tự do, còn được gọi là "Độ lệch"
3.2.4.2 Elastic Net
Elastic Net Regression [28] là một dạng hồi quy tuyến tính bội cải tiễn dé giải quyết
các vân đê trong việc chọn đôi tượng từ các chiêu khác nhau băng cách sử dụng các
24
Trang 23về của Ada Boost là giá trị trung bình của các mô hình dự đoán hoặc giá tri có tần suất
xuất hiện nhiều nhất trong các lần huấn luyện [36] Tính năng độc đáo của Ada Boost là
nó dễ bị ảnh hưởng bởi các tập dữ liệu có vẻ nhiễu và ngoại lệ, đồng thời ít nhạy cảm
hon với việc Overfitting.
3.2.4.4 Gradient Boost
Gradient Boosting, một mô hình phi tuyén tính, là một trong những kỹ thuật tăng
cường cho các van đề hồi quy [35] Mục tiêu của thuật toán này là tuần tự huấn luyện lại
lỗi của từng mô hình dự đoán yếu cho đến khi độ chính xác của mô hình được cải thiện
bang cách giảm gradient thuật toán của mô hình Tuy nhiên, GB rất dé bị Overfitting, vì
vậy cần có một breakpoint phù hợp dé tránh hiện tượng này [37] Công thức cho thuật
toán này là [48]:
FG) =) yan 3)
Trong đó h„ là weak learner, 1⁄ là hệ số được sử dung dé ước tính sự thay đổi của
giá trị dự đoán và x; là giá trị đầu vào
3.2.4.5 LSTM
LSTM là một biến thể của Recurrent Neural Network (RNN), ra đời từ thế kỷ 20
[38] giải quyết vấn đề bộ nhớ của Neural Network truyền thống và cải thiện khả năng
ghi nhớ thời gian đài so với RNN bằng cách huấn luyện các tham số trong mô hình [39]
Trong số đó, biến thé của RNN là LSTM cũng góp phan giải quyết nhược điểm về không
gian bộ nhớ thông qua 4 thành phần chính: Forgotten Gate Layer kiểm soát mức độ thiết
lập lại trạng thái của cell và Input Gate Layer dung dé quản lý cập nhật trạng thái của
cell, Updated Cell State Layer là cổng thông báo trạng thái cell và Output Gate Layer
dé kiểm soát lượng trạng thái cell được thêm vào hidden state (Hình 3.6)
Trang 24Dựa vào kiến trúc chung bên trong mô hình LSTM ở trên, ta có các công thức mô tả
quá trình tính toán bên trong mô hình LSTM:
Forget gate layer: ƒ¿ = o(Wy [h;_+,x¿] + by)
Input gate layer: i, = ø(M.[h;_+,x¿] + b;)
Memory cell layer: C = tanh(W,[hy_1,X¢] + b„)
Update Cell State: C, = ƒ,.Œ¿_¡ + í¿ C,
Output gate layer: o, = ø(M⁄,.[h;_+,x¿| + bạ)
New State: h, = o; tanh(C;)
Trong đó x, là giá trị biến đầu vào, h;_; là đầu ra của lớp ân trước đó và đầu vào củalớp hiện tại là hàm truyền sigmoid dé ánh xạ các biến thông qua hai giá trị 0 và 1 và
trọng số W, và độ lệch b, C,_, là đơn vị bộ nhớ của thời điểm trước đó và C, là đơn vi
bộ nhớ tại thời điểm hiện tại Ngoài ra, còn có các ký hiệu của các lớp với h đại diện cholớp an, f đại diện cho cổng quên, và i và o tương ứng là các cổng đầu vào và dau ra [5],
[40].
27
Trang 253.2.4.6 GRU
Một biến thé khác của LSTM, có cấu trúc tương tự RNN và ra đời trong thé kỷ 20,
đó là GRU Sự khác biệt giữa GRU và LSTM là GRU sử dụng ít công hơn và có ít tham
số hơn nên sẽ tối ưu về thời gian huấn luyện, nhưng LSTM không yếu hơn GRU [41].LSTM rõ ràng hơn, hiệu suất tốt hơn khi huấn luyện các tập dữ liệu lớn [42]
GRU có hai cổng chính, được coi là đơn giản hơn LSTM: Reset Gate và Update Gate
Cả hai công được sử dụng dé xây dựng Hidden Gate State và quyết định dữ liệu nào sẽ
chuyên đến Output Tuy nhiên, Reset Gate kiểm soát số trạng thái trước đó được lưu trữ
và Update Gate dé thay đổi tốc độ khi trạng thái ân cập nhật [40], [43].(Hình 3.7)
Reset gate Update gate
Hình 3.7 Cấu trúc cơ bản của mô hình GRU
Các công trong GRU có công thức sau [44]:
Reset gate vector: Rp = o(X,W, + H,_1U; + bạ)
Update gate vector: Ry = o(X,W, + H;_1Ù; + bz)
Candidate activation vector: H, = tanh(X,M% + (R- Hy) Un + bp)
Output vector: H, = Z,H,-, + (1 — Z,)H;
Trang 26Trong đó Z,, R¿, và H¿ lân lượt là các công reset, update, va hidden Hon nữa, có X;
là vectơ biên dau vào, W7, W⁄., W và W,, U,, U, va Ủy, va by va by là ma trận tham sô
và vectơ [45].
29
Trang 27Linear Regression (LR) |
Elastic Net (EN)
Ada Boost (AB)
ƒ Long Short Term Memory (LSTM)
Gated Recurrent Units (GRU)
i )
GARCH
NNETAR
TBATS
Hình 4.1.b Minh họa các thuật toán được sw dụng trong khoá luận nay
Hình 4.1 Minh họa tổng quan về quá trình xử lý tổng thể và các thuật toán được sử
dụng trong thực nghiệm này
4.2 Các giai đoạn chính
4.2.1 Pharse 1 - Hoc mô hình dự báo
e Website của Yahoo!Finance’ là nơi lấy nguồn dữ liệu dé tiến hành thu thập bộ dữ
liệu về lịch sử giá Quy trình thực nghiệm thu thập dữ liệu về giá (Hình 4.2) như
5 https://finance.yahoo.com/
Trang 28sau: Trang web download dữ liệu Bitcoin > Historical Data > Chọn thời gian
cần lay dữ liệu > Apply > Download (CSV) Tương tự với các indexes: TWTR
và TSLA.
Bitcoin USD (BTC-USD) |
26,908.40 -227.14 (-0.84%)
As of 01:34PM UTC, Market oper
Summary Chart Conversations Historical Data Profile
1a Google
Gửi ý kiến phản hồi
Time Period: Jun 01, 2022 - Jun 01, 2023 v Show: Historical Prices v Frequency: Daily v
+ Download
Jun 01, 2023 27,236.58 27,326.53 26,677.50 26,908.40 26,908.40 14,744,135,680 May 31, 2023 27,700.53 27,831.68 26,866.45 27.219.66 27219166 15,656.371,534
Đang chờ aoxmoatade cam
Quảng cáo của Google
Gửi ý kiến phản hồi
yahoo/finance
Hình 4.2 Trang web dùng dé download dữ liệu Bitcoin
Chia train/test: Ở tất cả các mô hình sẽ chia đữ liệu train:test theo ti lệ 80:20 và 70:30
Minh hoạ ở Hình 4.3 dưới đây là trực quan bộ dữ liệu được sử dụng trong khoá luận
Trang 29Tiền điều kiện: Vào đúng URL Client của hệ thống ở chế độ http
Hậu điều kiện: Nếu xem thành công thì đô thị kết quả sẽ xuất hiện trên hệ thông
Tác nhân chính: Admin, User, Linux | Mức độ quan trọng: Cao
Server
Mô tả Usecase: Usecase cho phép người dùng xem đồ thị kết quả dự báo ngày tiếp
theo và 49 ngày trước.
Luéng su kién chinh:
1 Tro đúng URL đến màn hình xem dự báo
2 Load đồ thị khuyến nghị từ API server
3 Hién thị ra màn hình kết qua
4 Kết thúc
Bảng 4.3 Usecase lấy dữ liệu mới
Tên Usecase: Lay dữ liệu mới Mã Usecase: UC03
Tiên điều kiện: Vào đúng URL Server của hệ thông Đôi với Server Linux thì server
tự route đúng vào API.
Hậu điều kiện: Dữ liệu được cập nhật vào CSDL MySQL (Vào CSDL xem kết quả)
Tác nhân chính: Admin, Linux Server | Mức độ quan trọng: Cao
Mô tả Usecase: Lay dir liệu mỗi ngày từ trang web Yahoo!Finance, sau đó lưu vào
cơ sở đữ liệu
Luông sự kiện chính:
1 Trỏ vào đường dẫn URL Server
2 Thêm một ngày mới vào Bảng (Chức năng chỉ áp dụng với Linux Server)
3 Lây dữ liệu Yahoo!Finance Lưu dữ liệu vào cơ sở dữ liệu
4 Kết thúc