TRƯỜNG ĐẠI HỌC ĐIỆN LỰCKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN KHAI PHÁ DỮ LIỆU ĐỀ TI: SỬ DỤNG THUẬT TOÁN RỪNG NGẪU NHIÊN RANDOME FOREST DỰ ĐOÁN KẾT QUẢ TRẬN BÓNG ĐÁ Sinh vi
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN KHAI PHÁ DỮ LIỆU
ĐỀ TI: SỬ DỤNG THUẬT TOÁN RỪNG NGẪU NHIÊN (RANDOME FOREST) DỰ ĐOÁN KẾT QUẢ TRẬN BÓNG ĐÁ
Sinh viên thực hiện : NGUYỄN THỊ PHƯƠNG MAI
: NGUYỄN TRUNG NGUYÊN Giảng viên hướng dẫn : NGUYỄN THỊ THANH TÂN
Hà Nội, tháng 05 năm 2023
Trang 2PHIẾU CHẤM ĐIỂM
Sinh viên thực hiện:
STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký
1 Nguyễn Thị Phương
Mai
Nghiên cứu tập dữ liệu,cải thiện độ chính xáccho mô hình dự đoán
2 Nguyễn Trung
Nguyên
Nghiên cứu tập dữ liệu,xây dựng mô hình dựđoán
Giảng viên chấm:
Giảng viên chấm 1 :
Giảng viên chấm 2 :
Trang 3MỤC LỤC
DANH MỤC HÌNH ẢNH 0
LỜI NÓI ĐẦU 1
CHƯƠNG 1: TỔNG QUAN 2
1.1 Giới thiệu về khai phá dữ liệu 2
1.1.1 Diễn giải về khai phá dữ liệu 2
1.1.2 Các phương thức khai phá dữ liệu 3
1.1.3 Một số tính năng nổi bật của Data mining 3
1.1.4 Các công cụ khai phá dữ liệu 4
1.1.5 Quy trình khai phá dữ liệu 5
1.1.6 Ứng dụng của khai phá dữ liệu 5
1.2 Tiền xử lý 6
1.3 Giới thiệu bài toán 6
.CHƯƠNG 2: THUẬT TOÁN RANDOM FOREST TRONG BÀI TOÁN PHÂN LỚP 6
2.1 Giới thiệu về thuật toán Random Forest 7
2.2 Nguyên lý hoạt động 8
2.3 Xây dựng thuật toán Random Forest 9
2.4 Ưu/Nhược điểm của thuật toán Random Forest 11
CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN RANDOM FOREST ĐỂ DỰ ĐOÁN KẾT QUẢ TRẬN BÓNG ĐÁ 12
3.1 Phát biểu bài toán 12
3.2 Mô tả dữ liệu 12
3.2.1 Tập dữ liệu Matches Dataset 12
3.2.2 Mô tả thông tin trong tập dữ liệu Matches Dataset 13
3.3 Tiền xử lý dữ liệu 17
3.4 Huấn luyện và tìm ra các siêu tham số mô hình Random Forest 18
Trang 43.4.1 Siêu tham số cho mô hình Random Forest 18
3.4.2 Huấn luyện và tìm siêu tham số của mô hình KNN với Python 19
3.4.3 Cải thiện độ chính xác cho mô hình 20
3.5 Dự đoán và đưa ra kết quả thực nghiệm 21
KẾT LUẬN 22
TÀI LIỆU THAM KHẢO 23
Trang 5DANH MỤC HÌNH ẢNH
Hình 1 1 Giới thiệu về Data mining (khai phá dữ liệu) 2
Hình 1 2 Quy trình khai phá dữ liệu 5
Hình 2 1 Mô tả xây dựng các cây (Decision Tree) cho việc dự đoán 7
Hình 2 2 Mô tả các cây sau khi dự đoán 8
Hình 2 3 Nguyên lý hoạt động thuật toán Random Forest 9
Hình 2 4 Ví dụ Bootstrapping dữ liệu 10
Hình 3 1 Preview dữ liệu dạng thô 12
Hình 3 2 Tập dữ liệu trong bộ dữ liệu Matches Dataset 13
Hình 3 3 Thông tin dữ liệu Matches Dataset 13
Hình 3 4 Thông tin số lượng trận thi đấu của mỗi team trong Matches Dataset14 Hình 3 5 Đếm số lượng trận thi đấu mỗi tuần trong Matches Dataset 15
Hình 3 6 Đếm số lượng trận thi đấu trong Matches Datase 16
Hình 3 7 Tiền xử lý dữ liệu 17
Hình 3 8 Tiền xử lý dữ liệu (tiếp) 18
Hình 3 9 Code tìm ra tham số phù hợp nhất cho mô hình 19
Hình 3 10 Áp dụng các tham số vào mô hình dự đoán 20
Hình 3 11 Code tính thông số trun bình 3 trận đấu gần nhất 21
Hình 3 12 Code kết hợp các tham số mới vào mô hình ban đầu 21
Hình 3 13 Kết quả dự đoán các trận đấu gần nhất sắp diễn ra 21
Trang 6LỜI NÓI ĐẦUPhân tích dự có thể hỗ trợ các con người quản lý rủi ro cũng như lập kếhoạch và tối ưu hóa mọi hoạt động của họ Nó không chỉ giúp dự đoán cácvần để trong tương lai mà còn có thể hỗ trợ rất nhiều trong việc gán nhãn bịmất hoặc phân loại đầu ra dựa trên một tập đầu vào có sẵn Chính vì vậy trongkhuôn khổ môn học Khai Phá Dữ Liệu do giảng viên Nguyễn Thị Thanh Tânhướng dẫn, nhóm chung em quyết định chọn đề tài “Sử dụng thuật toán rừngngẫu nhiên (randome forest) dự đoán kết quả trận bóng đá” trong báo cáo cuốimôn
Mục đích của việc nghiên cứu này là để tìm hiểu và vận dụng nhữngkiến thức đã học vào những vấn để thực tế Do khuôn khổ môn học có hạnnên chúng em chưa thể thực hiện nghiên cứu một cách kĩ càng nhất nên cònnhiều thiếu sót Nhóm em rất mong nhận được ý kiến phản hồi từ thầy cô
Em xin chân thành cảm ơn
6
Trang 7CHƯƠNG 1: TỔNG QUAN1.1 Giới thiệu về khai phá dữ liệu
Khai phá dữ liệu (data mining): Là quá trình tính toán để tìm ra cácmẫu trong các bộ dữ liệu lớn liên quan đến các phương pháp tại giao điểm củamáy học, thống kê và các hệ thống cơ sở dữ liệu Đây là một lĩnh vực liênngành của khoa học máy tính… Mục tiêu tổng thể của quá trình khai thác dữliệu là trích xuất thông tin từ một bộ dữ liệu và chuyển nó thành một cấu trúc
dễ hiểu để sử dụng tiếp Ngoài bước phân tích thô, nó còn liên quan tới cơ sở
dữ liệu và các khía cạnh quản lý dữ liệu, xử lý dữ liệu trước, suy xét mô hình
và suy luận thống kê, các thước đo thú vị, các cân nhắc phức tạp, xuất kết quả
về các cấu trúc được phát hiện, hiện hình hóa và cập nhật trực tuyến Khaithác dữ liệu là bước phân tích của quá trình "khám phá kiến thức trong cơ sở
dữ liệu" hoặc KDD
Hình 1 1 Giới thiệu về Data mining (khai phá dữ liệu)
1.1.1 Diễn giải về khai phá dữ liệu
Khai phá dữ liệu là một bước của quá trình khai thác tri thức
(Knowledge Discovery Process), bao gồm:
- Xác định vấn đề và không gian dữ liệu để giải quyết vấn đề (Problem understanding and data understanding).
7
Trang 8- Chuẩn bị dữ liệu (Data preparation), bao gồm các quá trình làm sạch
dữ liệu (data cleaning), tích hợp dữ liệu (data integration), chọn dữliệu (data selection), biến đổi dữ liệu (data transformation).
- Khai thác dữ liệu (Data mining): xác định nhiệm vụ khai thác dữ liệu
và lựa chọn kỹ thuật khai thác dữ liệu Kết quả cho ta một nguồn tri thức thô.
- Đánh giá (Evaluation): dựa trên một số tiêu chí tiến hành kiểm tra và
lọc nguồn tri thức thu được.
- Triển khai (Deployment).
Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bướcđầu tiên đến bước cuối cùng mà là một quá trình lặp và có quay trở lại cácbước đã qua
1.1.2 Các phương thức khai phá dữ liệu
- Phân loại (Classification): Là phương pháp dự báo, cho phép phân loạimột đối tượng vào một hoặc một số lớp cho trước
- Hồi qui (Regression): Khám phá chức năng học dự đoán, ánh xạ mộtmục dữ liệu thành biến dự đoán giá trị thực
- Phân nhóm (Clustering): Một nhiệm vụ mô tả phổ biến trong đó người
ta tìm cách xác định một tập hợp hữu hạn các cụm để mô tả dữ liệu
- Tổng hợp (Summarization): Một nhiệm vụ mô tả bổ sung liên quan đếnphương pháp cho việc tìm kiếm một mô tả nhỏ gọn cho một bộ (hoặctập hợp con) của dữ liệu
- Mô hình ràng buộc (Dependency modeling): Tìm mô hình cục bộ mô tảcác phụ thuộc đáng kể giữa các biến hoặc giữa các giá trị của một tínhnăng trong tập dữ liệu hoặc trong một phần của tập dữ liệu
- Dò tìm biến đổi và độ lệch (Change and Deviation Dectection): Khámphá những thay đổi quan trọng nhất trong bộ dữ liệu
1.1.3 Một số tính năng nổi bật của Data mining
Đưa ra các mẫu dự đoán theo xu hướng trong dữ liệu
- Tính toán kết quả đã phân tích
- Tạo thông tin phản hồi để phân tích
- Tập trung phân tích các dữ liệu lớn
- Phân chia cụm dữ liệu một cách trực quan
8
Trang 91.1.4 Các công cụ khai phá dữ liệu
RapidMiner: Công cụ đầu tiên phải kể tới đó là RapidMiner Đây làcông cụ khai phá dữ liệu khá phổ biến hiện nay Được viết trên nền tảngJAVA nhưng không yêu cầu mã hóa để vận hành Ngoài ra, nó còn cung cấpcác chức năng khai thác dữ liệu khác nhau như tiền xử lý dữ liệu, biểu diễn dữliệu, lọc, phân cụm
Weka: Công cụ được cho ra đời tại Đại học Wichita là một phần mềmkhai thác dữ liệu mã nguồn mở Tương tự như RapidMiner, công cụ nàykhông yêu cầu mã hóa và sử dụng GUI đơn giản
Sử dụng Weka, người dùng có thể gọi trực tiếp các thuật toán học máyhoặc nhập chúng bằng mã Java Weka được trang bị đa dạng chức năng nhưtrực quan hóa, tiền xử lý, phân loại, phân cụm
Knime: Với khả năng hoạt động vô cùng mạnh mẽ tích hợp nhiều thànhphần khác nhau của học máy và khai phá dữ liệu để cung cấp một nền tảng.KNime hỗ trợ người dùng rất nhiều trong việc xử lý và phân tích dữ liệu, tríchxuất, chuyển đổi và tải dữ liệu
Apache Mahout: Từ nền tảng Big Data Hadoop, người ta đã cho cho rađời thêm Apache Mahout với mục đích giải quyết nhu cầu ngày càng tăng vềkhai phá dữ liệu và hoạt động phân tích trong Hadoop Nó được trang bịnhiều chức năng học máy khác nhau như phân loại, hồi quy, phân cụm Oracle Data Mining: Khi sử dụng Oracle Data Mining nó cho phépngười dùng thực hiện khai phá dữ liệu trên cơ sở dữ liệu SQL để trích xuấtcác khung hình và biểu đồ Các phân tích sẽ hiển thị một cách trực quan giúpngười dùng dễ dàng đưa ra dự đoán cho kế hoạch tương lai
TeraData: TeraData cung cấp dịch vụ kho chứa các công cụ khai phá
dữ liệu Nhờ khả năng thông minh được trang bị, công cụ có thể dựa trên tầnsuất sử dụng dữ liệu của người dùng và thực hiện việc cho phép truy cậpnhanh hay chậm
Với một dữ liệu bạn thường xuyên cần sử dụng, TeraData sẽ cho phéptruy cập nhanh hơn là một dữ liệu ít được sử dụng Đối với dữ liệu, nhập kho
là một yêu cầu cần thiết
Orange: Công cụ được lập trình bằng Python với giao diện trực quan vàtương tác dễ dàng Phần mềm Orange được biết đến bởi việc tích hợp cáccông cụ khai phá dữ liệu và học máy thông minh, đơn giản
9
Trang 101.1.5 Quy trình khai phá dữ liệu
Bước 1: Làm sạch dữ liệu – Trong bước này, dữ liệu được làm sạch saocho không có tạp âm hay bất thường trong dữ liệu
Bước 2: Tích hợp dữ liệu – Trong quá trình tích hợp dữ liệu, nhiềunguồn dữ liệu sẽ kết hợp lại thành một
Bước 3: Lựa chọn dữ liệu – Trong bước này, dữ liệu được trích xuất từ
Hình 1 2 Quy trình khai phá dữ liệu
1.1.6 Ứng dụng của khai phá dữ liệu
- Trong kinh doanh (business)
- Trong tài chính (finance) và tiếp thị bán hàng (sales marketing)
- Trong thương mại (commerce) và ngân hàng (bank)
- Trong bảo hiểm (insurance)
10
Trang 11- Trong khoa học (science) và y sinh học (biomedicine)
- Trong điều khiển (control) và viễn thông (telecommunication)
1.2 Tiền xử lý
Trong qui trình khai phá dữ liệu, công việc xử lý dữ liệu trước khi đưavào các mô hình là rất cần thiết, bước này làm cho dữ liệu có được ban đầuqua thu thập dữ liệu (gọi là dữ liệu gốc original data) có thể áp dụng được(thích hợp) với các mô hình khai phá dữ liệu (data mining model) cụ thể Cáccông việc cụ thể của tiền xử lý dữ liệu bao gồm những công việc như:
- Filtering Attributes: Chọn các thuộc tính phù hợp với mô hình
- Filtering samples: Lọc các mẫu (instances, patterns) dữ liệu cho môhình
- Clean data: Làm sạch dữ liệu như xóa bỏ các dữ liệu bất thường
- Transformation: Chuyển đổi dữ liệu cho phù hợp với các mô hình nhưchuyển đổi dữ liệu từ numeric qua nomial hay ordinal
- Discretization (rời rạc hóa dữ liệu): Nếu bạn có dữ liệu liên tục nhưngmột vài mô hình chỉ áp dụng cho các dữ liệu rời rạc (như luật kết hợpchẳn hạn) thì bạn phải thực hiện việc rời rạc hóa dữ liệu
1.3 Giới thiệu bài toán
- Bài toán:“ Sử dụng thuật toán rừng ngẫu nhiên (randome forest) dự đoán kết quả trận bóng đá ”
- Dữ liệu của bài toán: “ Matches.csv ” đây là tập dữ liệu về các trận đấutrong giải Premier League
- Bóng đá là môn thể thao được yêu thích trên khắp thế giới, và việc dựđoán kết quả trận đấu đã trở thành một chủ đề rất hấp dẫn trong cộngđồng yêu thể thao Để có thể dự đoán kết quả trận đấu một cách chínhxác, các nhà nghiên cứu và chuyên gia đã sử dụng nhiều phương pháp
và kỹ thuật khác nhau, trong đó thuật toán rừng ngẫu nhiên (randomforest) được xem là một trong những phương pháp rất hiệu quả
11
Trang 12- CHƯƠNG 2: THUẬT TOÁN RANDOM FOREST TRONG BÀI TOÁN PHÂN LỚP
2.1 Giới thiệu về thuật toán Random Forest
Random là ngẫu nhiên, Forest là rừng, nên ở thuật toán Random Forest sẽ xâydựng nhiều cây quyết định bằng thuật toán Decision Tree, tuy nhiên mỗi câyquyết định sẽ khác nhau (có yếu tố random) Sau đó kết quả dự đoán đượctổng hợp từ các cây quyết định
Ở bước huấn luyện thì sẽ xây dựng nhiều cây quyết định, các cây quyết định
có thể khác nhau
Hình 2 1 Mô tả xây dựng các cây (Decision Tree) cho việc dự đoán
Sau đó ở bước dự đoán, với một dữ liệu mới, thì ở mỗi cây quyết định sẽ đi từtrên xuống theo các node điều kiện để được các dự đoán, sau đó kết quả cuốicùng được tổng hợp từ kết quả của các cây quyết định
12
Trang 13Hình 2 2 Mô tả các cây sau khi dự đoán
Ví dụ như trên, thuật toán Random Forest có 6 cây quyết định, 5 cây dự đoán
1 và 1 cây dự đoán 0, do đó sẽ vote là cho ra dự đoán cuối cùng là 1
2.2 Nguyên lý hoạt động
Thuật toán hoạt động theo bốn bước:
1 Chọn các mẫu ngẫu nhiên từ tập dữ liệu đã cho
2 Thiết lập cây quyết định cho từng mẫu và nhận kết quả dự đoán từ mỗiquyết định cây
3 Hãy bỏ phiếu cho mỗi kết quả dự đoán
4 Chọn kết quả được dự đoán nhiều nhất là dự đoán cuối cùng
13
Trang 14Hình 2 3 Nguyên lý hoạt động thuật toán Random Forest
2.3 Xây dựng thuật toán Random Forest
Giả sử bộ dữ liệu của có n dữ liệu (sample) và mỗi dữ liệu có d thuộc tính(feature)
Để xây dựng mỗi cây quyết định sẽ làm như sau:
1 Lấy ngẫu nhiên n dữ liệu từ bộ dữ liệu với kĩ thuật Bootstrapping, haycòn gọi là random sampling with replacement Tức khi sample được 1
dữ liệu thì không bỏ dữ liệu đấy ra mà vẫn giữ lại trong tập dữ liệu banđầu, rồi tiếp tục sample cho tới khi sample đủ n dữ liệu Khi dùng kĩthuật này thì tập n dữ liệu mới có thể có những dữ liệu bị trùng nhau
14
Trang 15Thuật toán Random Forest sẽ bao gồm nhiều cây quyết định, mỗi cây đượcxây dựng dùng thuật toán Decision Tree trên tập dữ liệu khác nhau và dùngtập thuộc tính khác nhau Sau đó kết quả dự đoán của thuật toán RandomForest sẽ được tổng hợp từ các cây quyết định.
Khi dùng thuật toán Random Forest, cần để ý các thuộc tính như: số lượngcây quyết định sẽ xây dựng, số lượng thuộc tính dùng để xây dựng cây Ngoài
ra, vẫn có các thuộc tính của thuật toán Decision Tree để xây dựng cây như
độ sâu tối đa, số phần tử tối thiểu trong 1 node để có thể tách
15
Trang 162.4 Ưu/Nhược điểm của thuật toán Random Forest
Khả năng xử lý các giá trị thiếu: Random Forest có khả năng xử lý các giá trịthiếu trong dữ liệu một cách hiệu quả
Trang 17CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN RANDOM FOREST ĐỂ DỰ ĐOÁN KẾT QUẢ TRẬN BÓNG ĐÁ3.1 Phát biểu bài toán
Bóng đá là môn thể thao được yêu thích và theo dõi rộng rãi trên toànthế giới Việc dự đoán kết quả của các trận đấu bóng đá luôn là một chủ đềthú vị và được quan tâm Để giải quyết vấn đề này, các nhà khoa học và kỹ sư
đã sử dụng các phương pháp và thuật toán khác nhau để xử lý và dự đoán kếtquả bóng đá
Trong báo cáo này, chúng em tập trung vào việc sử dụng thuật toánphân lớp để dự đoán kết quả bóng đá Phân lớp là một loại bài toán trong lĩnhvực trí tuệ nhân tạo và máy học, nói chung và bao gồm việc phân loại các đốitượng vào các lớp khác nhau dựa trên các đặc trưng của chúng Dữ liệu được
sử dụng trong bài lấy từ trang: https://fbref.com/
Hình 3 1 Preview dữ liệu dạng thô
17
Trang 183.2 Mô tả dữ liệu
3.2.1 Tập dữ liệu Matches Dataset
Bộ dữ liệu được thu thập trong trang https://fbref.com dựa trên giải đấuPremier League 2022-2023 Bộ dữ liệu gồm 1402 mẫu dữ liệu gồm 27 đặc trưng:
Hình 3 2 Tập dữ liệu trong bộ dữ liệu Matches Dataset
Thu thập các dữ liệu về trận đấu, bao gồm thông tin về đội bóng, cầu thủ, thống kê trận đấu trước đó và vị trí trên bảng xếp hạng
Xử lý và chọn lọc dữ liệu để phù hợp với mô hình Random Forest
Chia dữ liệu thành 2 phần: tập huấn luyện và tập kiểm tra
+ Tập huấn luyện là các trân đấu trước năm 2023
+ Tập kiểm tra là các trận đấu trong năm 2023
3.2.2 Mô tả thông tin trong tập dữ liệu Matches Dataset
Sử dụng tập huấn luyện để xây dựng mô hình Random Forest
18