1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề 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.pdf

26 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề 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
Tác giả Phạm Quang Huy
Người hướng dẫn TS. Đoàn Duy Trung
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Hệ Thống Thông Tin Quản Lý
Thể loại đồ án
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 26
Dung lượng 2,9 MB

Nội dung

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 1

BỘ 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 2

NHẬ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 3

M 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 4

Phầ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 5

I 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 6

2 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 7

II 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 8

2 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 9

2.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 10

Dự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 11

Biể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 13

Sau 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 14

Khi 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 15

chuyể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 16

4.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 17

Sau 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 18

4.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

Ngày đăng: 25/05/2024, 10:09

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w