



















Preview text:
lOMoAR cPSD| 58800262
BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NHẬP MÔN KHOA HỌC DỮ LIỆU
Đề tài: “DỰ ĐOÁN KẾT QUẢ TRẬN ĐẤU BÓNG ĐÁ NGOẠI HẠNG ANH” Nhóm 10 : N03
Người hướng dẫn :
TS. Đinh Xuân Trường Lưu Trung Kiên : B21DCCN071 Bùi Phúc Minh : B21DCCN519
Nguyễn Minh Thắng : B21DCCN668 Vũ Xuân Thịnh : B21DCCN694 Phạm Văn Tiến : B21DCCN708 HÀ N ỘI - 2024 lOMoAR cPSD| 58800262 lOMoAR cPSD| 58800262 NHÓM 10 - LỚP N03 LỜICẢMƠN
Nhóm em xin gửi lời cảm ơn chân thành đến thầy Đinh Xuân Trường đã tận tình hướng dẫn và cung cấp những
kiến thức quý báu trong suốt quá trình học tập và thực hiện bài tập lớn môn Nhập môn Khoa học Dữ liệu. Sự chỉ
dẫn của thầy đã giúp nhóm em hiểu rõ hơn về lĩnh vực này và hoàn thành tốt bài tập lớn.
Nhóm em hy vọng rằng những kiến thức đã học được qua môn học này sẽ là nền tảng vững chắc cho sự phát triển
của mỗi thành viên trong lĩnh vực Khoa học Dữ liệu trong tương lai.
Nhóm em xin trân trọng cảm ơn! Hà Nội, ngày 9 tháng 11 năm 2024 Đại diện nhóm . Vũ Xuân Thịnh . lOMoAR cPSD| 58800262 NHÓM 10 - LỚP N03 MỤCLỤC
LỜI CẢM ƠN......................................................................................................... i
MỤC LỤC............................................................................................................. ii
DANH MỤC CÁC HÌNH VẼ....................................................................................... iv
DANH MỤC CÁC BẢNG ........................................................................................... vi
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI ................................................................................................................... 1
1.1 Tổng quan đề tài ................................................................................................................................................ 1
1.2 Mục tiêu và định hướng giải pháp ..................................................................................................................... 1
1.3 Đóng góp của đề tài ........................................................................................................................................... 2
CHƯƠNG 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN ................................................................................................ 3
2.1 Tổng quan quá trình làm dự án trong 12 tuần .................................................................................................. 3
2.2 Tuần Topic 3 (06/09 - 12/09) ............................................................................................................................. 3
2.3 Tuần Topic 4 (13/09 - 19/09) ............................................................................................................................. 6
2.4 Tuần Topic 5 (20/09 - 26/09) ........................................................................................................................... 10
2.5 Tuần Topic 6 (27/09 - 03/10) ........................................................................................................................... 11
2.6 Tuần Topic 7 (04/10 - 10/10) ........................................................................................................................... 16
2.7 Tuần Topic 8 (11/10 - 17/10) ........................................................................................................................... 21
2.8 Tuần Topic 9 (18/10 - 24/10) ........................................................................................................................... 27
2.9 Tuần Topic 10 (25/10 - 31/10) ......................................................................................................................... 39
2.10 Tuần Topic 11 (1/11 - 7/11) ........................................................................................................................... 39
2.11 Tuần Topic 12 (8/11 - 14/11) ......................................................................................................................... 42
CHƯƠNG 3. KẾT LUẬN .............................................................................................................................. 43
3.1 Kết luận ............................................................................................................................................................ 43
3.2 Hướng phát triển ............................................................................................................................................. 43
TÀI LIỆU THAM KHẢO............................................................................................................................................ 45 DANHMỤCHÌNHVẼ 2.1
Sơ đồ công việc dự án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2
Dữ liệu thu thập được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Bảng dữ liệu sau khi loại bỏ các cột không dùng đến
. . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Các dữ liệu không nhất quán nhau ở 2 cột team và opponent
. . . . . . . . . . . . . . . . . . . . 6 2.5
Đánh chỉ số cho tên các đội bóng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 Dữ liệu 2 cột team và opponent sau khi tiền xử lý
. . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.7
Biểu đồ thể hiện số lượng giá trị NaN và nonNaN trong cột attendance . . . . . . . . . . . . . . . 7
2.8 Biểu đồ số lượng khách tham dự các trận đấu của Bournemouth trên sân nhà theo ngày . . . . . . 8 lOMoAR cPSD| 58800262 NHÓM 10 - LỚP N03 2.9
Kết quả thu được sau khi tiền xử lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.10 Dữ liệu cột attendance sau khi chuẩn hóa
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.11 Ví dụ về ROC và AUC
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.12 Mô hình xây dựng trong Orange
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.13 Chọn các trường thuộc tính cho mô hình học máy . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.14 Chọn bản ghi có năm trước 2024 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.15 Kết quả thử nghiệm các mô hình phân loại . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.16 Ma trận nhầm lẫn cho từng mô hình
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.17 Thông số Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.18 Mô hình trong Orange Data Mining
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.19 Độ chính xác của từng mô hình sau khi chỉnh số lượng Neuron . . . . . . . . . . . . . . . . . . . 23
2.20 Lựa chọn hàm Activation cho các Neuron Network khác nhau . . . . . . . . . . . . . . . . . . . . 24
2.21 Độ chính xác của từng mô hình sau khi chọn các Activation khác nhau . . . . . . . . . . . . . . . 24
2.22 Thực hiện lựa chọn Solver khác nhau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.23 Kết quả đối với các Solver khác nhau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.24 Kết quả đối với các alpha khác nhau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.25 Kết quả đối với số lượng vòng lặp tối đa khác nhau
. . . . . . . . . . . . . . . . . . . . . . . . . 25
2.26 Tham số vào mô hình ARIMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.27 Lựa chọn hoạt động Difference trong Orange
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.28 Sơ đồ phương pháp dự đoán kết quả bóng đá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.29 Mô hình ARIMA trong Orange Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.30 Chọn các trường dữ liệu cần dự đoán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.31 Biểu đồ time series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.32 Kết quả kiểm tra ADF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.33 Thông số Differencing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.34 Kiểm tra lại ADF chuỗi Sot và Sh sau khi lấy Differencing
. . . . . . . . . . . . . . . . . . . . . 33
2.35 Tham số vào của các mô hình ARIMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.36 Các giá trị dự đoán
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.37 Điều chỉnh điều kiện lọc cho mục Select Row . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.38 Các file dự đoán thu được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.39 Mô hình Orange sử dụng để ghép dữ liệu và dự đoán
. . . . . . . . . . . . . . . . . . . . . . . . 35
2.40 Python Script kết hợc các đặc trưng dự đoán và đặc trưng được cung cấp . . . . . . . . . . . . . . 36
2.41 Các thông số của mô hình Neural Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.42 Kết quả mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.43 Dữ liệu thô khi được lưu trữ bằng MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 lOMoAR cPSD| 58800262 NHÓM 10 - LỚP N03
2.44 Cấu trúc của bảng Match sau khi đã được xử lý
. . . . . . . . . . . . . . . . . . . . . . . . . . . 39 DANHMỤCBẢNGBIỂU 2.1
Đóng góp công việc tuần 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2
Số lượng bản ghi đã thu thập được trong mỗi mùa giải . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3
Thông tin về một số trường dữ liệu đã thu thập . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.4
Đóng góp công việc tuần 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5
Đóng góp công việc tuần 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.6
Đóng góp công việc tuần 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.7
Ma trận nhầm lẫn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.8
Đóng góp công việc tuần 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.9
Đóng góp công việc tuần 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.10 Đóng góp công việc tuần 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.11 Đóng góp công việc tuần 10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.12 Đóng góp công việc tuần 11
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 lOMoAR cPSD| 58800262
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1 Tổng quan đề tài
Bóng đá, được mệnh danh là "môn thể thao vua", là một trong những môn thể thao phổ biến nhất trên thế giới,
thu hút hàng triệu người hâm mộ từ khắp nơi trên hành tinh. Những trận đấu bóng đá là cuộc đối đầu của các
đội bóng, là dịp để người hâm mộ chứng kiến những khoảnh khắc kịch tính, bất ngờ, nơi mỗi pha bóng có thể
thay đổi cục diện của giải đấu. Kết quả của các trận đấu có thể quyết định vị trí của các đội trên bảng xếp hạng,
ảnh hưởng trực tiếp đến những danh hiệu, thậm chí là tương lai của các huấn luyện viên và cầu thủ. Chính vì sự
hấp dẫn này, việc dự đoán kết quả của các trận đấu bóng đá đã trở thành một vấn đề thu hút sự quan tâm của
rất nhiều đối tượng, từ người hâm mộ đến các nhà phân tích thể thao, nhà cái, hay các chuyên gia phân tích dữ liệu thể thao.
Trước đây, việc dự đoán tỉ số của các trận đấu bóng đá thường dựa vào cảm tính cá nhân, kinh nghiệm, hoặc sự
phán đoán của các chuyên gia. Tuy nhiên, trong thời đại công nghệ hiện đại, với sự phát triển mạnh mẽ của khoa
học dữ liệu và các phương pháp học máy (machine learning), việc dự đoán tỉ số trận đấu đã trở nên ngày càng
chính xác hơn. Các nhà nghiên cứu và các tổ chức thể thao không còn phải dựa vào những phỏng đoán chủ quan
mà thay vào đó có thể sử dụng các mô hình phân tích dựa trên dữ liệu lịch sử của hàng ngàn trận đấu trước đó để
đưa ra dự đoán, giúp đưa ra cái nhìn tổng quan về khả năng của các đội.
Đề tài "Dự đoán tỉ số trận bóng đá"được thực hiện nhằm khám phá và ứng dụng các phương pháp khoa học dữ
liệu để xây dựng các mô hình dự đoán kết quả của các trận đấu bóng đá. Mục tiêu không chỉ là cung cấp các giải
pháp cho việc dự đoán tỉ số, mà còn mở ra các cơ hội mới trong việc phân tích và dự đoán kết quả bóng đá. Điều
này có thể mang lại những ứng dụng thực tiễn trong nhiều lĩnh vực, chẳng hạn như trong việc phát triển các
chiến lược thi đấu, phân tích hiệu suất của đội bóng, cũng như hỗ trợ các quyết định trong các tổ chức thể thao,
bao gồm các đội bóng, nhà cái, và các tổ chức phân tích thể thao chuyên nghiệp.
1.2 Mục tiêu và định hướng giải pháp
Đề tài đặt ra các mục tiêu chính sau:
• Tìm hiểu các phương pháp phân tích dữ liệu bóng đá cơ bản.
• Xây dựng và thử nghiệm một số mô hình dự đoán kết quả trận bóng đá để tìm ra mô hình dự đoán tỉ
số chính xác và hiệu quả dựa trên dữ liệu lịch sử và các yếu tố ảnh hưởng.
• Đánh giá độ chính xác của các mô hình qua các phương pháp kiểm tra phổ biến.
Để đạt được các mục tiêu trên, đề tài sẽ triển khai các bước sau:
1. Thu thập và làm sạch dữ liệu: Sử dụng các nguồn dữ liệu công khai từ các trang web thể thao, dữ liệu sẽ
baogồm các thông tin về kết quả trận đấu, số bàn thắng của mỗi đội, thông số trận đấu như số lần sút, số
lần phạm lỗi, và các chỉ số khác liên quan. Dữ liệu này sẽ được làm sạch, chuẩn hóa và chuyển đổi thành
dạng phù hợp để đưa vào các mô hình học máy.
2. Xây dựng và huấn luyện mô hình học máy: Các mô hình dự đoán tỉ số sẽ được xây dựng sử dụng các thuậttoán
học máy cơ bản như Naive Bayes hay Random Forest. Sau đó, mô hình sẽ được huấn luyện trên dữ liệu lịch
sử để tối ưu hóa các tham số. 1 lOMoAR cPSD| 58800262
Chương 1. GIỚI THIỆU ĐỀ TÀI
3. Đánh giá mô hình và tối ưu hóa: Sau khi xây dựng xong mô hình, các chỉ số đánh giá như độ chính xác,F1-
score sẽ được sử dụng để đánh giá mô hình. Những mô hình có độ chính xác cao sẽ được chọn để tối ưu hóa thêm.
1.3 Đóng góp của đề tài
Đề tài cung cấp một cách tiếp cận cơ bản để thu thập, xử lý dữ liệu bóng đá, lựa chọn các trường dữ liệu quan
trọng và áp dụng mô hình học máy để dự đoán kết quả trận đấu. Qua đó, dự án đóng góp vào việc xây dựng một
công cụ hỗ trợ các nhà phân tích dữ liệu và những người quan tâm đến lĩnh vực phân tích thể thao, giúp họ có
thêm một phương pháp để nghiên cứu, dự đoán và đánh giá kết quả dựa trên dữ liệu lịch sử. Kết luận chương
Chương này đã trình bày tổng quan về tầm quan trọng của bóng đá và nhu cầu dự đoán kết quả các trận đấu trong
bối cảnh phát triển của khoa học dữ liệu và học máy. Đồng thời, chương đã nêu rõ mục tiêu và định hướng giải
pháp của đề tài, bao gồm việc thu thập, xử lý dữ liệu, xây dựng và đánh giá mô hình dự đoán kết quả trận đấu.
Cuối cùng, những đóng góp của đề tài đã được khái quát, nhấn mạnh giá trị của dự án trong việc cung cấp một
phương pháp tiếp cận hỗ trợ các nhà phân tích dữ liệu và những người quan tâm đến lĩnh vực phân tích thể thao. lOMoAR cPSD| 58800262
CHƯƠNG 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN 2.1
Tổng quan quá trình làm dự án trong 12 tuần
Hình 2.1: Sơ đồ công việc dự án
2.2 Tuần Topic 3 (06/09 - 12/09)
Bảng 2.1: Đóng góp công việc tuần 3 Họ và tên Đóng góp Lưu Trung Kiên 0% Bùi Phúc Minh 10% Nguyễn Minh Thắng 40% Vũ Xuân Thịnh 10% Phạm Văn Tiến 40%
Chủ đề tìm hiểu tuần 3: Chọn đề tài nghiên cứu. Thu thập và phân tích dữ liệu từ các nguồn website
Mục tiêu tuần Topic 3: Xác định các nguồn dữ liệu, kĩ thuật thu thập dữ liệu và phân tích các trường/bảng dữ liệu đã thu thập.
Kết quả của tuần 3: 1. Nguồn dữ liệu
Hiện nay, nhiều trang web lớn và nổi tiếng cung cấp dịch vụ thu thập dữ liệu qua API, nhưng hầu hết trong
số đó đều yêu cầu trả phí hoặc có hạn chế về số lượng và chất lượng dữ liệu miễn phí. Những hạn chế này
thường dẫn đến việc thiếu hụt dữ liệu quan trọng, khiến việc sử dụng các API này không khả thi trong nghiên cứu này.
Trong nghiên cứu này, trang web FBref (https://fbref.com/) sẽ được chọn làm nguồn dữ liệu chính
cho nghiên cứu. FBref là một trang web động, cung cấp thông tin thống kê chi tiết và phân tích về bóng đá,
bao gồm các chỉ số về các trận đấu, đội bóng, cầu thủ và nhiều thông số khác. Trang web này được biết đến
với việc cung cấp dữ liệu rõ ràng và đầy đủ, làm cho nó trở thành một nguồn tài nguyên lý tưởng cho việc
thu thập thông tin phục vụ cho dự đoán kết quả trận đấu. 3 lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
Mặc dù FBref là trang web động, nhưng dữ liệu cần thiết đã có sẵn trong HTML gốc (mà không cần chờ
JavaScript tải) nên trong nghiên cứu này sử dụng phương pháp lấy dữ liệu trực tiếp từ cấu trúc HTML
của trang web để thu thập các thông tin cần thiết cho phân tích. Trong Python, việc này có thể được
thực hiện bằng cách sử dụng các thư viện:
• Beautiful Soup: thư viện được thiết kế để phân tích cú pháp và trích xuất dữ liệu từ các tài liệu
HTML và XML. Nó cung cấp các phương tiện linh hoạt để điều hướng, tìm kiếm và sửa đổi cây cấu
trúc của trang web, giúp việc thu thập dữ liệu trở nên dễ dàng và nhanh chóng.
• Requests: thư viện được sử dụng để gửi yêu cầu HTTP đến trang web.
• Html5lib: trình phân tích cú pháp HTML theo chuẩn HTML5. Trình phân tích này trích xuất dữ liệu
chính xác và ổn định hơn trình phân tích cú pháp HTML tích hợp sẵn trong Python.
2. Các trường/bảng dữ liệu đã thu thập
Dữ liệu sử dụng trong nghiên cứu này được thu thập từ các trận đấu thuộc 5 mùa giải Ngoại hạng Anh
gần nhất, trải dài từ mùa giải 2019-2020 đến mùa giải hiện tại vẫn đang diễn ra là 2024-2025. Mỗi bản
ghi trong dữ liệu đại diện cho một đội tham gia trong một trận đấu, chứa thông tin bao gồm thời gian
trận đấu, tên đội bóng, đối thủ, cũng như các thông số quan trọng trong trận như số bàn thắng, số cú
sút, số lần đá phạt, phần trăm kiểm soát bóng, và các chỉ số khác liên quan đến hiệu suất thi đấu. Vì
vậy, mỗi trận đấu sẽ được biểu diễn dưới dạng hai bản ghi riêng biệt, mỗi bản ghi tương ứng với một
trong hai đội bóng tham gia. Tổng số lượng bản ghi đã thu thập được thể hiện rõ trong bảng sau:
Bảng 2.2: Số lượng bản ghi đã thu thập được trong mỗi mùa giải Mùa giải
Số lượng bản ghi 2019- 760 2020 2020- 760 2021 2021- 760 2022 2022- 760 2023 2023- 760 2024 2024- 60 2025 lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
Hình 2.2: Dữ liệu thu thập được
Trong mỗi bản ghi bao gồm các trường dữ liệu sau:
Bảng 2.3: Thông tin về một số trường dữ liệu đã thu thập Thuộc tính Mô tả Comp Tên giải đấu bóng đá Season Mùa giải Date Ngày thi đấu Time Giờ thi đấu Venue Sân thi đấu Round Vòng thi đấu Team Tên đội thi đấu Opponent Tên đội đối thủ Result Kết quả trận đấu GF Số bàn ghi được GA
Số bàn bị thủng lưới xG
Chỉ số đo chất lượng cơ hội ghi bàn đội bóng đã tạo ra xGA
Chỉ số đo chất lượng cơ hội đã tạo ra cho đối thủ ghi bàn Poss
Phần trăm thời gian kiểm soát bóng Attendance
Số lượng khán giả theo dõi Captain
Tên đội trưởng đội bóng Formation
Đội hình đội bóng (số lượng cầu thủ từ hậu vệ đến tiền đạo) Opp Formation
Đội hình đội đối thủ Referee Tên trọng tài Gls
Số bàn thắng đội đã ghi được Sh
Tổng cú sút đội bóng đã thực hiện (không tính đá phạt) SoT Số cú sút trúng đích SoT%
Tỉ lệ số cú sút trúng đích G/Sh
Tỉ lệ số bàn thắng trên tổng cú sút Dist
Khoảng cách dứt điểm trung bình FK
Số cú sút được thực hiện từ các tình huống đá phạt trực tiếp PK
Số lần đá phạt thành công Pkatt Số lần đá phạt NpxG
Chỉ số đo cơ hội ghi bàn nhưng không tính tình huống đá phạt G-xG
Sự khác biệt giữa số bàn thắng thực tế và dự đoán SoT
Tỉ lệ số cú sút trúng đích lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
2.3 Tuần Topic 4 (13/09 - 19/09)
Bảng 2.4: Đóng góp công việc tuần 4 Họ và tên Đóng góp Lưu Trung Kiên 0% Bùi Phúc Minh 30% Nguyễn Minh Thắng 10% Vũ Xuân Thịnh 30% Phạm Văn Tiến 30%
Chủ đề tìm hiểu tuần 4: Tiền xử lý dữ liệu
Mục tiêu tuần Topic 4: Tiền xử lý dữ liệu bao gồm: Loại bỏ các cột dữ liệu không cần thiết, xử lý dữ liệu thiếu
và không nhất quán, chuẩn hóa và co giãn dữ liệu.
Kết quả của tuần 4:
1. Loại bỏ các cột dữ liệu không được sử dụng
• comp: Chỉ có duy nhất một giá trị là "Premier League"vì dữ liệu chỉ bao gồm các trận đấu trong khuôn
khổ giải Ngoại hạng Anh. Cột này không mang lại thông tin phân biệt nào cho việc dự đoán, do đó
được loại bỏ để giảm độ phức tạp của mô hình.
• captain: Tên đội trưởng đội bóng không có giá trị trực tiếp trong việc dự đoán kết quả trận đấu và
có thể gây nhiễu trong mô hình dự đoán.
• referee: Tuy trọng tài có thể có ảnh hưởng nhỏ đến kết quả trận đấu, nhưng trong bối cảnh dữ
liệu, việc sử dụng tên riêng không giúp mô hình hiểu rõ hơn về mối quan hệ này, do đó có thể bỏ qua.
• sot%, g/sot, g-xg, np:g-xg, npxg/sh, g/sh: Đây là các cột biểu thị những chỉ số phái sinh từ các cột
khác trong dữ liệu. Chẳng hạn, sot% (tỉ lệ số cú sút trúng đích) có thể được tính toán từ dữ liệu
số cú sút trúng đích (SoT) và tổng cú sút đội bóng đã thực hiện (không tính đá phạt) (Sh). Do đó,
những cột này không cần thiết và có thể gây dư thừa trong quá trình huấn luyện mô hình.
• season: Mùa giải trong dữ liệu hiện tại chứa giá trị đại diện cho năm đầu tiên của mùa giải. Ví dụ,
mùa giải 2024-2025 sẽ được biểu diễn bằng giá trị 2024. Tuy nhiên, điều này có thể dẫn đến sự
trùng lặp với cột year sẽ được sinh ra ở bước xử lý sau, vốn biểu thị năm diễn ra trận đấu, điều
này dẫn đến dư thừa thông tin. lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
Hình 2.3: Bảng dữ liệu sau khi loại bỏ các cột không dùng đến
2. Xử lý dữ liệu không nhất quán
Tại cột team và opponent đều chứa các giá trị tên của các đội bóng tham gia giải đấu Ngoại Hạng Anh,
cụ thể là tên hai đội tham gia một trận đấu cụ thể. Hai cột này xuất hiện những dữ liệu không nhất
quán như ’Manchester United’ và ’Manchester Utd’, ’West Ham United’ và ’West Ham’,... Sử dụng
phương pháp so khớp dữ liệu đã phát hiện được những giá trị không nhất quán dưới đây:
Hình 2.4: Các dữ liệu không nhất quán nhau ở 2 cột team và opponent
Dữ liệu tại cột team đúng với thực tế và đầy đủ hơn, vì vậy sẽ tiến hành biến đổi giá trị cột opponent
theo giá trị cột team sau đó chuyển đổi về dạng số. lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
Hình 2.5: Đánh chỉ số cho tên các đội bóng
Hình 2.6: Dữ liệu 2 cột team và opponent saukhi tiền xử lý
3. Xử lý giá trị bị thiếu
Trong dữ liệu về số lượng khán giả tham dự mỗi trận đấu (attendance), nhận thấy rằng có rất nhiều giá
trị bị thiếu (NaN), chiếm khoảng 1/4 tổng số bản ghi thu thập được. Việc điền đầy đủ giá trị cho cột này
là cần thiết để đảm bảo tính toàn vẹn của dữ liệu khi đưa vào mô hình dự đoán. Tuy nhiên, việc đơn
thuần điền đầy bằng giá trị trung bình của toàn bộ cột là không hợp lý vì số lượng khán giả phụ thuộc
vào rất nhiều yếu tố.
Hình 2.7: Biểu đồ thể hiện số lượng giá trị NaN và nonNaN trong cột attendance
Đầu tiên sẽ tiến hành kiểm tra lại dữ liệu, do mỗi trận đấu sẽ xuất hiện dưới dạng hai hàng dữ liệu (đội
nhà và đội khách), số lượng khán giả của một trận phải giống nhau trong cả hai hàng. Do đó, đầu tiên lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
sẽ tiến hành kiểm tra các trường hợp cùng một trận đấu nhưng chỉ một hàng có giá trị số lượng khán
giả còn hàng kia thì không có. Với những trường hợp như vậy sẽ sử dụng giá trị attendance của hàng
có dữ liệu để điền cho hàng còn lại.
Quá trình thực hiện sẽ diễn ra như sau:
• Nhóm các hàng dựa trên các cột thông tin chung của trận đấu như: date, time, round, day.
• So sánh cặp đội thi đấu (team và opponent) để xác định 2 hàng thuộc cùng một trận.
• Nếu một trong hai hàng có dữ liệu attendance thì tiến hành điền giá trị đó cho hàng còn lại.
Sau bước kiểm tra trên nhận thấy rằng số lượng giá trị thiếu không hề thay đổi, tức không có trận đấu
nào nằm trong trường hợp này.
Tiếp theo sẽ xử lý trường hợp mà trận đấu không có dữ liệu về số khán giả tham dự ở cả 2 hàng của
đội trên sân nhà và đội đối thủ.
Kiểm tra dữ liệu số khán giả tham dự khi một đội được đá trên sân nhà và nhận thấy rằng, số lượng
khán giả tham dự không chênh lệch nhau nhiều trong các trận đấu mà đội bóng này được đá trên sân
nhà. Dưới đây là minh hoạ về số lượng khán giả tham dự các trận đấu của đội Bournemouth khi đội này
được đá trên sân nhà (giá trị venue = ’Home’):
Hình 2.8: Biểu đồ số lượng khách tham dự các trận đấu của Bournemouth trên sân nhà theo ngày
Qua đó sẽ tiến hành điền các giá trị bị thiếu trong các trận đấu bằng giá trị trung bình số lượng khán
giả của từng đội khi họ thi đấu trên sân nhà (loại bỏ các giá trị NaN trong quá trình tính toán), chú ý
điền vào cả hàng của đội đối thủ mà thuộc cùng một trận đấu. lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
4. Đưa các giá trị dưới dạng chuối ký tự về dạng số
Các trường dạng văn bản và ngày tháng, thời gian sẽ được chuyển về dữ liệu dạng số tương ứng để
thuận tiện khi đưa vào các mô hình máy học tiến hành phân tích và dự đoán.
• date: Dữ liệu ban đầu là chuỗi định dạng ’yyyy-mm-dd’. Để mô hình hiểu được tính thời gian, cột
này sẽ được chuyển sang dạng datetime và tách thành ba cột số tương ứng là year, month và day.
• time: Đang ở dạng chuỗi hh:mm được tách thành 2 cột là hour và minutes.
• day: Các thứ trong tuần sẽ được ánh xạ sang số nguyên: Mon -> 2, Tue -> 3, Wed -> 4, Thu -> 5,
Fri -> 6, Sat -> 7, Sun -> 8. Cột này sau đó được đổi tên thành dow (day of week) để tránh trùng
lặp với cột day (ngày trong tháng).
• venue: Địa điểm thi đấu được ánh xạ sang giá trị nhị phân để biểu diễn: Away (sân khách) -> 0 và Home (sân nhà) -> 1.
• round: Vòng đấu được lược bỏ phần chữ "Matchweek"và chỉ giữ lại phần số để có được dạng số
nguyên trực tiếp, giúp đơn giản hóa xử lý dữ liệu.
• result: Kết quả trận đấu sẽ được ánh xạ sang dạng số với W (thắng) -> 1, D (hoà) -> 0, L (thua) -> - 1.
• formation, opp formation: Thông tin về đội hình đội bóng tham dự trận đấu được ghi lại dưới
dạng chuỗi, ví dụ như "4-1-2-1-2"hoặc "3-4-3". Dữ liệu này được xử lý bằng cách loại bỏ các dấu
’-’ và chuyển đổi chuỗi thành kiểu số nguyên.
Kết quả thu được:
Hình 2.9: Kết quả thu được sau khi tiền xử lý
2.4 Tuần Topic 5 (20/09 - 26/09)
Bảng 2.5: Đóng góp công việc tuần 5 Họ và tên Đóng góp Lưu Trung Kiên 0% Bùi Phúc Minh 10% Nguyễn Minh Thắng 0% Vũ Xuân Thịnh 50% Phạm Văn Tiến 40%
Mục tiêu tuần Topic 5: Tiếp tục tiền xử lý dữ liệu, tìm hiểu loại bài toán của dự án này. lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
1. Tiếp tục tiền xử lý dữ liệu
Chuẩn hóa dữ liệu: Nhận thấy cột attendance chứa dữ liệu có độ lớn tỷ lệ cao so với giá trị các cột khác,
điều này dễ làm cho một số mô hình bỏ qua những dữ liệu có giá trị nhỏ mà có xu hướng thiên vị đối
với dữ liệu có giá trị lớn hơn. Để giải quyết vấn đề này, ta thực hiện chuẩn hóa dữ liệu, cụ thể ở đây là
sử dụng phép co giãn cực đại - cực tiểu bằng hàm MinMaxScaler có hỗ trợ trong Python.
Hình 2.10: Dữ liệu cột attendance sau khi chuẩn hóa
2. Tìm hiểu mô hình học máy
Ở cấp độ cơ bản nhất, học máy có thể được phân thành hai loại chính: học có giám sát (Supervised
learning) và học không giám sát (Unsupervised learning):
• Học có giám sát: mô hình hóa mối quan hệ giữa các thuộc tính của dữ liệu và các nhãn dữ liệu;
một khi mô hình này được xác định, nó có thể được sử dụng để áp dụng nhãn cho dữ liệu mới.
Học có giám sát được chia nhỏ thành các nhiệm vụ phân loại và nhiệm vụ hồi quy: trong phân
loại, nhãn là các danh mục riêng biệt, trong khi ở hồi quy, nhãn là số lượng liên tục.
• Học không giám sát: mô hình hoá các thuộc tính của tập dữ liệu mà không tham chiếu đến bất kỳ
nhãn nào và thường được mô tả là “để tập dữ liệu tự nói”. Những mô hình này bao gồm các nhiệm
vụ như phân cụm và giảm kích thước. Các thuật toán phân cụm xác định các nhóm dữ liệu riêng
biệt, trong khi các thuật toán giảm kích thước tìm kiếm các cách trình bày dữ liệu ngắn gọn hơn.
Trong đề tài này xác định được đây là bài toán phân loại thuộc lớp có giám sát, cần dự đoán kết quả
của trận đấu, với các nhãn đầu ra thuộc một trong ba loại là thắng (1), thua (-1) hoặc hoà (0).
2.5 Tuần Topic 6 (27/09 - 03/10)
Bảng 2.6: Đóng góp công việc tuần 6 Họ và tên Đóng góp Lưu Trung Kiên 0% Bùi Phúc Minh 0% Nguyễn Minh Thắng 0% Vũ Xuân Thịnh 0% Phạm Văn Tiến 100%
Mục tiêu tuần Topic 6: Tìm hiểu các cách đánh giá mô hình học máy cho bài toán phân loại đa lớp.
Đánh giá mô hình là một bước quan trọng trong quá trình phát triển và ứng dụng các mô hình học máy. Đối
với bài toán dự đoán kết quả trận đấu bóng đá, việc đánh giá mô hình càng trở nên cấp thiết do tính chất đa
dạng và phức tạp của dữ liệu bóng đá. Trong phần này sẽ trình bày phương pháp đánh giá mô hình phù hợp
cho bài toán dự đoán kết quả trận đấu bóng đá với ba lớp đầu ra là thắng (W), hòa (D) và thua (L). lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
Để đánh giá hiệu suất của mô hình phân loại, cần phải chia tập dữ liệu thành tập huấn luyện (Training set) và tập kiểm tra (Test set):
• Tập huấn luyện (Training set): Dữ liệu được sử dụng để huấn luyện mô hình.
• Tập kiểm tra (Test set): Dữ liệu không được mô hình thấy trong quá trình huấn luyện, dùng để đánh giá
hiệu suất dự đoán của mô hình trên dữ liệu mới.
Tiếp theo, sử dụng ma trận nhầm lẫn và các chỉ số đánh giá phổ biến như Accuracy, Precision, Recall hay F1
score,... Chú ý rằng, một số chỉ số được định nghĩa chủ yếu cho bài toán phân loại nhị phân, khi mở rộng sang
bài toán phân loại đa lớp (cụ thể là 3 lớp trong dự án này), dữ liệu được xử lý như một tập hợp các bài toán
nhị phân riêng biệt, mỗi bài toán tương ứng với một lớp. Có nhiều cách để tính trung bình các kết quả từ
từng lớp, tùy thuộc vào tình huống cụ thể, thông thường sẽ có 3 cách sau:
• Macro-averaging: Phương pháp này tính trung bình của các chỉ số nhị phân, với trọng số bằng nhau cho từng lớp.
• Micro-averaging: Phương pháp này gán cho mỗi cặp mẫu-lớp một đóng góp bằng nhau vào chỉ số tổng
thể. Thay vì tính tổng các chỉ số theo từng lớp, nó tính tổng tử số và mẫu số của các chỉ số nhị phân
từng lớp để tạo thành một tỷ số tổng thể.
• Weighted-averaging: Phương pháp này xử lý sự mất cân bằng giữa các lớp bằng cách tính trung bình
có trọng số, trong đó trọng số của mỗi lớp dựa trên tần suất xuất hiện của lớp đó trong tập dữ liệu thực.
1. Ma trận nhầm lẫn (Confusion Matrix)
Ma trận nhầm lẫn là một công cụ quan trọng trong việc đánh giá hiệu suất của mô hình phân loại. Đối
với bài toán dự đoán kết quả trận đấu bóng đá với ba lớp (thắng, hòa, thua), ma trận nhầm lẫn sẽ có kích thước 3x3.
Bảng 2.7: Ma trận nhầm lẫn Nhãn dự đoán Thắng Hoà Thua Thắng WW WD WL Hoà DW DD DL Thua LW LD LL
Trong ma trận nhầm lẫn này có các thông số cơ bản như:
• WW (Thắng Thắng): Số trận thắng được dự đoán đúng là thắng.
• DD (Hòa Hòa): Số trận hòa được dự đoán đúng là hòa. lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
• LL (Thua Thua): Số trận thua được dự đoán đúng là thua.
Các ô khác thể hiện số lượng trường hợp bị mô hình dự đoán sai, ví dụ như:
• WH (Thắng Hòa): Số trận thực tế thắng nhưng dự đoán là hòa.
• DL (Hòa Thua): Số trận thực tế hòa nhưng dự đoán là thua
2. Độ chính xác (Accuracy)
Độ chính xác tổng thể là tỉ lệ dự đoán đúng trên tổng số dự đoán. Trong bài toán dự đoán kết quả trận
đấu bóng đá, công thức tính độ chính xác như sau:
Độ chính xác tổng thể cung cấp một chỉ số đơn giản về hiệu suất tổng thể của mô hình. Tuy nhiên, nó
có thể bị ảnh hưởng và không thực sự hiệu quả trong trường hợp có sự mất cân bằng trong dữ liệu.
Trong dữ liệu thu thập được, số lượng trận thắng/ thua chênh nhau khá lớn so với số lượng trận hoà
(chỉ có 439 trận hoà trong tổng số 1930 trận), cho nên giá trị này chỉ mang tính chất tham khảo. Đối với
trường hợp mất cân bằng dữ liệu chủ yếu sẽ quan tâm tới các thông số đánh giá khác như Precision, Recall và F1-score.
3. Độ chính xác của dự đoán tích cực (Precision)
Precision đo lường trong số các dự đoán của một lớp cụ thể, có bao nhiêu là chính xác. Từ công thức
trong bài toán nhị phân (Precision = TP TP + FP
) có thể mở rộng trong bài toán dự đoán kết quả trận đấu
bóng đá, tính Precision cho từng lớp theo công thức:
Sau đó, tuỳ vào cách chọn gộp theo cách nào mà giá trị tổng thể có thể khác nhau, ví dụ:
• Nếu sử dụng micro-averaging: WW + DD + LL
Precisionmicro = (WW + DW + LW) + (WD + DD + LD) + (WL + DL + LL)
• Nếu sử dụng macro-averaging:
Precision(W) + Precision(D) + Precision(L) Precisionmacro = 3
• Nếu sử dụng weighted-averaging:
Với NW, NL, ND lần lượt là số lượng mẫu thực tế của mỗi lớp thắng, thua và hoà. lOMoAR cPSD| 58800262
Nhập môn Khoa học dữ liệu
Chương 2. BÁO CÁO TIẾN ĐỘ TỪNG TUẦN
4. Tỷ lệ dự đoán đúng tích cực (Recall)
Recall đo lường trong số các trường hợp thực tế thuộc một lớp cụ thể, có bao nhiêu được mô hình
nhận diện đúng. Từ công thức trong bài toán nhị phân (Recall = TP TP + FN
) có thể mở rộng trong bài toán
dự đoán kết quả trận đấu bóng đá, tính Recall cho từng lớp theo công thức như sau, sau đó việc gộp lại tương tự như Precision: 5. F1-score
F1-score là trung bình điều hòa của Precision và Recall, cung cấp một chỉ số cân bằng giữa hai giá trị
này. F1-score có thể được tính cho mỗi lớp: Precision(Lớp) × Recall(Lớp) F1(Lớp) = 2 ×
Precision(Lớp) + Recall(Lớp)
Sau đó giá trị gộp lại được tính tương tự như Precision và Recall đối với F1macro và F1weighted, chú ý rằng
đối với F1micro thì phải sử dụng Recallmicro và Precisionmicro, sau đó tính như công thức với F1 từng lớp như trên. 6. Specificity
Specificity đo lường trong số các trường hợp thực tế không thuộc lớp cụ thể, có bao nhiêu được dự
đoán đúng là không thuộc lớp đó. Từ công thức trong bài toán nhị phân (Specificity = TN TN + FP ) có thể
mở rộng trong bài toán dự đoán kết quả trận đấu bóng đá, tính Specificity cho từng lớp theo công thức,
sau đó việc gộp lại tương tự như Precision:
7. Diện tích dưới đường cong (Area Under the Curve - AUC)
Giá trị này là thước đo đánh giá khả năng phân biệt các lớp của mô hình phân loại. Nó được tính bằng
diện tích dưới đường cong ROC (Receiver Operating Characteristic), trong đó ROC biểu diễn mối quan
hệ giữa tỷ lệ dương thực (TPR) và tỷ lệ dương giả (FPR) khi thay đổi ngưỡng phân loại. AUC có giá trị từ
0 đến 1, giá trị càng lớn chứng tỏ mô hình càng tốt trong việc phân biệt các lớp.
Trong bài toán đa lớp, AUC thường được mở rộng bằng cách sử dụng phương pháp One-vs-Rest (OvR)
(tính AUC cho từng lớp so với phần còn lại) hoặc One-vs-One (OvO) (tính AUC cho từng cặp lớp), sau đó gộp lại