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

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa

99 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 Hệ Thống Dự Báo Giá Và Khuyến Nghị Giao Dịch Mua Bán Tiền Mã Hóa
Tác giả Nguyen Minh Nhut
Người hướng dẫn PGS. TS Nguyen Dinh Thuan
Trường học Đại Học Quốc Gia Tp. Ho Chi Minh
Chuyên ngành Hệ Thống Thông Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố Tp. Ho Chi Minh
Định dạng
Số trang 99
Dung lượng 40,24 MB

Cấu trúc

  • 2.2.5. U80 (0)
  • 2.2.6. Mô hình Box-Jenkins.................................. - 5-5 s Street 19 2.2.7. Chỉ số AIC.....................................à Hee 20 2.3. Support Vector Machine và Module SVR..............................------+cccccsscecee 21 2.3.1. Ly thuyết cơ sở SVM [8]...cssssssssssseseecssssssnnmeesseccecssnnsnnenieseeseeeeennsneen 21 2.3.2. Xây dựng bài toán tối ưu sử dụng SVM...........................-----.cccccccccee 23 2.3.3. Kernel SVM [9]. 2.3.4. Module SVR........................................... ch HH ren 28 2.4. Neural Network và mô hình LSTM [12], [13], [14] [15] (31)
  • 2.4.1. Cơ sở lý thuyết Neural Network.......................-----:-52222ccccvccvxecrserrrvee 29 2.4.2. Mang RNN va Mạng LSŠTM................................-------5555+sccsesxsrererree 36 2.5. Mạng tăng cường và Q-Learning.............................--:----+- 5+5 sxccsetrrsrrrerxeree 39 2.6. Phương pháp đánh giá mô hình........................-- - 55+ S+st‡xexvrvEetskerrrrsrerervree 44 2.6.1. Root Mean Square Error (RMSE)........................ c5 Scscsrererererererrev 44 2.6.2. Mean Absolute Percentage Error (MAPE)...........................-----c--+cc+c 44 2.7. Lý thuyết kết hợp mô hình [20], [21], [22] 2.8. Ứng dụng mô hình Hybrid ARIMA-SVR và ARIMA-LSTM (41)
  • Chương 3. PHAN TÍCH THIET KE VÀ THỰC NGHIỆM...............................--- 47 3.1. Pharse 1 — Học mô hình dự báo và khuyến nghị.................. ccccccecereeeee 47 (0)
    • 3.1.4. Mô hình khuyến nghị Q-Learning cho Pharse 2 (64)
    • 3.2. Pharse 2— Quy trình xây dựng hệ thống API........................----::z52sccc2 53 1... Thiết kế thành phan chức năng.......................-------:-222222cz+22v2vszrrrrrrvee 33 2. Thiết kế thành phan dữ liệu...........................---22¿¿+22222+2+t22E2Ekeerrrrrkee 57 3. _ Thiết kế thành phan xử lý.............................---2-22c++2222x+cctztrrkkerrrrrrkee 59 3.3. Pharse 3 — Triển khai hệ thong API lên Server Clould Linux (65)
      • 3.3.1. Cơ chế định thời trong Laravel [22]...................--.......---::¿--5222ccssscccc+ 60 3.3.2. Cơ chế CRON trong Server Linux...........................----..-::522cscc+2eccxe2 64 3.4. Pharse 4— Xây dựng giao diện và giao tiếp API.. Chương 4. KET QUA ĐẠT ĐƯỢC VÀ HƯỚNG PHAT TRIEN (72)
    • 4.1. Kết quả dat được...............................ccc---c2c2SvcccccteC2E2222E1 rrrrrrrrrrrrrerrree 70 4.2. Huong nh... .ẽ........ 70 I.100)00).7)/004 .....ốốốốốốố 72 (0)
  • Hinh 3.13 Vi du minh hoa vé Task Scheduling 017 (72)

Nội dung

Phương pháp thực nghiệm Loại dự báo này là đưa ra kết quả dự báo cho sản phẩm mới, bằng cách cho sử dụng sản phâm thử nghiệm và cải tiên trên sự quan sát phản ứngcủa khách hàng với sản p

Mô hình Box-Jenkins - 5-5 s Street 19 2.2.7 Chỉ số AIC à Hee 20 2.3 Support Vector Machine và Module SVR +cccccsscecee 21 2.3.1 Ly thuyết cơ sở SVM [8] cssssssssssseseecssssssnnmeesseccecssnnsnnenieseeseeeeennsneen 21 2.3.2 Xây dựng bài toán tối ưu sử dụng SVM -.cccccccccee 23 2.3.3 Kernel SVM [9] 2.3.4 Module SVR ch HH ren 28 2.4 Neural Network và mô hình LSTM [12], [13], [14] [15]

Mô hình Box-Jenkins là mô hình gồm 6 bước và áp dụng cho mô hình ARIMA

- Bước 1: Kiểm tra tinh dừng bằng phương pháp ADF hoặc KPSS.

- Bước 2: Nếu là chuỗi dừng thi bỏ qua bước 2 Nếu là chuỗi dừng thì thực hiện bước biến chuỗi không dừng thành chuỗi dừng.

- Bước 3: Chọn bậc p trong mô hình AR(p) để tối ưu

- Bước 4: Chọn bậc q trong mô hình MA(q) dé tối ưu

- Bước 5: Ước lượng p, d, q sao cho mô hình ARIMA(p,d,q) sau đó chọn mô hình tối ưu.

Checking for stationarity of time series

Estimate the ARIMA model (p,d,q) and choose the optimal model

Hình 2.6 Mô hình Box-Jinkins áp dung cho mô hình ARIMA

Một trong những tiêu chí thường được sử dụng để lựa chọn mô hình đó là chỉ số AIC (Akaike Information Criteria) Tiêu chí thông tin này là một công cụ ước tính lỗi dự báo và do đó đánh giá chất lượng tương đối của các mô hình thống kê trên một tập hợp dữ liệu nhất định AIC được hình thành dựa trên lý thuyết thong tin (information theory) Khi một mô hình thống kê được sử dụng dé dự báo, kết quả sẽ gần như không bao giờ chính xác hoàn toàn Vì vậy một số thông tin sẽ bị mat do không thé dự báo từ mô hình AIC ước tính lượng thông tin tương đối bi mắt bởi một mô hình nhất định: mô hình mắt càng ít thông tin thì chất lượng của mô hình đó càng cao Giả sử rằng có một mô hình thống kê tương ứng với một bộ đữ liệu Gọi là số lượng tham số ước tính trong mô hình Đặt là giá trị tối đa của ham hop lý (maximum likelihood function) của mô hình.

Với k là số mẫu quan sát hồi quy, likelihood’ là hàm hợp ly cực đại

7 https://viblo.asia/p/so-luoc-ve-maximum-likelihood-estimation-1JeSEvrYKnL

2.3 Support Vector Machine và Module SVR

2.3.1 Lý thuyết cơ sở SVM [8]

Khoảng cách từ một điểm đến một mặt phẳng trong không gian

Trong không gian 2 chiều Oxy có khoảng cách từ một điểm (xo;yo) đến một đường thăng w;x + w,y+ = 0 được xác định bởi công thức:

Trong không gian 3 chiều Oxyz có khoảng cách từ một điểm (xXo,yo,Z0) đến một mặt phăng w,x + w„y + wz + ® = 0 được xác định bởi công thức:

Tương tự vậy trong không gian nhiều chiều T có khoảng cách từ một điểm Xo đến một siêu phăng w’ X +b =0 được xác định bởi công thức:

Bài toán phân chia hai lớp sử dụng SVM

Giả sử có hai lớp khác nhau được mô tả bởi không gian nhiều chiều, hai lớp này tồn tai ít nhất một mặt phẳng w’ XY +b = 0 (Với T là số chiều không gian) chia hai lớp

Dựa vào hình mô tả trên không gian (Hình 2.7), đối với hai class màu xanh và màu đỏ có vô sô siêu phăng phân chia hai lớp.

Hình 2.7 Mô tả hai lớp trên không gian được phân chia bởi nhiều siêu phẳng Câu hỏi đặt ra cho bài toán này là trong các mặt siêu phăng , đâu là mặt siêu phang phân chia tốt nhất.

Hình 2.8 Mặt phân chia với điểm gần nhất của mỗi class Đối với Hình 2.8, hai lớp được phân chia bởi một mặt phang wx+w,y+b=0, nhưng hai điểm gần nhất của hai lớp đến mặt phẳng phân cách không đều Việc tim ra một mặt phăng phân cách phân chia hai lớp với độ rộng bằng nhau được gọi là tìm margin lề như hình sau đây:

Với hai lớp được phân chia bởi một siêu phăng thì có vô số siêu phẳng dé phân chia hai lớp có margin bằng nhau Nhìn vào Hình 2.9 thấy đường đen có độ phân chia hai lớp với margin cao hơn đường màu xanh nét đứt Do đó đường màu đen sẽ được gọi là đường tối ưu hơn đường màu xanh vì giúp cho việc phân lớp rõ hơn.

Bài toán tối ưu trong SVM tức là tìm đường phân chia giữa hai class sau cho margin đạt giá trị lớn nhất.

2.3.2 Xây dựng bài toán tối ưu sử dụng SVM

Gia sử rằng các cặp dữ liệu training set được biểu diễn như sau:

Với x, e]R“thể hiện d dữ liệu đầu vào (Input) y, thể hiện nhãn (label) hay dữ liệu đầu ra (Output)

N là số tập dữ liệu training set

Dé dé dàng mô tả cho thuật toán phân lớp với SVM trên không gian nhiều chiều, đầu tiên xét trường hợp trên không gian hai chiều như hình minh họa (Hình 2.10)

Hình 2.10 Phân tích bài toán SVM trên không gian 2 chiều

Giả sử hình vuông màu xanh thuộc class 1 (positvie), hình tròn màu đỏ thuộc class

Với cặp dữ liệu (x,,y,) bat ki, khoảng cách từ điểm dữ liệu đó đến mặt phân cách được xác định bởi công thức y„(wfx,+b) Điều này cho thấy rằng (x„ „) luôn cùng nằm một phía nên tử số không âm

Với mặt phân chia như trên, margin được xác định từ điểm gần nhất tới mặt (bat kê điểm nao trong hai class và được xác định bởi công thức:

Bai toán tối ưu SVM chính là bài toán tìm w,b sao cho margin đạt giá trị lớn nhất

(w, b) = arg max min 220% n+) = arg max ; ———— min y, (w’ x, +b)

Nếu thay w thành kw và b thành kb, đó k là một hang số dương thì mặt phân chia không thay đổi, tức khoảng cách từ từng điểm đến mặt phân chia không đổi, tức margin không đổi Dựa trên tinh chất này, có thé gia sử: min y,(w' x, +b)=1

Hình 2.11 Các điểm gần mặt phân cách được biéu diễn khoanh tròn

Vậy có với mọi n thì y, (w'x, +b)>1

Trong python thư viện hỗ trợ SVM là gói sklearn với thư viện con là SVM

2.3.3 Kernel SVM [9] Đối với bài toán SVM không có mặt phân cách tuyến tính thì có một phương pháp khác đề phân chia class, phương pháp đó gọi là Kernel SVM. Ý tưởng cơ bản của Kernel SVM và các phương pháp kernel nói chung là tìm một phép biến đổi sao cho đữ liệu ban đầu là không phân biệt tuyến tinh được biên sang không gian mới Ở không gian mới này, đữ liệu trở nên phân biệt tuyến tính.

Xét ví dụ đưới đây với việc biến dit liệu không phân biệt tuyến tính trong không gian hai chiều thành phân biệt tuyến tính trong không gian ba chiều bang cách giới thiệu thêm một chiều mới:

Hình 2.12 Dữ liệu 2 chiều không có Linearly Separable

Dữ liệu 2 chiều ở Hình 2.12 không có tính phân chia tuyến tính được vì vậy sử dụng phương pháp Kernel SVM bằng cách thêm một chiều mới

Hình 2.13 Dữ liệu 3 chiều đã có Linearly Separable Nếu có chiều thứ 3 với dạng z = x2 + y? các điểm dữ liệu liệu sẽ được phân bố parabolic và dữ liệu trở nên tuyến tính Mặt phẳng màu vàng là mặt phân chia hai lớp.

Giao điểm của mặt phẳng tìm được va mặt parabolic là một đường ellipse, khi chiếu toàn bộ dữ liệu cũng như đường ellipse nay xuống không gian hai chiều ban dau, đã tìm được đường phân chia hai classses.

Một số dạng Kernel thông dụng

Tên Công thức kernel Thiết lập hệ số linear x! 2 ‘linear’ không có hệ số polynomial (r++~x?z)4 ‘poly’ d: degree, +: gamma, 7: coefo sigmoid tanh(7x!z + r) ‘sigmoid’ 7: gamma, 7: coefe rbf exp(~—+llx — 2||3) "rb£" + > 0: gamma

Hình 2.15 Một số Kernel thông dụng

Support Vector Regression (SVR) là một thuật toán hồi quy sử dụng SVM, để dự báo cho giá trị một biến liên tục (dữ liệu thời gian). Ý tưởng của Support Vector Regression, tìm ra một hàm số xắp xi ứng với đữ liệu số nhập đầu vào

Hinh 2.16 M6 hinh héi quy SVR Dựa vào Hình 2.16 thay hai đường mau đỏ là hai đường biên của mỗi lớp, đường biên Hyperplane là một siêu phẳng dùng đề ngăn cách hai lớp.

Gia sử siêu phẳng Hyper plane có phương trình ÿ = wx +b

Cơ sở lý thuyết Neural Network . -:-52222ccccvccvxecrserrrvee 29 2.4.2 Mang RNN va Mạng LSŠTM -5555+sccsesxsrererree 36 2.5 Mạng tăng cường và Q-Learning : +- 5+5 sxccsetrrsrrrerxeree 39 2.6 Phương pháp đánh giá mô hình - 55+ S+st‡xexvrvEetskerrrrsrerervree 44 2.6.1 Root Mean Square Error (RMSE) c5 Scscsrererererererrev 44 2.6.2 Mean Absolute Percentage Error (MAPE) -c +cc+c 44 2.7 Lý thuyết kết hợp mô hình [20], [21], [22] 2.8 Ứng dụng mô hình Hybrid ARIMA-SVR và ARIMA-LSTM

Hình 2.17 cấu tao một mang Neural Network [10]

Một mang Neural Network cú ứ dau vào mỗi ngừ vào, mụi ngừ vao x; cú trọng sô wy.

Các trọng số w;, wz, Wn thay đôi trong quá trình học của mang Neural

Weighted Sum của một lớp ân được xác định như sau: n ea i=l

Một hệ số quan quan trọng là w¿ được gọi la bias, hệ số này rất quan trọng vì nếu phương trình Weighted Sum không có hệ số tự do wo thì phương trình của sẽ trở thành ằ x,w, =0 , phương trỡnh này luụn qua gốc tọa độ nờn khụng là dạng tổng i=l quát của một phương trình đường thắng nên cộng thêm một hệ số tự do dé phương trình Weighted Sum có dạng sau đây: n

Vi ham Weighted Sum là một ham tuyến tinh, không đúng với thực tế trong quá trình dự báo vì mô hình dự báo không bao giờ ở dạng tuyến tính mà nó tăng hoặc giảm theo một hàm phi tuyến vi vậy cần có một hàm hardlim dé biến hàm tuyến tính thành hàm phi tuyến Nên có giá trị y dự báo được xác định như sau: ộ=/ệ 5M toy)

Mang Neural nhân tạo được huấn luyện theo 3 kiêu học của máy học là học có giám sát (Supervised learning), học không giám sat (Unsupervised learning) va hoc tăng cường (Reinforcement learning)

Hoc có giám sát (Supervised Learning): Mang được cung cấp sẵn các lập mẫu {(xl,yl), (x2,y2), (xn,yn)} trong đó xi là giá trị đầu vào (Input), yi là giá trị đầu ra hay còn gọi là nhãn (Output) Bài toán điển hình cho kiều học này là nhận diện khuôn mặt.

(D-Y) nh D (Desired Output) a esire lutpuư

Hinh 2.18 M6 hinh Mang Neural theo Supervised Learning Học không giám sat (Upsupervised Learning): Không có thông tin phan hồi nào từ môi trường (không có sẵn /zbe!) Mạng chỉ nhận dữ liệu đầu vào và tự tìm ra các quy tắc, đặc tính, sự tương quan có trong mau dé đưa ra dữ liệu đầu ra (Output)

Hoc tăng cường (Reinforcement Learning): Mang Neural học dé tôi ưu hóa hàm lỗi sau nhiều lần dé đạt kết quả tối ưu.

Error R (Reinf trung eintorcement signa

Một số hàm kích hoạt thông dụng

Tên hàm Công thức hàm Biểu diễn hàm a

Ham bước nhảy don vi hay f= Í x>0 có tên khác là hàm hardlim 0 x x,w, + Wạ), giá tri ? này thay đôi lai sau i=l mỗi quá trình truyền xuôi do w; va bias thay đôi.

Mục tiêu của quá trình truyền ngược là điều chỉnh weight trong mạng theo tỷ lệ với mức độ đóng góp lỗi chung trong mạng, nếu quá trình lặp đi lặp đi lặp lại và cập nhật weight giúp việc một mạng có thể dự báo được một kết quả tốt.

Ta có hàm chỉ phí (value function) để đánh giá mô hình dự báo bằng MSE.

Hình 2.21 Ham chi phí trong không gian 3 chiều

Dé tối ưu hàm chi phí (value function) thì tối ưu bằng cách tinh đạo hàm của hàm chi phí ƒ”(m,b) đặt m là trọng số của node x; thay gì viết là wi

MSE = Ys, — (Wx; +) = Ds —29,(w,x, +b)+(wx,)° + 2wx,b+b*) N N i=l i=l

- Dao hàm riêng theom: f',, MSE = rea (y, — (mx, + b)) i=l

- Dao hàm riêng theo b: f', MSE = We —2(y, — (mx, + b)) i=l

- Weight mới = weight hiện tại - m(MSE)#learning_ rate

- Để tối ưu hàm chi phí tối ưu trọng số weight và tối ưu bias

- Bias mới = bias hiện tai - Ps(MSE)*learning rate Ý trởng dữ liệu đầu vào neural network vào bài toán dự báo giá Bitcoin [11]

Từ dữ liệu file CSV lấy 31 ngày trong tháng 1 năm 2021 được thé hiển dưới bảng sau đây:

Ngày Closing Price Ngày Closing Price

Bang 2.2 Dữ liệu nhập Input Bitocin

Phát biéu bài toán lấy 10 ngày đầu tiên dé từ ngày 1/1 đến ngày 5/1 dé dự báo cho ngày 6/1 Sau đó tiễn lên một ngày dé dự báo từ ngày 2/1 đến ngày 6/1 dé dự báo cho ngày 7/1 Cứ tiếp tục đến vậy cho đến ngày 23/1, những ngày còn lại để kiêm tra độ chính xác của thuật toán

Ta sẽ được bảng dữ liệu học như sau: Đầu Đầu ra

XI Xã Xã Xã Xs vao

Bang 2.3 Dữ liệu dau vào và dau ra mau

Ta có thé mô tả bài toán với bộ tập dữ liệu học như sau:

Với K=I 06% = WX, + My X, + W3X3 + Mu XS, + M;X, Tương tự K=2 cú: ẽ; = WX) + 2X, + WX, + Wy Xy + W2,

Ye = Wei) + WioX, + WigsX3 + My, + MiysX,

Biểu diễn Y = W.X với Y = [y1, yo, ys, yis]", X = [X,,X;,X;,X,,X,Ÿ

Từ đây tim được ma trận W = YX"!

Giai đoạn 2: Pha chạy Đã có tập trọng số W

Cho tập dữ liệu từ ngày [1/1/2021 31/1/2021]

Cho tập giá trị Closing Price tương ứng với từng ngày

Xác định giá Closing Price y tức là dự báo giá Closing Price ngày 1/2/2021 Đề dự báo ngày 2/2/2021 thực hiện hai bước:

Bước 1: Lấy dữ liệu ngày 1/2/2021 cho học lại

Bước 2: Lay dữ liệu từ ngày 28/1/2021 — 1/2/2021 dé dự báo cho ngày 2/2/2021

2.4.2 Mạng RNN và Mạng LSTM

Mạng nơ-ron truyền thống không có khả năng ghi nhớ các khoảng thời gian trước đó gây ra nhược điểm của nó, với các mô hình chuỗi thời gian, việc lưu giữ bộ nhớ là rất quan trọng đối với các giá trị tại thời điểm trước đó đề tìm ra quy luật của chuỗi thời gian Từ đó, một Recurrent Neural Network (RNN) ra đời dé giải quyết van đề này Kiến trúc của một RNN đơn giản được hiền thị như sau: ®

Hình 2.22 Recurrent Neural Network có vòng lặp [16]

Kiến trúc Recurrent Neural Network được biểu đơn giản hóa như sau:

Hình 2.23 Recurrent Neural Network đơn giản hóa

RNN tự nhiên không thé học được trong thời gian dài Về mặt lý thuyết, RNN có thé giải quyết van đề phụ thuộc dai hạn bằng cách thêm các tham số, nhưng RNN không thê học các tham số này thông qua nghiên cứu [17]

May mắn thay, mạng LSTM là một loại RNN đặc biệt và giải quyết được van đề phụ thuộc dài hạn Một khối LSTM [18] được có cau trúc như sau: q) () @) ial

Hình 2.24 Một khối LSTM Block cơ bản © —> >> —=

Layer Operation Transfer Concatenate Copy

Hình 2.25 Các ký hiệu của LSTM block

Tại công này nếu giá trị đầu ra có giá trị là 1 thì giữ tat cả thông tin và nếu là 0 thì loại bỏ các thông tin.

- Input Gate : i =o(W,[h_,,x,]+5,) Đầu vào của cổng đầu vào của một t

LSTM block bao gom giá trị hiện tại va gia tri trước đó.

Tanh layer with input gate: C = tanh(W⁄ [ủ, Ă,x,]+ b„ )

- Cell State for next input: C = f*C_,+i,*C

Hình 2.28 Merge Cell Forget Gate and Input Gate

- Output Gate: 6 =o(W[h,,,x,]+,) Đầu vào của cổng ra vào của một LSTM block bao gồm giá tri hiện tại và giá tri trước đó.

Mô hình LSTM phù hợp với mô hình chuỗi thời gian vì nó khám phá mối quan hệ giữa quy luật của chuỗi thời gian Vì mô hình LSTM phù hợp với các mô hình tuần tự như mô hình chuỗi thời gian.

2.5 Mạng tăng cường và Q-Learning

Việc học tập của con người là quá trình tích lũy liên tục từ lúc học tiểu học, trung học, đại học, ở mỗi mức học con người sẽ có một phần thưởng cho sự tích lũy kiên thức của mình.

Quá trình học của con người được phân làm 3 nhân tô

- Agent: Đối tượng thực thé nghiên cứu ở đây là con người.

- Enviroment: Môi trường học tập (tiêu học, trung học, đại học).

- Reward: Phần thưởng sau mỗi lần học tập.

- Action: Hành động cho mỗi lần học tập Hành động này là quá trình học random.

Quá trình trial-and-error (thử và lỗi) và sau mỗi lần thử chi phối đến phần thưởng thì được gọi là học tăng cường Việc thử lặp lại tốn rất nhiều thời gian nhưng giúp agent có thêm kinh nghiệm.

Việc thăm dò càng lâu thì kinh nghiệm học càng nhiều Có một số chiến lược dé điều chỉnh sự cân bằng và thăm đò không gian tìm kiếm. action

Hình 2.30 Quá trình học Q-Learning Công thức Temponal Difference or TD-Update

S: State hiện tai của tac nhân

A: Action hành động được đặt

PHAN TÍCH THIET KE VÀ THỰC NGHIỆM . - 47 3.1 Pharse 1 — Học mô hình dự báo và khuyến nghị ccccccecereeeee 47

Mô hình khuyến nghị Q-Learning cho Pharse 2

Vi Q-Learning là ứng dụng của máy học và trí tuệ nhân tạo, vì vậy việc đánh giá của mô hình này sẽ không chính xác bằng cách học tính toán lại giá trị Q-Value và cập nhật vào Q-Table cho thấy mô hình này đã làm cho mô hình này đạt độ tin cậy nhất định vì vậy việc áp dụng Q-Learning vao mô hình khuyến nghị Pharse 2 là một điều tất yếu.

Pharse 2— Quy trình xây dựng hệ thống API ::z52sccc2 53 1 Thiết kế thành phan chức năng . -:-222222cz+22v2vszrrrrrrvee 33 2 Thiết kế thành phan dữ liệu -22¿¿+22222+2+t22E2Ekeerrrrrkee 57 3 _ Thiết kế thành phan xử lý -2-22c++2222x+cctztrrkkerrrrrrkee 59 3.3 Pharse 3 — Triển khai hệ thong API lên Server Clould Linux

3.2.1 Thiết kế thành phần chức năng

Hệ thống dự báo và khuyến nghị giá BTC và ETH

Xuất đồ thị khuyến nghị

Hình 3.9 Usecase tổng quan hệ thống dự báo và khuyến nghị BTC và ETH Đặc tả Usecase tổng quan

Bang 3.5 Usecase xem dự báo Tên Usecase: Xem dự báo Mã Usecase: UC01

Tiề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ì bảng dự báo và đồ thị dự báo sẽ xuất hiện trên hệ thong

Tác nhân chính: Admin, User, Linux | Mức độ quan trong: Cao

Mô ta Usecase: Usecase cho phép người dùng xem gia trị du báo va bảng dự báo những ngày tiếp theo và 49 ngày trước.

1 Tro đúng URL đến màn hình xem dự bao

Load đữ liệu dự báo và đữ liệu lịch sử từ API server

Hiền thị ra màn hình kết quả

Bảng 3.6 Usecase xem khuyến nghị Tên Usecase: Xem khuyến nghị Mã Ủsecase: UC02

Tiề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ị khuyến nghị 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

Mô ta Usecase: Usecase cho phép người dùng xem hành động khuyến nghị ngày tiếp theo và 49 ngày trước.

1 Trỏ đú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 quả

Bảng 3.7 Usecase lấy dữ liệu mới Tên Usecase: Lấy dữ liệu mới Mã Ủsecase: 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ô ta Usecase: Lấy dữ liệu mỗi ngày từ trang web coindesk, sau đó lưu vào cơ sở dir liệu

1 Trỏ vào đường dẫn URL Server

2 Thêm một ngày mới vào Bang (Chức năng chỉ áp dụng với Linux

3 Lay dữ liệu coindesk Luu dt liệu vào co sở dir liệu

Bảng 3.8 Usecase xuất file CSV Tên Usecase: Xuất file CSV Mã Usecase: UC04

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: Lấy dữ liệu từ database 100 dòng đầu sau đó xuất ra file CSV và lưu thu mục public của server

Tác nhân chính: Admin, Linux Server | Mức độ quan trọng: Cao

Mô tả Usecase: Lay từ CSDL lưu vào file CSV

1 Trỏ vào đường dẫn URL Server

Lay dit liệu từ CSDL

Bang 3.9 Usecase Dw bao gia Tén Usecase: Du bao gia Mã Usecase: UC05

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: Giá trị Predict được cập nhật vào CSDL

Tác nhân chính: Admin, Linux Server Mức độ quan trọng: Cao

Mô tả Usecase: Lay file CSV từ thư mục public, dùng mô hình ARIMA_LSTM học sao đó lưu lại vào CSDL.

1 Trỏ vào đường dẫn URL Server

Lay dữ liệu từ CSV thư mục public Học và dự báo bằng mô hình ARIMA_LSTM học lại

Lưu giá trị predict vào CSDL

Bang 3.10 Usecase Xuất đồ thị khuyến nghị Tên Usecase: Xuất đô thị khuyên nghị Mã Usecase: UC06

Tiền điều kiện: Vào đúng URL Server của hệ thống Đôi với Server Linux thi server tự route đúng vào API Và phải thực hiện predict trước khi khuyến nghị dé lây giá trị dự báo ngày tiếp theo

Hậu điều kiện: Đồ thị khuyến nghị được và lưu vào thư mục public

Tác nhân chính: Admin, Linux Server Mức độ quan trọng: Cao

M6 tả Usecase: Lấy file CSV mới nhất từ CSDL (sau việc dự báo), học mô hình

Q-Learning đưa ra kết quả từng ngày Xuất file png vào thư mục public

1 Trỏ vào đường dẫn URL Server

Lay dữ liệu từ CSV sau khi dự báo thư mục public Học Q-Learning sau đó xuất ra file CSV

3.2.2 Thiết kế thành phan dữ liệu

- predict_arima_Istm - predict_arima_Istm

+ getData() + getData() + getNewData() + getNewData() + getPredictPrice() + getPredictPrice() + getQLearningGraph() + getQLearningGraph()

Hinh 3.10 Class diagram hé thong

Bang 3.11 Bảng thuộc tinh Bitcoin

Thuộc tinh Kiểu dữ liệu | Giá trị mặc định Ý nghĩa

1d int ID Bitcoin một ngày closing price float null Giá cuối ngày predict_arima_Istm float null Giá dự báo bang hybrid ARIMA_ LSTM datetime_btc Datetime Default (Unique) | Ngay luu trong CSDL

Bang 3.12 Bang ham Bitcoin Class

Ham Usecase Y nghia getAllQ UC05 Lây đữ liệu mới getData() UC04 Xuất file CSV getPredictPrice() UC05 Dự báo giá getQLearningGraph() UC06 Xuất đô thị khuyên nghị

Bảng 3.13 Bảng thuộc tính Ethereum

Thuộc tính Kiểu dữ liệu | Giá trị mặc định Ý nghĩa

1d int ID Bitcoin mot ngay closing price float null Giá cuối ngày predict_arima_Istm float null Gia du bao bang hybrid ARIMA _LSTM datetime eth Datetime Default (Unique) | Ngày lưu trong CSDL

Bang 3.14 Bảng hàm Ethereum Class

Hàm Usecase Y nghia getAll() UC05 Lây đữ liệu mới getData() UC04 Xuất file CSV getPredictPrice() UC05 Dự báo giá getQLearningGraph() UC06 Xuất đô thị khuyên nghị

3.2.3 Thiết kế thành phần xử lý i)

[| | :API | :Bitcoincontroller ‘EthereumController | | /public | | :Bitcoin | :Ethereum loop T T

1 Giri Request Predict Bitcoi h ' dailyati8:00) ẽ 1

2 Route đường dẫn đến controll h '

-———————3 Lay file CSv BTC ca từ server- 1 x \ I

— 4 Tra vềgiá tri CSV thành một biển — — ~ — ~ — — '

1 Ũ Ũ i 5 Chay hàm main trong thư mục Predict_ARIMA_LSTM_ET'

1 _ — to ee 6 Trả về kết quả predict lưu vào một biến — — — — — =

\ a SS 8 Trẻ về kết qua output: — — — — — loop

Givi Request Predict Ethereum dailyAt{S:15)

| Route đường dẫn đến controller i — |

1 file (Sv BT Ccev từ server

K - 12 Trả về giá tri CSV thành một biển — — — — — — — 1 Ị 1

13 Chay hềm main trong thư mực Predict_ARIMA_LSTM_BTC- i ke - 14 Trả về kết qua predict lưu vào một bign— — — — — —

16.Lưu gi trịPredictvào CSDL- c——— .Ồ.ỘỒ 7.g ede

Lie - T —~ 16 Trọvề kết qua output — — — — — — — — — \ i

Hinh 3.11 Sequence Diagram Dw bao gia BTC va ETH

Kết quả dat được .ccc -c2c2SvcccccteC2E2222E1 rrrrrrrrrrrrrerrree 70 4.2 Huong nh ẽ 70 I.100)00).7)/004 .ốốốốốốố 72

Server ae | Gửi Request Q-Learning BT!

2 Route đường dẫn đến controler” dailyAt(8:30)

———— tọ tie CSV BTC.csv từ server

Ke - 4, Trả về giá trị CSV thành một biển — — — — — — —

5 Chay hầm main trong thư mục Predict_QLearning_BT

|} $a ———7 Xuất hình và lưu Ưng: 1

“8 Gif Request (-Learning ETH} h dailyAt{8:55) 1

Route đường dẫn đến controlle! 1 i

10 Lấy file CSV BTC.csv từ ser0er——Ì—

1 jeSeeeees 11 Trai giá tri CSV thành một biến — — — — — — — - i |

32 Chay hàm naneng ty mục Predict_QLesrning ETH !

15 Xuất hình và lưu mé hình- oe a + 1 1 1 1 1 1 1 1 1 1 1 1

Hinh 3.12 Sequence Diagram khuyén nghi BTC va ETH 3.3 Pharse 3 — Triển khai hệ thống API lên Server Clould Linux

3.3.1 Cơ chế định thời trong Laravel [22] Định nghĩa Task Scheduling trong thư mục app/Console/Kernel.php trong ham schedule Ví dụ minh họa xóa một tài khoản recent_users hàng ngày. protected function schedule(Schedule $schedute)

OB: :table('recent_users')->delete();

Vi du minh hoa vé Task Scheduling 017

Một số hàm định thời Task Scheduling được laravel dựng sẵn

Bảng 3.15 Danh sách các hàm schedule được dựng sẵn Laravel

Chay task trên cron schedule tùy chỉnh

Chay task mỗi một phút.

Chay task mỗi hai phút.

Chạy task mỗi ba phút.

Chạy task mỗi năm phút

Chạy task mỗi mười phút

Chay task mỗi mười lăm phút

Chạy task mỗi ba mươi phút

Chạy task mỗi một giờ

Chạy task mỗi giờ lúc phút thứ 17 của mỗi giờ

->everyTwoHoursQ; Chạy task mỗi hai giờ

->everyThreeHours(); Chạy task mỗi ba giờ

->everyFourHours(); Chay task mỗi bốn giờ

->everySixHours(); Chay task mỗi sáu giờ

->dallyQ; Chạy task lúc mỗi ngày nửa đêm

->dailyAt(13:00); Chạy task mỗi ngày lúc 13:00

->twiceDaily(1, 13); Chạy task mỗi ngảy lúc 1:00 vả 13:00 yl 8

->weeklyOn(1, '8:00'); Chay task mỗi tuần vào thứ hai lúc 8:00

Chay task vào lúc 0:00 đầu tháng

Chay task hang tháng vào ngày 4 lúc 15:00

->twiceMonthly(1, 16, '13:00'); Chay task hang thang vào ngày | va ngày 16 vào lúc 13:00

Chay task hang tháng vào ngày cuối tháng vào lúc 15:00

Chay task vao luc 0:00 dau nam

Chay task mọi năm vào ngày | thang 6 vào lúc 17:00

Các hàm định thời schedule dựng trong hệ thong

Vào 07:30 mỗi ngày Linux Server sẽ lay dit liệu mới từ website Coindesk lẫn các trang web liên quan

$ch = curL_init(); curL_setopt($ch, option: CURLOPT_URL, value: "http://112.78.4.49/api/getNewDataBTC") ; curL_setopt($ch, option: CURLOPT HEADER, value: 0); curl_exec($ch); curl_close($ch) ;

$ch = curl_init(); curl_setopt($ch, option: CURLOPT_URL, value: "http://112.78.4.49/api/getNewDataETH") ; curl_setopt($ch, option: CURLOPT_HEADER, value: 0); curl_exec($ch); curl_close($ch) ; })->dailyAt('07:30');

Hình 3.14 Schedule lấy dữ liệu mới Vào 07:40 mỗi ngày Linux Server sẽ xuất liệu ra file CSV dé chuẩn bị cho quá trình học máy python

//function export data to csv

$ch = curl_init(); curl_setopt($ch, option: CURLOPT_URL, value: “http://112.78.4.49/api/getAll1BTC") ; curl_setopt($ch, option: CURLOPT_HEADER, value: Q); curl_exec($ch); curt_cLose($ch) ;

$ch = curl_init(); curl_setopt($ch, option: CURLOPT_URL, value: "http://112.78.4.49/api/getA11ETH") ; curl_setopt($ch, option: CURLOPT_HEADER, value: 0); curl_exec($ch) ; curL_cLose($ch) ; }) ->dailyAt(‘07:40');

Hình 3.15 Schedule lấy dữ liệu mới nhất xuất thành CSV 3.3.2 Cơ chế CRON trong Server Linux

Thiết lập co CRON trong linux như sau dé mỗi phút Linux Server đều hoạt động nhu sau:

Trong server Linux gõ lệnh: crontab -e

Thêm file cấu hình cron dé server luôn chạy: * * * * * ed

/var/www/KLTN_MinhNhut/ProjectLaravel && php artisan schedule:run

@ Edit this file to introduce tasks to be run by cron.

Each task to run has to be defined through a single line indicating with different fields when the task will be run and what command to run for the task

To define the time you can provide concrete values for minute (m), hour (h), day of month (dom), month (mon), and day of week (dow) or use '*' in these fields (for 'any').#

Notice that tasks will be started based on the cron's system daemon's notion of time and timezones.

Output of the crontab jobs (including errors) is sent through email to the user the crontab file belongs to (unless redirected).

For example, you can run a backup of all your user accounts at 5 a.m every week with:

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

For more information see the manual pages of crontab(5) and cron(8) h dom mon dow command

* * * cd /var/www/KLTN_MinhNhut/ProjectLaravel && php artisan schedule:run >>

Hình 3.16 File cấu hình crontab

Kiểm tra Crontab đã hoạt động hay không gõ lệnh crontab -] root@CloudServer_4d49:/var/www/KLTN_MinhNhut# crontab -L

Edit this file to introduce tasks to be run by cron.

Each task to run has to be defined through a single line indicating with different fields when the task will be run and what command to run for the task

To define the time you can provide concrete values for minute (m), hour (h), day of month (dom), month (mon), and day of week (dow) or use '*' in these fields (for 'any').#

Notice that tasks will be started based on the cron's system daemon's notion of time and timezones.

Output of the crontab jobs (including ) is sent through email to the user the crontab file belongs to (unless redirected).

For more information see the manual pages of crontab(5) and cron(8)

HRHEEEHEEHEEEREHEEREEHEEEREEHEEEHEEEE SE mh dom mon dow command

* * * * * cd /var/www/KLTN_MinhNhut/ProjectLaravel && php artisan schedule:run >>

Hinh 3.17 Danh sach cac crontab dang chay trong server Linux

Kiểm tra log Crontab: grep CRON /var/log/syslog

3.4 Pharse 4 — Xây dựng giao diện và giao tiếp API

Màn hình tong quan trang web © Manycoins Paice —

History Price TM Graph Chart Preding Closing Price 0.

As the concept of the "integrated" process presented, it is the process of taking the difference with a difference of order d, e.g I(1) = x;— x¿¡ And I(d) written by as follows:

The ARIMA process is carried out according to the Box—Jenkins method as follows:

Return the time series to the stationary series

LSTM model (Long Short Term Memory)

That was the traditional neural network's inability to remember previous periods which causes its drawback, with time series models the retention of memory was vital to the values at the previous point in time to find the pattern of the time series Since then, a recurrent neural network (RNN) was born to solve this problem The architecture of a simple RNN is shown as follows:

Recurrent Neural Networks have loops [7]

With The detail architecture of a simple RNN is shown as follows:

A recurrent neural network and the unfolding in time of the computation involved in its forward computation [8]

Natural RNNs cannot be learned over long periods of time Theoretically, RNN can solve the problem of long-term dependencies by adding parameters, but RNN cannot learn these parameters through research [9] Fortunately, the LSTM network is a special kind of RNN and solves the issue of long-term dependencies A LSTM block [10] includes indicators:

LSTM block [9] outputs: Nonlinearities: Vector operations:

Memory from Output of Hyperbolic | 4 | Elementwise previous block current block tangent Summation /

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

HÌNH ẢNH LIÊN QUAN

Hình 1.5 Kiến trúc hệ thống - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 1.5 Kiến trúc hệ thống (Trang 24)
Hình 2.2 Thành phần xu thế (T) 2.1.2.2. Thành phần mùa vụ (S) - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.2 Thành phần xu thế (T) 2.1.2.2. Thành phần mùa vụ (S) (Trang 26)
Hình 2.10 Phân tích bài toán SVM trên không gian 2 chiều - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.10 Phân tích bài toán SVM trên không gian 2 chiều (Trang 36)
Hình 2.12 Dữ liệu 2 chiều không có Linearly Separable - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.12 Dữ liệu 2 chiều không có Linearly Separable (Trang 38)
Hình 2.21 Ham chi phí trong không gian 3 chiều - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.21 Ham chi phí trong không gian 3 chiều (Trang 45)
Hình 2.23 Recurrent Neural Network đơn giản hóa - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.23 Recurrent Neural Network đơn giản hóa (Trang 49)
Hình 2.26 Forget Gate - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.26 Forget Gate (Trang 50)
Bảng 2.4 Ví dụ về thuật toán Q-Learning - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Bảng 2.4 Ví dụ về thuật toán Q-Learning (Trang 53)
Hình 2.31 Mô hình lai giữa Linear Model va Non-Linear Model - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 2.31 Mô hình lai giữa Linear Model va Non-Linear Model (Trang 58)
Hình 3.2 Trang Web dùng dé download dữ liệu Ethereum - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 3.2 Trang Web dùng dé download dữ liệu Ethereum (Trang 59)
Hình 3.9 Usecase tổng quan hệ thống dự báo và khuyến nghị BTC và ETH Đặc tả Usecase tổng quan - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 3.9 Usecase tổng quan hệ thống dự báo và khuyến nghị BTC và ETH Đặc tả Usecase tổng quan (Trang 65)
Bảng 3.7 Usecase lấy dữ liệu mới Tên Usecase: Lấy dữ liệu mới Mã Ủsecase: UC03 - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Bảng 3.7 Usecase lấy dữ liệu mới Tên Usecase: Lấy dữ liệu mới Mã Ủsecase: UC03 (Trang 67)
Hình 3.18 Màn hình tổng quan Bitcoin Page - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 3.18 Màn hình tổng quan Bitcoin Page (Trang 78)
Hình 3.20 Man hình xem lich sử gia dang bang - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 3.20 Man hình xem lich sử gia dang bang (Trang 79)
Hình 3.22 Màn hình khuyến nghị hành động - Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng hệ thống dự báo giá và khuyến nghị giao dịch mua bán tiền mã hóa
Hình 3.22 Màn hình khuyến nghị hành động (Trang 81)

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

TÀI LIỆU LIÊN QUAN