Phạm vi nghiên cứu và ý nghĩa thực tiễn của đề tài ● Phạm vi nghiên cứu: Phạm vi không gian: Thị trường đầu tư đồng tiền ảo Ethereum trên thế giới Phạm vi thời gian: Bộ dữ liệu thu thập
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC
ĐỒ ÁN II
Chuyên ngành: HỆ THỐNG THÔNG TIN QUẢN LÝ
Đề tài: Xây dựng luồng sự kiện phân tích dữ liệu XML trong Cơ sở Dữ liệu Oracle T24 sử dụng Spark Streaming và tích hợp với Kafka
Giảng viên hướng dẫn : TS Đoàn Duy Trung
Sinh viên thực hiện : Phạm Quang Huy 20206286
Lớp : Hệ thống thông tin 02- K65
Hà Nội – tháng 07 năm 2022
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
1 Mục đích và nội dung của đồ án:
2 Kết quả đạt được:
3 Ý thức làm việc của sinh viên:
Hà Nội, ngày tháng nămGiảng viên hướng dẫn
Trang 3M c l c ụ ụ
Phần 1 Dự báo giá ETH tương lai bằng mô hình Machine Learning Supervised Learning 5
I Mở đầu 5
1 Giới thiệu về đề tài 5
1.1 Tổng quan sự phát triển của Big Data 5
1.2 Yêu cầu, phạm vi nghiên cứu và ý nghĩa thực tiễn của đề tài 5
2 Lời cảm ơn 6
II Nội dung 7
7
1 Mô hình kiến trúc tổng quan 8
1.1 Mô hình luồng dữ liệu 8
1.2 Danh sách công nghệ sử dụng 8
1.3 Thông tin cấu hình môi trường sử dụng cho đề tài 9
10
2 Chuẩn bị môi trường thực hiện 11
2.1 Khởi động Oracle Database 12
Trang 4Phần II Sử dụng mô hình Garch để dự đoán sự biến động ở 1 thời điểm và đưa ra quyết định đầu
tư 19
1 Biến động là gì 19
2 Tổng quan về phương trình Arch và Garch 20
3 Ước lượng tham số cực đại trong phương trình Garch 21
4 Xây dựng mô hình Garch để dự đoán sự biến động của Ethereum 22
Phần III Kết luận 24
Phần IV Tài liệu tham khảo26
Trang 5I Mở đầu
1 Giới thiệu về đề tài
1.1 Tổng quan về sự phát triển của Big Data
Trong thời đại hiện nay, thị trường tiền điện tử đang ngày càng thu hút sự quan tâm của nhà đầu
tư và người dùng trên toàn thế giới Tiền điện tử, còn được gọi là tiền ảo hay tiền mã hóa, là một dạng tiền tệ kỹ thuật số được mã hóa và sử dụng công nghệ blockchain để đảm bảo tính bảo mật
và giao dịch phi tập trung.Thị trường tiền điện tử hoạt động thông qua mạng lưới công nghệ blockchain, trong đó các giao dịch được thực hiện và xác nhận bởi các thợ đào Người dùng có thể giao dịch, mua bán và lưu trữ tiền điện tử thông qua các sàn giao dịch tiền điện tử Giá cả và thanh khoản của các loại tiền điện tử bị ảnh hưởng bởi nhiều yếu tố, bao gồm cung và cầu, tâm lý thị trường, tin tức và sự kiện trong ngành công nghiệp
Với việc tiềm năng của nó để thay thế hoàn toàn hệ thống tài chính truyền thống, các loại tiền điện tử như Ethereum (ETH) được xem là những đối tượng đầu tư hấp dẫn Trong bối cảnh đó, nghiên cứu về dự báo giá của ETH bằng các mô hình máy học và mô hình thống kê như GARCH
là rất cần thiết Trong phần này, em sẽ trình bày một số khái niệm cơ bản về thị trường Crypto và các đặc điểm của Ethereum để hiểu rõ hơn về nội dung của đồ án
1.2 Phạm vi nghiên cứu và ý nghĩa thực tiễn của đề tài
● Phạm vi nghiên cứu:
Phạm vi không gian: Thị trường đầu tư đồng tiền ảo Ethereum trên thế giới
Phạm vi thời gian: Bộ dữ liệu thu thập được từ tháng 09/2015 đến tháng 03/2023
● Ý nghĩa thực tiễn của đề tài:
Hiện nay, thị trường tiền ảo đang ngày càng thu hút sự quan tâm của nhiều người tham gia Đề tài
có thể đóng góp vào việc tăng cường kiến thức và hiểu biết về thị trường này, giúp người dùng cócái nhìn sâu sắc hơn và đưa ra quyết định đầu tư thông minh hơn.Việc áp dụng các kỹ thuật học máy để dự đoán giá trị tiền ảo và phân tích độ rủi ro có tiềm năng cải thiện khả năng đưa ra quyết định đầu tư và giao dịch trong thị trường tiền ảo có sự biến động khá lớn
Trang 62 Lời cảm ơn
Để hoàn thành đề tài nghiên cứu khoa học này, trước hết em xin chân thành cảm ơn Quý thầy/cô Khoa Hệ thống thông tin quản lý Trường Đại học Bách Khoa Hà Nội đã tận tình giảng dạy và truyền đạt những kiến thức vô cùng quý báu cho chúng em trong suốt quá trình học tập tại trường
Đặc biệt, Em xin gửi lời cảm ơn đến Thầy Đoàn Duy Trung đã tận tâm giúp đỡ, hỗ trợ và hướng
dẫn em suốt quá trình nghiên cứu
Nghiên cứu có thể không tránh khỏi hạn chế và thiếu sót, em rất mong nhận được ý kiến đóng góp quý báu từ quý thầy/cô để đề tài phát triển hơn nữa trong tương lai
Em xin chân thành cảm ơn !
Trang 7II Nội dung
1 Giới thiện về bộ dữ liệu
● Giới thiệu về bộ dữ liệu:
Trong đồ án này, ta sử dụng bộ dữ liệu về thị trường tiền điện tử được lấy từ trang
CoinMarketCap Bộ dữ liệu này cung cấp thông tin về các đặc tính quan trọng của 200 đồng tiền điện tử hàng đầu, bao gồm cả Ethereum (ETH) Tập dữ liệu bao gồm các thông tin về giá, khối lượng giao dịch, vốn hóa thị trường và các chỉ số khác của các đồng tiền điện tử trong khoảng thời gian từ năm 2015 đến ngày 2023
Thông tin về bộ dữ liệu
⮚ Số lượng hàng (dòng): 676.303
⮚ Số lượng cột: 11
● Mục tiêu của việc sử dụng bộ dữ liệu
Bộ dữ liệu được sử dụng nhằm huấn luyện các mô hình học máy và xây dựng mô hình dự báo giá Ethereum (ETH) trong tương lai Qua việc phân tích dữ liệu thị trường tiền điện tử, chúng ta
sẽ có cái nhìn sâu sắc hơn về sự biến động và tính không ổn định của giá Ethereum, từ đó giúp đưa ra các quyết định đầu tư thông minh hơn
Mô tả các cột dữ liệu
Date: Ngày thống kê dữ liệu
Symbol: Ký hiệu của đồng tiền điện tử (ví dụ: BTC - Bitcoin, ETH - Ethereum)
Open: Giá mở cửa (USD) của đồng tiền điện tử trong ngày
High: Giá cao nhất (USD) của đồng tiền điện tử trong ngày
Low: Giá thấp nhất (USD) của đồng tiền điện tử trong ngày
Close: Giá đóng cửa (USD) của đồng tiền điện tử trong ngày
Volume: Khối lượng giao dịch của đồng tiền điện tử trong ngày
Market Cap: Vốn hóa thị trường (USD) của đồng tiền điện tử trong ngày
Percent Change 24h: Tỷ lệ thay đổi giá của đồng tiền điện tử trong 24 giờ qua
Percent Change 7d: Tỷ lệ thay đổi giá của đồng tiền điện tử trong 7 ngày qua
Percent Change 30d: Tỷ lệ thay đổi giá của đồng tiền điện tử trong 30 ngày qua
Sau đó em sẽ lọc ra giá trị của riêng đồng ETH để phục vụ mục đích nghiên cứu
Trang 82 Khám phá dữ liệu
2.1 Thống kê mô tả
Để có cái nhìn tổng quan về bộ dữ liệu, chúng ta sử dụng hàm describe() để thu thập thông tin thống kê cơ bản về các thuộc tính của tập dữ liệu
2.2 Biểu đồ Ethereum theo thời gian
Biểu đồ ETH trong năm 2015-2023 thể hiện giá trị của Ethereum (ETH) theo đồ thị thời gian Đồthị này thể hiện giá của ETH trong mỗi ngày
Kể từ năm 2015, giá trị của Ethereum (ETH) đã trải qua nhiều giai đoạn biến động đáng kể Trong giai đoạn từ năm 2015 đến đầu năm 2017, giá trị của ETH tăng chậm nhưng ổn định ở mứcthấp và trung bình khoảng 10-20 USD Tuy nhiên, vào giữa năm 2017, giá trị của ETH bất ngờ tăng mạnh lên tới hơn 300 USD, trước khi rơi vào một giai đoạn giảm giá và dao động trong khoảng 100-200 USD trong hầu hết năm 2018
Từ năm 2019, giá trị của ETH tiếp tục tăng chậm nhưng đều, với sự tăng trưởng ổn định trong nhiều tháng liên tiếp Giá trị của ETH đạt đỉnh vào giai đoạn từ cuối năm 2021 đến đầu năm
2022, khi đạt tới mức gần 5000 USD Sau đó, giá trị của ETH giảm đáng kể trong một thời gian ngắn, trước khi hồi phục trở lại ở mức khoảng 2000 USD vào thời điểm hiện tại
Biểu đồ giá trị Ethereum theo thời gian sẽ minh họa rõ hơn sự biến đổi và tính không ổn định củagiá trị này qua các giai đoạn thị trường
Trang 92.3 Ma trận hệ số tương quan giữa các biến
● Hệ số tương quan
Hệ số tương quan là một độ đo thống kê dùng để đo lường mức độ tương quan giữa hai biến Nó cho biết sự thay đổi của một biến khi biến còn lại thay đổi Hê số tương quan có giá trị nằm trong khoảng [-1;1] Dưới đây là công thức tính hệ số tương quan:
r =
Hệ số tương quan bằng 0 (hay gần 0) có nghĩa là hai biến số không có liên hệ gì với nhau; ngược lại nếu hệ số bằng -1 hay 1 có nghĩa là hai biến số có một mối liên hệ tuyệt đối Nếu giá trị của hệ số tương quan là âm (r <0) có nghĩa là khi x tăng cao thì y giảm (và ngược lại, khi x giảm thì y tăng); nếu giá trị hệ số tương quan là dương (r > 0) có nghĩa là khi x tăng cao thì y cũng tăng, và khi x tăng cao thì y cũng tăng theo
Phân tích ma trận tương quan
Dưới đây ta sẽ triển khai ma trận các số tương quan để có cái nhìn tổng quan về mối quan hệ giữacác biến trong bộ dữ liệu
Trang 10Dựa trên ma trận hệ số tương quan, chúng ta có thể nhìn thấy mối quan hệ giữa các biến trong
bộ dữ liệu:
Mối quan hệ mạnh giữa giá trị của Ethereum (ETH) và Market Cap (vốn hóa thị trường): Hệ sốtương quan giữa chúng bằng 1, điều này chứng tỏ rằng biến Market Cap là một biến độc lập quan trọng trong quá trình dự đoán giá trị ETH Điều này có ý nghĩa là giá trị của ETH và vốn hóa thị trường có mối quan hệ tuyệt đối và di chuyển theo cùng một hướng
Mối quan hệ mạnh giữa giá trị của Ethereum (ETH) và tổng cung ETH: Chúng ta cũng quan sát thấy hệ số tương quan lớn giữa giá trị ETH và tổng cung ETH Điều này có thể cho thấy giá trị của ETH có liên quan chặt chẽ đến số lượng Ethereum tồn tại trên thị trường
Các biến còn lại không có hệ số tương quan lớn so với biến phụ thuộc Price (giá trị của Ethereum): Điều này có thể cho thấy rằng các biến này không ảnh hưởng quá nhiều đến giá trị của ETH và có thể coi là không quá quan trọng trong quá trình dự đoán giá trị của Ethereum.2.4 Mối liên hệ giữa khối lượng giao dịch và sự thay đổi giá Ethereum theo các khung thời gian 1h, 24h, 7d
Cột “%1h “ thể hiện sự thay đổi của giá ETH trong khoảng thời gian 1 giờ Nó biểu thị tỷ lệ phầntrăm tăng hoặc giảm của giá ETH so với giá trị trước đó lúc 1 giờ
Tương tự , cột “%24h” và cột “%7d” sẽ cho ta thấy sự thay đổi của giá ETH trong khoảng thời gian dài hơn là 24h và 7d
Trang 11Biểu đồ đồ đầu tiên hiển thị mối quan hệ giữa khối lượng giao dịch và sự thay đổi giá của ETH trong 1 khoảng thời gian là 24 giờ, biểu đồ này giúp chúng ta có thể đánh giá được mối liên hệ này trong 1 khoảng thời gian ngắn.
Biểu đồ thứ hai sẽ cho chúng ta cái nhìn về mối liên hệ giữa 2 đại lượng này ở 1 khung thời gian ngắn hơn là 1h, nhìn vào biểu đồ ta có thể thấy 2 đại lượng này có mối tương quan khá rõ ràng, các điểm trên biểu đồ có xu hướng tập trung 1 chỗ
Biểu đồ thứ 3 sẽ chúng ta cái nhìn trên khung thời gian dài hạn là 7 ngày, nhìn vào biểu đồ ta có thể thấy giá có xu hướng biến động vào những ngày đầu tuần
3 Tiền xử lý dữ liệu
Quá trình tiền xử lý dữ liệu là quá trình xử lý dữ liệu trước khi đưa vào mô hình máy học, quá trình này bao gồm quá trình xử lý giá trị bị thiếu, lựa chọn đặc trưng quan trọng, chuẩn hóa dữ liệu nhằm tạo ra dữ liệu phù hợp cho mô hình
Trang 13Sau quá trình xử lý giá trị bị thiếu, ta sẽ thu được bộ dữ liệu mới mà không còn giá trị null Bộ dữliệu đã qua xử lý có thể sẽ được sử dụng cho các bước tiếp theo của bài toán.
3.2 Lựa chọn đặc trưng
Như chúng ta đã biết thì bộ dữ liệu của chúng ta có định dạng các cột như sau:
Ta sẽ xóa bỏ những cột không ảnh hưởng đến việc dự báo giá của chúng ta như cột “Name”,
“Symbol”
Và ta sẽ sắp xếp lại bộ dữ liệu theo thứ tự ngày tăng dần
Kiểu dữ liệu của các cột trong bộ dữ liệu ( các cột đều ở dạng Object, cột Date_Input của chúng
ta thì không ở dạng dữ liệu chuỗi thời gian )
Trang 14Khi xây dựng mô hình dự báo thì ta phải đưa kiểu dữ liệu của các cột về dạng số và cột Date_Input đưa về dạng date_time
Sau khi quá trình loại bỏ đặc trưng và chuyển kiểu dữ liệu của các cột sang định dạng phù hợp, ta
sẽ có 1 bộ dữ liệu phù hợp với yêu cầu phân tích và xây dựng những mô hình sau ở các bước sau
3.3 Chuẩn hóa dữ liệu
Khi làm việc với dữ liệu, chúng ta thường gặp các biến với các đơn vị đo lường khác nhau, phạm
vi giá trị khác nhau hoặc phân phối không đồng đều Điều này có thể ảnh hưởng đến hiệu suất củacác mô hình Kĩ thuật chuẩn hóa em dùng cho bộ dữ liệu này là chuẩn hóa Z-score: Kỹ thuật này
Trang 15chuyển đổi các giá trị của biến về một phạm vi nhất định, thường là từ 0 đến 1 Quá trình này được thực hiện bằng cách lấy giá trị hiện tại trừ đi giá trị nhỏ nhất của biến, sau đó chia cho phạm
vi giá trị của biến (giá trị lớn nhất trừ đi giá trị nhỏ nhất) Kĩ thuật này sẽ được triển khai bằng thưviện StandardScaler trong Sklearn
Chuẩn hóa dữ liệu sẽ giúp dữ liệu trong các cột của ta sẽ đưa được về cùng 1 đơn vị đo
4 Xây dựng mô hình
4.1 Chia tập dữ liệu
Chia tập dữ liệu ban đầu thành các tập con riêng biệt, bao gồm tập huấn luyện (training set), tập kiểm tra (test set) và có thể còn tập validation set (tùy thuộc vào quy trình huấn luyện cụ thể) Điều này sẽ làm mô hình của chúng ta tránh được hiện tượng overfitting và từ đó sẽ đánh giá tổngquan được hiệu suất của mô hình
Chia tập dữ liệu là một quá trình quan trọng để đánh giá và kiểm tra hiệu suất mô hình, mô hình
sẽ đánh giá trên độ chính xác dựa trên dữ liệu mới mà nó chưa thấy trong quá trình huấn luyện
Trang 164.2 Xây dựng mô hình
4.2.1 Thư viện LazyRegressor
Thư viện LazyRegressor sẽ đưa ra 42 mô hình hồi quy tốt nhất để dự đoán giá trị của ETH trong
bộ test, dựa vào chỉ số R-square và RMSE ta có thể thấy được rằng mô hình
OrthogonalMatchingPursuit đem lại kết quả với các thước đo có độ chính xác khá cao, tuy nhiên những mô hình này đều có những giá trị tham số ở dạng mặc định
Để làm rõ hơn thì ta sẽ triển khai mô hình OrthogonalMatchingPursuit cụ thể và tối ưu siêu tham
số của mô hình này
4.2.2 Mô hình OrthogonalMatchingPursuitCV
● Giới thiệu mô hình OrthogonalMatchingPursuit
Mô hình Orthogonal Matching Pursuit là mô hình học máy được xây dựng dựa trên những đặc trưng quan trong nhất của bộ dữ liệu dựa trên thuật toán của mô hình OMP kết hợp các đặc điểmcủa việc chọn đặc trưng ( feature selection ) và mô hình hồi quy tuyến tính Nó xây dựng một mô hình tuyến tính bằng cách chọn một tập con nhỏ nhất của các biến độc lập có khả năng dự đoán tốt nhất cho biến phụ thuộc ( chính là giá của ETH )
Thuật toán của mô hình này cơ bản như sau :
Tìm biến độc lập tốt nhất : OMP sẽ tìm kiếm biến độc lập tốt nhất trong số các biến độc lập, dưa trên hệ số tương quan giữa các biến độc lập và biến phụ thuộc
Thêm biến được chọn
Đánh số trọng số ( weight): Các trọng số của mô hình tuyến tính được cập nhật để phù hợp với dữ liệu
Kiểm tra tiêu chí dừng của vòng lặp : Tiêu chí dừng ở đây có thể là độ chính xác của mô hình, hoặc số lượng biến độc lập đã chọn đủ hoặc ko còn biến độc lập nào ( trường hợp bộ dữ liệu
có ít biến độc lập
● Kết quả dự đoán
Trang 17Sau khi triển khai mô hình bằng thư viện sklearn, ta sẽ in ra giá trị dự đoán và giá trị thực tế của
10 ngày đầu năm 2022
Biểu đồ trên biểu diễn sự biến đổi giá ETH theo thời gian , cùng với dữ liệu huấn luyện, dữ liệu kiểm tra và dự đoán trên cùng một đồ thị để so sánh
Trang 184.3 Tìm tham số tốt nhất cho mô hình
Tìm kiếm tham số tốt nhất cho mô hình có ý nghĩa quan trọng trong việc cải thiện hiệu suất và
độ chính xác của mô hình dự đoán Một mô hình học máy thường có các tham số mà ta phải xác định trước khi huấn luyện, và cách mà ta chọn và điều chỉnh các tham số này có thể ảnh hưởng đáng kể đến khả năng dự đoán và hiệu suất của mô hình
Trong thư viện LazyRegressor triển khai mô hình OMP với tham số mặc định là
“n_nonzero_coefs” và “fit_intercept”.Để tìm ra tham số tốt nhất , ta xác định 2 siêu tham số ( hyperparameter ) cần tối ưu chính là “n_nonzero_coefs “ ( số lượng hệ số khác 0 ) và
fit_intercept ( có sử dụng hệ số chặn hay không “.Hệ số chặn chính là giá trị dự báo khi tất cả các biến độc lập có giá trị bằng 0 Nếu “fit_intercept = True” thì mô hình OMP sẽ sử dụng hệ số chặn trong quá trình dự đoán và ngược lại Ngoài ra ta còn sử dụng phương pháp k-fold cross validation để giảm hiện tượng overfitting xảy ra trên bộ dữ liệu và tối ưu được lượng dữ liệu ta có
● Mean Square Error