Trong lĩnh vực học máy, cây quyết định là một kiểu mơ hình dự báo, nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng. Mỗi nút trong tương ứng với một biến, đường nối giữa nĩ với nút con của nĩ thể hiện giá trị cụ thể cho biến đĩ. Mỗi nút lá đại diện cho giá trị dự đốn của biến mục tiêu, cho trước các giá trị dự đốn của các biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đĩ. Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định.
Cây quyết định là một cây phân cấp cĩ cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật. Các thuộc tính của đối tượng (ngoại trừ thuộc tính phân lớp) cĩ thể thuộc các kiểu dữ liệu khác nhau (Binary, Nominal, ordinal, quantitative values) trong khi đĩ thuộc tính phân lớp phải cĩ kiểu dữ liệu là Binary hoặc Ordinal.
Tĩm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp của nĩ, cây quyết định sẽ sinh ra các luật để dự đốn lớp của các đối tượng chưa biết.
So với các phương pháp KPDL khác, cây quyết định là một trong những hình thức mơ tả dữ liệu tương đối đơn giản, trực quan, dễ hiểu đối với người dùng nhưng lại hiệu quả nên được sử dụng nhiều. Trong những năm qua, nhiều mơ hình phân lớp dữ liệu đã được các nhà khoa học trong nhiều lĩnh vực khác nhau đề xuất như mạng notron, mơ hình thống kê tuyến tính bậc 2, cây quyết định, mơ hình di truyền... Trong số những mơ hình đĩ, cây quyết định được đánh giá là một cơng cụ mạnh, phổ biến, đặt biệt là thích hợp cho DM nĩi chung và cho phân lớp dữ liệu nĩi riêng.
2.4.2. Mơ hình Random Forest
Để xử lý dữ liệu huấn luyện và xây dựng mơ hình nhận biết hành vi ngã cho máy học, tơi đề xuất sử dụng Random Forest – một thuật tốn data mining đơn giản, dễ hiểu và mang lại hiệu suất cao cho những dạng bài tốn nhận biết hành vi.
Random Forest (rừng ngẫu nhiên) là thuật tốn phân lớp các thuộc tính của dữ liệu. thuật tốn này là một trong những cơng trình nghiên cứu của Leo Breiman – Chuyên gia thống kê tại Đại học California, Berkeley. Đây là thuật tốn học cĩ giám sát sử dụng các cây (tree) làm nền tảnh dự đốn, nĩi cách khác Random Forest là một tập hợp các Decision Tree (Cây quyết định), mỗi cây sẽ được chọn các giá trị là các thuộc tính ngẫu nhiên.
Random Forest rất đơn giản và linh hoạt, cĩ thể áp dụng cho cả bài tốn Phân loại (Classification) và bài tốn Hồi quy (Regression). Do cũng là một trong chuỗi thuật tốn Decision tree nên ta cĩ thể dùng Random Forest để xây dựng một mơ hình dự đốn hành vi. Thuật tốn sẽ sinh ra các cây với các nút (internal node) tương ứng với một biến, các nút thấp hơn là giá trị dự đốn của biến mục tiêu; sau khi lựa chọn biến thuật tốn sẽ nhận biết biến đĩ dựa trên thuộc tính của nĩ và đưa ra câu hỏi phù hợp nhất, câu hỏi tốt sẽ đưa ra 2 nhánh là 2 nốt thấp hơn, rồi lại dựa vào thuộc tính để hỏi tiếp. Khi khơng cịn đưa ra được câu hỏi nữa thuật tốn sẽ dừng lại, tới đây quá trình xây dựng cây quyết định đã xong, bước tiếp theo sẽ sử dụng chúng để đưa ra kết quả phù hợp với yêu cầu đưa ra ban đầu.
Thuật tốn cĩ lợi thế khi sử dụng rất nhiều các cây quyết định độc lập, đảm bảo tính khách quan cho các kết quả dự đốn. Khi kết thúc quá trình bỏ phiếu cho các kết quả, kết quả nào cĩ số cây dự đốn cao nhất sẽ được chọn. ngồi ra để đảm bảo kết quả là khách quan nhất, thuật tốn sẽ tự động thay đổi đối tượng một cách ngẫu nhiên, xĩa ngẫu nhiên và nhân lên ngẫu nhiên một số đối tượng khác. Quá trình đĩ cĩ tên là Bootstrapping, ngồi ra nếu câu hỏi tốt nhất được thuật tốn đưa ra mà ta khơng sử dụng chúng thì sẻ bị bỏ qua và khơng được tạo cây, quá trình tiếp theo này gọi là Attibute sampling.
ta tính tốn ra được cách chia các thuộc tính về các nốt một cách tối ưu nhất và cứ lặp lại bước chia đĩ đến hết ‘k’ feartures. Sau đĩ lặp lại lần lượt cả quá trình trên để tạo ra 1 Forest với ‘n’ cây.
Để sử dụng mơ hình vừa rồi cho tập test ta đưa bộ dữ liệu test vào mơ hình cây vừa tạo để dự đốn kết quả đầu ra, tính số vote của từng kết quả và lấy kết quả cĩ số vote cao nhất làm kết quả của mơ hình.
Random Forest là một phương pháp Supervised Learning do vậy cĩ thể xử lý được các bài tốn về Classification (phân loại) và Regression (dự báo về các giá trị). Trong khuơn khổ báo cáo tơi sử dụng phương pháp Regression (dự báo về các giá trị) để thực hiện dự đốn.
Kết luận chương 2
Chương 2 đã trình bày tương đối đầy đủ về khai phá dữ liệu (Data mining), các kỹ thuật trong khai phá dữ liệu, các phương pháp để xử lí dữ liệu cũng như các loại thơng số liên quan. Nêu lên khái niệm của tập dữ liệu thu thập cũng như nghiên cứu chi tiết về thuật tốn Random Forest cũng như cách thức áp dụng vào bài tốn.
CHƯƠNG 3
PHƯƠNG PHÁP GIẢI QUYẾT Mơ tả bài tốn
Dự báo là một nhu cầu khơng thể thiếu cho những hoạt động của con người trong bối cảnh bùng nổ thơng tin. Dự báo sẽ cung cấp những cơ sở cần thiết cho các hoạch định, và cĩ thể nĩi riêng nếu khơng cĩ khoa học dự báo thì những định hướng tương lai của con người vạch ra sẽ khơng cĩ sự thuyết phục.
Bài tốn phân tích xu thế thị trường tiền điện tử chính là thực hiện dự báo xu hướng giá cả các đơng coin trong tương lai dựa vào thơng tin thu thập được trong quá khứ và hiện tại. Đã cĩ nhiều nhĩm nghiên cứu về bài tốn này, đưa ra những mơ hình dự đốn khác nhau và đạt được nhiều kết quả khả quan.
3.1. Quy trình tổng thể
Tơi áp dụng các kiến thức đã nghiên cứu ở trên để tiến hành dự đốn thị trường chứng khốn theo mơ hình khai khá dữ liệu – Random Forest để dự đốn.
3.2. Quy trình giải quyết bài tốn Mơ tả sơ bộ về dữ liệu Bitcoin Mơ tả sơ bộ về dữ liệu Bitcoin
Đối tượng mà báo cáo của tơi nghiên cứu chính là xu thế giá thị trường tiền điện tử. Cụ thể là giá Bitcoin thu thập từ trang cryptodatadownload.com từ lúc bắt đầu list trên sàn Binance để tiến hành dự đốn.
Đầu vào: Tập dữ liệu khơng nhãn liên quan đến giá của Bitcoin. Chia dữ liệu thanh
2 tập train và test, với tập train là dữ liệu huấn luyện và test là tập kiểm thử.
Đầu ra: Mơ hình học máy, sao cho mơ hình được đánh giá, kiểm thử với hiệu quả
cao, dữ liệu giá Bitcoin dự đốn.
Hệ thống dự đốn gồm 2 pha:
• Pha thứ nhất: Quá trình training
Bước 1: Thu thập dữ liệu.
Bước 2: Tiền xử lý dữ liệu. Bước này dùng các phương pháp xử lý dữ liệu, tối ưu
dữ liệu, tối ưu tham số của phương pháp cửa sổ trượt, độ dài của cửa sổ(W) và độ phủ của cửa sổ Oz.
Bước 3: Xây dựng tập dữ liệu huấn luyện và tập dữ liệu kiểm chứng thỏa mãn với
W và Oz đã tối ưu ở trên, gán nhãn cho dữ liệu.
Bước 4: Huấn luyện mơ hình.
Bước 5: Tối ưu hĩa tham số mơ hình.
• Pha thứ hai: Quá trình testing
Bước 1: Thu thập dữ liệu.
Bước 2: Tiền xử lý dữ liệu.
Bước 3: Xây dựng tập dữ liệu kiểm thử cho mơ hình, dữ liệu này sẽ khơng được
gán nhãn.
Bước 4: Kết hợp với mơ hình huấn luyện ở pha 1, đưa ra được kết quả chính xác
nhất cĩ thể.
Việc dự báo thị trường tiền điện tử bao gồm dự đốn định tính cho biết xu hướng của thị trường tăng hay giảm) và dự báo định lượng (dự đốn giá trị mỗi Bitcoin là bao nhiêu). Các kết quả đạt được sẽ làm cơ sở cho những chiến lược đầu tư của các nhà đầu tư.
Các phương tiện, hành động khác nhau cĩ tính chu kỳ và đặc điểm khác nhau nên sử dụng các kích thước cửa sổ khác nhau nhằm tăng hiệu quả phát hiện là thực sự cần thiết so với việc chỉ dùng một kích thước cửa sổ cho tất cả các loại phương tiện hay tất
cả các loại hành động giao thơng. Giải pháp được đưa ra đĩ là sử dụng kích thước cửa sổ phù hợp được lựa chọn dựa trên độ đo Accuracy (ACC) của mơ hình.
3.2.1. Pha 1- Quá trình training
3.2.1.1. Thu thập dữ liệu
Dữ liệu về giá Bitcoin thu thập từ trang cryptodatadownload.com từ lúc bắt đầu list trên sàn Binance từ ngày 17/8/2017 đến ngày 1/9/2020 để tiến hành dự đốn. Dữ liệu bao gồm các trường: Date, Open, high, low, close, Volume BTC, Volume USDT
Bảng 3.1: Dữ liệu giá Bitcoin
3.2.1.2. Quá trình tiền xử lý dữ liệu
Trong khai phá dữ liệu, quá trình tiền xử lý dữ liệu là rất quan trọng. Quá trình tiền xử lý dữ liệu giúp cho việc chuẩn hĩa dữ liệu trước khi đưa vào sử dụng. Việc chuẩn hĩa dữ liệu nhằm loại bỏ tính khơng minh bạch của thị trường tiền điện tử.[9]
Chuẩn bị dữ liệu là một bước quan trọng trong khai phá dữ liệu, dữ liệu được chuẩn bị tốt sẽ giúp hệ thống thực hiện tốt hơn, hiệu quả hơn. Chuẩn bị dữ liệu thường là một bước bắt buộc sử dụng để chuyển đổi dữ liệu vơ dụng thành dữ liệu mới phù hợp với tiến trình khai phá dữ liệu. Trước hết, nếu dữ liệu khơng được chuẩn bị, các thuật tốn khai phá dữ liệu cĩ thể khơng nhận dạng được dữ liệu để hoạt động hoặc sẽ báo lỗi trong quá trình thực hiện. Trong trường hợp tốt nhất, thuật tốn sẽ làm việc, nhưng kết quả được cung cấp sẽ khơng cĩ ý nghĩa hoặc sẽ khơng cĩ tính chính xác. Do đĩ cần nghiên cứu và áp dụng các kỹ thuật tiền xử lý dữ liệu nhằm nâng cao hiệu quả phân tích. Bước này kiểu tra dữ liệu cĩ trống, dữ liệu cĩ đúng định dạng.
• Lọc dữ liệu:
Với mỗi cửa sổ dữ liệu thu được các kỹ thuật tiền xử lý được áp dụng với mong muốn thu được dữ liệu tốt hơn cho hệ thống nhận dạng.
Trong hệ thống dự đốn giá, cửa sổ dữ liệu được khảo sát nhằm chọn ra kích thước cửa sổ(W) phù hợp với bộ dữ liệu giá của Bitcoin mục đích nâng cao kết quả dự đốn.
Ta tiến hành song song việc tìm kích thước cửa sổ đơng thời tìm độ chồng dữ liệu (OZ) sao cho kết quả dự đốn được nâng cao.
Hình 3.2: Cửa sổ dữ liệu
Trong bước này, báo cáo tập trung tối ưu hĩa bằng cách dùng phương pháp cửa sổ trượt. Quá trình xử lý dữ liệu được minh họa qua hình dưới đây:
Hình 3.3: Mơ hình tối ưu thơng số cửa sổ
Sau quá trình này ta sẽ tìm được ra thơng số: Độ dài cửa sổ(W) và độ phủ của cửa sổ (Oz) với Acc (Accuracy) lớn nhất.
3.2.1.3. Xây dựng bộ dữ liệu.
Sau khi đã tìm được W và Oz ta tiến hành xây dựng mơ hình với độ dài của cửa sổ và độ phủ đã tối ưu ở quá trình xử lý dữ liệu.
Tiến hành chia bộ dữ liệu training thành 2 phần: dữ liệu huấn luyện và dữ liệu kiểm thử (cĩ dán nhãn)
3.2.1.4. Huấn luyện mơ hình
Đưa bộ dữ liệu sau khi đã xây dựng vào mơ hình để tiến hành huấn luyện với bộ tham số mặc định của mơ hình
3.2.1.5. Tối ưu hĩa tham số mơ hình
Cuối cùng thực hiện phân lớp dữ liệu kiểm thử. Đưa dữ liệu kiểm thử vào mơ hình đã xây dựn. Kết quả được so sánh với kết quả kiểm thử cĩ dán nhãn để đánh giá độ chính xác của mơ hình. Trong mơ hình này, thực hiện đánh giá hệ thống thơng qua độ đo Accuracy (Acc) để đánh giá độ chuẩn xác của dự đốn so với tập Validate.
Ta thay đổi các thơng số của mơ hình Random Forest: • n_estimators: số lượng dữ liệu
• max_depth: Độ sâu tối đa của cây quyết định. Mơ hình tối ưu tham số Random Forest:
Hình 3.4: Mơ hình tối ưu tham số cho Random Forest
3.2.2. Pha 2- Tối ưu hĩa tham số của mơ hình được kết quả tối ưu nhất
3.2.2.1. Thu thập dữ liệu
Dữ liệu được thu thập như ở pha 1.
3.2.2.2. Tiền xử lý dữ liệu
Dữ liệu được xử lý như ở pha 1 bao gơm các bước như lọc dữ liệu, lấy kết quả độ dài cửa sổ và độ chồng cửa sổ để xây dựng mơ hình.
3.2.2.3. Xây dựng bộ dữ liệu test.
Dữ liệu được xây dựng như ở pha 1. Bộ dữ liệu test khơng được dán nhãn.
Kết luận Chương 3
Trong Chương 3 báo cáo đã trình bày mơ hình dự đốn giá Bitcoin dựa trên học máy bằng cách sử dụng phương pháp cửa sổ trượt và tối ưu tham số của mơ hình Random Forest.
Quy trình giải quyết bài tốn gồm 2 pha: (i) Pha 1- Quá trình training (ii) Pha 2- Quá trình testing. Tiếp đến báo cáo, thực hiện đánh giá hệ thống thơng qua độ đo dựa trên độ chính xác Accuracy để đưa ra được mơ hình tối ưu nhất.
Nội dung chương tiếp theo trình bày về kết quả thực nghiệm và đánh giá phương pháp đề xuất.
CHƯƠNG 4
THỰC NGHIỆM VÀ KẾT QUẢ
Trong chương này, báo cáo chạy thực nghiệm cho mơ hình ARIMA và Random Forest. Báo cáo tiến hành thực nghiệm với bộ dữ liệu Bitcoin và sử dụng phương pháp cửa sổ trượt xây dựng bộ dữ liệu đưa vào mơ hình Random Forest và tối ưu các tham số để đưa ra kết quả tối ưu nhất.
Báo cáo này tiến hành ba thực nghiệm tương ứng với ba phương án dữ liệu như sau: • Dữ liệu Bitcoin qua quá trình tiền sử lý dữ liệu cơ bản đưa vào mơ hình ARIMA để đưa ra dự đốn.
• Dữ liệu Bitcoin qua quá trình tiền sử lý dữ liệu cơ bản đưa vào mơ hình Random Forest để đưa ra kết quả dự đốn.
• Dữ liệu Bitcoin qua quá trình tiền xử lý dữ liệu bằng phương pháp cửa sổ trượt, sau đĩ tối ưu tham số của thuật tốn Random Forest để đưa ra kết quả.
4.1. Mơi trường thực nghiệm 4.1.1. Phần cứng 4.1.1. Phần cứng
Cấu hình phần cứng được s dụng trong báo cáo để thực nghiệm được thể hiện trong Bảng 4.1 dưới đây:
Bảng 4.1: Cấu hình phần cứng
Thành phần Chỉ số
CPU Intel Core i5 2.50 GHz
RAM 8.00 GB
Operating system Windown10-64 bit
4.1.2. Phần mềm
Danh sách phần mềm sử dụng trong thi hành thực nghiệm được mơ tả trong Error! Reference source not found. dưới đây:
Bảng 4.2 Các cơng cụ phần mềm hỗ trợ
STT Tên phần mềm Nguồn Chức năng
1 Python 3.7.1 https://www.python.org/
2 Pycharm http://www.jetbrain.com/
pycharm/dowload
Mơi trường để viết chương trình trên ngơn
ngữ python 3 Module tiền xử lý tập
dữ liệu đầu vào của mơ hình
Tự xây dựng bằng ngơn ngữ Python
Tiền xử lý dữ liệu
4 scikit-learn scikit-learn.org/stable Thư viện học máy để sử dụng các bộ phân lớp 5 Matplotlib 3.0.3 https://matplotlib.org/ Thư viện trực quan hĩa
dữ liệu trong Python
4.2. Tiền xử lý dữ liệu
Trong khai phá dữ liệu, quá trình tiền xử lý dữ liệu là rất quan trọng. Quá trình tiền xử lý dữ liệu giúp cho việc chuẩn hĩa dữ liệu trước khi đưa vào sử dụng. Việc chuẩn hĩa dữ liệu nhằm loại bỏ tính khơng minh bạch của thị trường tiền điện tử.
Chuẩn bị dữ liệu là một bước quan trọng trong khai phá dữ liệu, dữ liệu được chuẩn bị tốt sẽ giúp hệ thống thực hiện tốt hơn, hiệu quả hơn. Chuẩn bị dữ liệu thường là một bước bắt buộc sử dụng để chuyển đổi dữ liệu vơ dụng thành dữ liệu mới phù hợp với