Thông qua việc crawling đữ liệu, xử lí dữ liệu dé phân tích qua các mô hình phân cụm, dự đoán giá tương lai thông qua mô hình học máy, từ đó giúp ta biết được các bước đề phân tích dữ li
Trang 1TÔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN
ĐỎ ÁN CUOI Ki MON KHAI THAC DU LIEU VA KHAI PHA TRI THUC
Người hướng dân: Thầy LÊ CUNG TƯỞNG
Người thực hiện: LÊ VÕ QUYẾT THẮNG - 52000264 NGUYÊN PHƯỚC NGUYÊN - 52000241 VÕ HỮU TRÍ — 52000288 Lớp : 20050301 Khoá : 24
THANH PHO HO CHi MINH, NAM 2022
Trang 2TONG LIEN DOAN LAO ĐỘNG VIỆT NAM TRUONG DAI HQC TON BUC THANG
KHOA CONG NGHE THONG TIN
BAI TAP LON/DO AN CUOI Ki MON KHAI THAC DU LIEU VA KHAI PHA TRI THUC
Báo cáo cuôi kì
Người hướng dẫn: THẢY LÊ CUNG TƯỞNG Người thực hiện: LỄ VÕ QUYẾT THẮNG NGUYEN PHUOC NGUYEN VÕ HỮU TRÍ Lớp : 20050301 Khoá : 24
THANH PHO HO CHi MINH, NAM 2022
Trang 3LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn đến thầy Lê Cung Tưởng trong quá trình giảng dạy
đã giúp tụi em tiếp thu kiến thức đề có thê hoàn thành bài báo cáo này Dù ở phút cuối
thầy đã chuyển công tác, nhưng thầy vẫn hỗ trợ tụi em nhiệt tình Chúng em cũng xin cảm ơn thầy Phước đã tiếp tục với chúng em ở chặng cuối của môn học, giúp chúng em hoàn thành môn học mà không gặp phải trở ngại gì.
Trang 4il
ĐỎ ÁN ĐƯỢC HOÀN THÀNH ©
TẠI TRƯỜNG DAI HOC TON ĐỨC THẮNG
Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi / chúng tôi và được sự hướng dẫn của Thầy Lê Cung Tưởng: Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bồ dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phan tai liệu tham khảo
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của
các tác giả khác, cơ quan tô chức khác đều có trích dẫn và chú thích nguồn góc
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm
về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)
TP Hô Chí Minh, ngày tháng năm Tác giả
(ký tên và ghỉ rõ họ tên) Thắng
Lê Võ Quyết Thắng
Nguyên Nguyễn Phước Nguyên
Trí Võ Hữu Trí
Trang 5PHẢN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Phần xác nhận của GV hướng dẫn
Tp Hồ Chí Minh ngày tháng năm
(kí và phi họ tên)
Phần đánh giá của GV chấm bài
Tp Hồ Chí Minh ngày tháng năm
(kí và phi họ tên)
Trang 6TÓM TAT
Tổng quan báo cáo là về việc phân tích dữ liệu chứng khoán ở Việt Nam Thông
qua việc crawling đữ liệu, xử lí dữ liệu dé phân tích qua các mô hình phân cụm, dự đoán
giá tương lai thông qua mô hình học máy, từ đó giúp ta biết được các bước đề phân tích dữ liệu chứng khoán, hiểu được các xu hướng cơ bán của các loại chứng khoán và phân loại nó, từ đó có thê áp dụng đề phân tích thị trường chứng khoán nói chung và thị trường chứng khoán Việt Nam nói riêng.
Trang 7MỤC LỤC
I09)09-\ 09) - {ä+AAHằậHẬH)L ÔỎ i PHAN XAC NHAN VA DANH GIÁ CỦA GIẢNG VIÊN . -se-s2 iv
¡90 vv 0 a42:Œ, )H, , ,ÔỎ V
\/i0ienp v—- 1
CHƯƠNG I - THU THẬP DỮ LIỆU - 2 2-22 ©222222E222E£2E22EA22EE22E222222x.22zece, 2
IMinir ii en 2
CHƯƠNG 2 - TIÊN XỬ LÝ DỮ LIỆU -2-22 222222222 2E22EE2EEE2EE2212221222222ece 5
2.1 Phương thức TimeSerlesScalerMean Var1a'nce -+ ++c+sessrssrssrszee 5
2.2 Thực hiện việc chuẩn hóa đữ liệu 2-22 2252222 2222EE22Ez2zxzzxzczk2 5 CHƯƠNG 3 - PHÂN CỤM (CLUSTERING) 22-552©22222222222E22Ec22E222222xcz, 7
chôn 5 +42,HBH.),,., )H,)H.H,H 7
3.2 May dung m6 inh 8
CHUGONG 190906919.)00077 7 .HẬHẬẠ,AH ,., 11
4.1 Lý thuyết và xử lí đữ liệu - 2-52 ©2++2E2SEE+2E222222E2212221221222322222-Xe2 11
4.2 Xây dựng mô hình va dur doa ee eeeceeeeceeceeeeeeeeeeeeeeeeeeseeeeeeceeenseneeaeens 11
Trang 8CHƯƠNG 1 - THU THẬP DỮ LIỆU
Đề thu thập được dữ liệu từng mã của từng ngày khác nhau, em xây dựng | ham
su dung selenium dé thu thập dir liéu | cach ty dong
XPATH,
iver.execute script
Trang 9Tham số của hàm sẽ là I driver dùng để duyệt web và L list chứa các mã chứng khoán
Bước đầu, tạo ra ñle csv có dạng tên mã chứng khoán.csv để lưu kết quá, selenium sẽ tự động điền vào ô tìm kiếm ở trang web mã chứng khoán lấy từ list đã lưu trước đó, điền vào ngày bắt đầu và ngày kết thúc, sau đó ấn vào nút tìm kiếm dé trang web hiện thị thong tin giá chứng khoán hằng ngày của mã chứng khoán tương ứng
0%) 934,066,100 12,296,091,455,480 57,775,600 1,426,530,345,400 676.00 945.42 873.76
Vì mỗi lần hiển thị chỉ có 1 sé ngày nhất định nên thông tin sẽ được chia ra nhiều
trang, nên mỗi lần thu thập dữ liệu của 1 trang xong thi selenium sé tim ra nut di dén trang kế tiếp, và thu thập đến khi đến trang cuối cùng sẽ chuyển sang mã khác
Sau khi thử crawl dữ liệu lần lượt 100 mã chứng khoán, thời gian đề thu thập quá dài nên chúng em đã tìm đến phương pháp để rút ngắn thời gian Chúng em sử dụng multi threading, vi cac thao tác 6 day la cac thao tac I/O, không liên quan việc tính toan voi nhau nén sé str dung thread thay vi process, chia chương trình thành 5 thread, mỗi thread sẽ thực hiện thu thập dữ liệu của 20 mã chứng khoán, giúp giảm thời gian thu thập dữ liệu gần gấp 5 lần so với trên I luỗng
= [webdriver.Chrome:
Sau khi thực hiện các nhiệm vụ trên, (a thu thập được 100 mã chứng khoán được đặt trong folder data.
Trang 10Trong quá trình thực hiện các bài tập tiếp theo, vì các mã chứng khoán ở đầu có nhiều mã mới, có ít dữ liệu nên tụi em đã thực hiện thu thập thêm 50 mã tiếp theo, phục vụ cho các bài tập sau.
Trang 11CHƯƠNG 2 ~ TIEN XU LY DU LIEU 2.1 Phuong thirc TimeSeriesScalerMeanVariance
Phuong thirc TimeSeriesScalerMean Variance trong thy vién tslearn la 1 bé chuẩn hóa được thiết kế riêng cho việc chuẩn hóa dữ liệu đạng time series Bộ chuẩn hóa này
có 2 tham số là mu và std, trong đó giá trị trong mỗi chiều sẽ được chuẩn hóa bằng cách
lay mộc giá trị trung bình của tập giá trị là 0 và độ lệch chuẩn là 1
Dữ liệu dang time series là đữ liệu gồm I chuỗi các đữ liệu từ cùng I nguồn trong
1 khoản thời gian liên tiếp tang dan
2.2 Thực hiện việc chuẩn hóa dữ liệu
Điều kiện để có thể sử dụng bộ chuẩn hóa trên là các chuỗi dữ liệu của từng mã
chứng khoán đưa vào phải có độ dài tương tự nhau
Ta chọn ra các mã có số đòng đữ liệu là 725 dòng hoặc lớn hơn, lay từ trên xuống
dưới đến khi lấy đủ 100 mã sẽ dừng lại Với mỗi mã, lấy lần lượt từng ñle csv tương ứng
đọc lên thành datafữame, lấy ra cột giá chứng khoán, đưa nó về dạng numpy array, sau đó thêm vào list data Cuối cùng chuyến list data về dạng numpy array và reshape Với mỗi phần tử là 1 mã chứng khoán, mỗi mã là dữ liệu của 725 ngày liên tiếp
Sau đó áp dụng bộ chuẩn hóa lên data đã qua xử lí.
Trang 13CHUONG 3 — PHAN CUM (CLUSTERING)
3.1 Ly thuyét
Các bước của thuật toan k-means:
1 Chon ra 1 sé cụm khởi tạo cho việc phân cụm và lay tọa độ điểm là tâm của cụm đó
2 Sắp xếp các điểm vào các cụm dựa trên khoảng cách từ các điểm tới các tâm của các cụm ( nó thuộc vào cụm mà khoảng cách đến tâm là ngắn
nhất)
3 Nếu việc sắp xếp không làm thay đối vị trí các điểm thì dừng lại
4 Lay gia trị trung bình ( tọa độ tâm mới của cụm) dựa trên các điểm thuộc cụm đó
5 Quay lại bước 2
Thuật toán k-means thông thường sử dụng khoảng cách Euclid cho việc tính toán khoảng cách, tuy nhiên đối với dữ liệu time series, hiệu năng của việc sử dụng khoảng cach Euclid khéng cao Vi khoang cach Euclid tính giữa 2 chuỗi dữ liệu không thé hiện được tính chuỗi của dữ liệu, nên có những thước đo khác giúp cho việc phân cụm trên
thuật toán k-means mang lại hiệu quả cao hơn
1 trong những thước đo được sử dụng cho hiệu quả cao trong phân cụm dữ liệu time series la Dynamic Time Warping (DTW: tam dich là độ sai lệch thời gian động)
Với mỗi thời điểm, độ sai lệch tại thời điểm đó sẽ liên quan tới độ sai lệch của thời điểm
trước đó thông qua công thức:
DA, ¡,B,_ 4)
DỊA,,B,) = sayin DA,,B,_¡) |
DỊA, ¡,B,)
Với thước đo DTW, ta sẽ tối ưu bằng cách sử dụng phương pháp DBA ( DTW
barycenter averanging) DBA là phương pháp trung bình với mục đích tối thiêu giá trị
Trang 14chuỗi DTW dựa trên phương pháp barycenter đề lấy trung bình của chuỗi đó DBA gồm 2 bước chính:
1 Tính toán DTW của từng cặp chuỗi trong bộ dữ liệu 2 Cập nhật giá trị của chuỗi dựa trên thuật toán barycenter
Thuật toán baryeenter: barycenter của 1 chuỗi là trung bình của chuỗi đó sao cho giá trị của tông khoảng cách của chuỗi là nhỏ nhất
Phương pháp elbow:
Lần lượt thực hiện tính toán với số cụm khởi tạo từ 1 tới 10
Với mỗi số cụm khởi tạo, tính toán tổng khoảng cách ở các cụm Vẽ đường thể hiện tông khoảng cách ở mỗi số cụm khởi tạo tăng dan
Số cụm tốt nhất mà ta chọn là vị trí trên đô thị có dạng phần khuỷu tay nhất Tại đó khi mà tăng số cụm lên, tông khoảng cách giám không còn đáng kể nữa, là số cụm để
phân cụm tốt nhất, tránh trường hợp overfitting
3.2 Xây dựng mô hình
Việc xây dựng các mô hình sẽ thực hiện trên thư vién tslearn voi ca 3 phương pháp phân cụm k-means, két hợp phương pháp elbow đề chọn ra số phân cụm tốt nhất ở mỗi phương pháp
Phương pháp K-means tiêu chuẩn ( str dung khoang cach Euclid):
Chọn số cụm tốt nhất là 4 để thực hiện phân cụm Kết quả:
Trang 16Trên cả 3 phương pháp, kết quá elbow cho thấy việc phân cụm bộ đữ liệu thu
được thực hiện tốt nhất trên số cụm là 3 và 4 Khi nhìn vào đồ thị, ở phương pháp tiêu chuẩn, các chuỗi dữ liệu có xu hướng phân bố đều Còn ở phương pháp DBA va soft-
DTW, dit liệu có xu hướng tập trung ở I cụm, thưa thớt ở các cụm còn lại Điều thay cho
thấy rõ hơn việc sử dụng phương pháp phân cụm k-means tiêu chuẩn không có khả năng phân biệt sự nói tiếp của chuỗi đữ liệu, còn ở 2 phương pháp còn lại, có sự ảnh hưởng của yêu tô chuối nên dữ liệu phân bô không đông đêu ở các cụm.
Trang 17II
CHUONG 4- DU DOAN 4.1 Lý thuyết và xử lí di liệu
Để thực hiện dự đoán giá chứng khoán, chúng em sử dụng mô hình học máy
chuyên dùng cho dữ liệu time series, từ thự viện tensorflow keras
Ở đây chúng em sử dụng mô hình RNN RNN là 1 mô hình cải tiến của mô hình
mạng nơ ron thông thường đề xử lí dữ liệu chuỗi tốt hơn Ở mô hình RNN, các node sẽ liên quan đến nhau theo quan hệ đầu ra của ngày trước đó sẽ liên quan tới ngày kế tiếp, và sẽ kéo đài đến ngày cuối cùng Từ đó thông tin của ngày phía trước sẽ liên quan tới đầu ra thông tin của ngày tiếp theo, kết quả dự đoán cũng sẽ được cải thiện thông việc
tiếp thu chuỗi thông tin trước đó để đưa ra dự đoán cho hiện tại
Đề thực hiện mô hình, ta lay dữ liệu chứng khoán của mã AAA, chi lấy tới các
ngày của tháng 4 năm 2022 Đọc dữ liệu từ dataframe, chỉ lấy cột giá chứng khoán,
chuẩn hóa đữ liệu bằng thang chuẩn hóa minmax, lấy dữ liệu trước năm 2022 làm tập train, và đữ liệu 4 tháng đầu năm 2022 làm tập test Kết hợp dữ liệu 14 ngày trước để dự
đoán ngày tiếp theo
X train shape : (487, 14, 1) Y train shape : (487, 1) X test shape : (64, 14, 1) Y test shape : (64, 1)
4.2 Xây dựng mô hình và dự đoán
Xây dựng mô hình RNN gồm có 3 lớp RNN và 1 lớp output với đầu ra là 1 đơn
V1
Trang 1812
Sau khi train mô hình, ta vẽ đồ thị thê hiện loss của tập validation va tập test trong
quá trinh training
Trang 1913
TÀI LIỆU THAM KHẢO
Slides cha m6n hoc Khai pha dữ liệu và khai thác tri thức trường đại học Tôn
Đức Thắng
https://viblo.asia/p/recurrent-neural-networkphan-1-tong-quan-va-ung-dung-
jvElaB4m5kw
https://lig-membres.imag.ft/bisson/cours/M2INFO-AIW- ML/papers/PetitJean11.pdf
https://machinelearningcoban.com/2017/01/01/kmeans/
5 https://tslearn.readthedocs.io/en/stable/