Tải bản đầy đủ (.pdf) (26 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.9 MB, 26 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b> BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI</b>

<b>VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC</b>

<b>ĐỒ ÁN II</b>

<b> </b>

<b>Chuyên ngành: HỆ THỐNG THÔNG TIN QUẢN LÝ</b>

<b>Đề tài: Xây dựng luồng sự kiện phân tích dữ liệu XML trong Cơ sở Dữ liệuOracle T24 sử dụng Spark Streaming và tích hợp với Kafka</b>

Giảng viên hướng dẫn : TS. Đoàn Duy Trung Sinh viên thực hiện : Phạm Quang Huy 20206286Lớp : Hệ thống thông tin 02- K65

Hà Nội – tháng 07 năm 2022

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN </b>

<b>1. Mục đích và nội dung của đồ án:</b>

<b>2. Kết quả đạt được: </b>

<b>3. Ý thức làm việc của sinh viên:</b>

Hà Nội, ngày tháng nămGiảng viên hướng dẫn

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

M c l cụụ

<b>Phần 1. Dự báo giá ETH tương lai bằng mơ hình Machine Learning Supervised Learning 5</b>

<b>I.Mở đầu51. Giới thiệu về đề tài 5</b>

<b>1.1.Tổng quan sự phát triển của Big Data5</b>

<b>1.2.Yêu cầu, phạm vi nghiên cứu và ý nghĩa thực tiễn của đề tài52. Lời cảm ơn 6</b>

<b>II.Nội dung77</b>

<b>1. Mơ hình kiến trúc tổng quan 81.1. Mơ hình luồng dữ liệu 81.2. Danh sách công nghệ sử dụng8</b>

<b>1.3. Thơng tin cấu hình mơi trường sử dụng cho đề tài 910</b>

<b>2. Chuẩn bị môi trường thực hiện 112.1. Khởi động Oracle Database122.2.Lựa chọn đặc trưng 13</b>

<b>2.3.Chuẩn hóa dữ liệu 143. Xây dựng mơ hình15</b>

<b>3.1.Chia tập dữ liệu153.2.Xây dựng mơ hình 16</b>

<b>3.2.1. Thư viện LazyRegressor 16</b>

<b>3.2.2. Mơ hình OrthogonalMatchingPursuitCV163.3.Tìm tham số tốt nhất cho mơ hình 18</b>

<b>4. Đánh giá mơ hình18</b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>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 đầutư19</b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>I. Mở đầu</b>

<b>1. Giới thiệu về đề tài</b>

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ế hồn tồ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ớiPhạ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àicó 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ự đố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.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>2. Lời cảm ơn</b>

<b> </b>Để 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.

<b> Đặ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</b>

dẫn em suốt q 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.

<b> </b>

Em xin chân thành cảm ơn !

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>II.Nội dung1. Giới thiện về bộ dữ liệu</b>

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

<i> Mô tả các cột dữ liệu</i>

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.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>2. Khám phá dữ liệu</b>

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 <b>describe()</b> để 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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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 q trình dự đố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 q quan trọng trong q trình dự đố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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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.

<b>3. Tiền xử lý dữ liệu</b>

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, q 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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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 )

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="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ạmvi 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.

<b>4. Xây dựng mơ hình</b>

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

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

4.2. Xây dựng mơ hình

<i>4.2.1. Thư viện LazyRegressor</i>

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.

<i>4.2.2. Mơ hình OrthogonalMatchingPursuitCV</i>

● 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 tố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ự đốn tốt nhất cho biến phụ thuộc ( chính là giá của ETH ).

Thuật tố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ệucó ít biến độc lập .

● Kết quả dự đoán

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="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.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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ự đố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ự đố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 q trình dự đốn và ngược lại. Ngồ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

</div>

×