Bỏ qua tới nội dung chính
Quay lại tin tức

Liệu học máy có thể dự đoán World Cup?

Towards Data Science· Marco Hening Tallarico· 9/6/2026general

Xây dựng công cụ dự đoán bóng đá bằng học máy (ML) trong R Bài viết "Liệu học máy có thể dự đoán World Cup?" xuất hiện lần đầu trên Towards Data Science.

Học máy Liệu học máy có thể dự đoán World Cup? Xây dựng công cụ dự đoán bóng đá bằng học máy trong R Marco Hening Tallarico Ngày 9/6/2026 18 phút đọc Chia sẻ Giới thiệu Với việc FIFA dự kiến khởi tranh vào thứ Năm, ngày 11/6/2026, trận mở màn tại Sân vận động Thành phố Mexico, tôi nghĩ sẽ rất thú vị khi xây dựng mô hình học máy tốt nhất có thể để dự đoán kết quả trận đấu. Để thực hiện điều này, tôi đã tổng hợp một số cơ sở dữ liệu – 49.000 trận đấu – với dữ liệu về xếp hạng Elo, kết quả trận đấu và địa điểm tổ chức giải đấu. Từ FIFA đến Baltic Cup, với các trận đấu từ năm 1872 đến năm 2026, chúng ta sẽ tiếp cận môn thể thao này theo phương pháp xác suất. Chúng ta sẽ so sánh hiệu suất của một số mô hình học máy, bao gồm: hồi quy đa thức mô hình ridge/elastic-net đa thức LightGBM Chúng ta cũng sẽ tìm hiểu điểm mạnh và điểm yếu của các mô hình để tạo ra một mô hình được hiệu chỉnh tốt, dự đoán đội nhà thắng 86% số lần. Bằng cách cân nhắc hiệu suất mô hình, hiệu chỉnh và độ phức tạp, chúng ta sẽ tìm ra mô hình tốt nhất cho dữ liệu của mình. Bóng đá qua những con số Phân bố tổng số bàn thắng mỗi trận trong tập dữ liệu huấn luyện, cho thấy sự tập trung cao của các trận đấu có tổng số bàn thắng thấp và một đuôi dài bên phải của các trận đấu có tỷ số cao ngày càng hiếm. Minh họa bởi Tác giả. Nhiều người nói bóng đá gây buồn ngủ. Là một người hâm mộ bóng đá, tôi không đồng ý, nhưng công bằng mà nói, điều này không phải không có lý do. Phần lớn các trận đấu kết thúc với ít hơn 5 bàn thắng, và bất cứ điều gì trên 20 là một sự bất thường, nếu không muốn nói là không thể. Ngược lại, không có gì lạ khi một cầu thủ ghi hơn 50 điểm trong một trận đấu NBA. Nhưng bất chấp nhịp độ, các quán rượu từ Anh đến botecos ở Rio vẫn chật kín. Điều mà các nhà phê bình không hiểu là tỷ số thấp có thể làm cho một trận đấu trở nên thú vị hơn, vì điều này khiến các đội khó giành được lợi thế đáng kể, giữ cho người hâm mộ hồi hộp cho đến cuối cùng. Thật không may, điều này cũng có nghĩa là các trận đấu kết thúc với tỷ số hòa gần 22% số lần – điều này cũng có thể gây khó chịu. Tuy nhiên, môn thể thao này vẫn phổ biến như mọi khi. Số lượng trận đấu quốc tế hàng năm trong tập dữ liệu huấn luyện trước năm 2018, cho thấy sự mở rộng lâu dài của hoạt động bóng đá quốc tế từ các ghi chép ban đầu thưa thớt đến khối lượng trận đấu cao liên tục sau cuối thế kỷ XX. Minh họa bởi Tác giả. Việc có quá nhiều trận đấu kết thúc với tỷ số hòa thực sự trở thành một vấn đề mô hình hóa sau này, nhưng trước khi chúng ta đi vào vấn đề đó, hãy xem cách chúng ta tổng hợp dữ liệu này. Ghép nối dữ liệu Thông thường, cách tốt nhất để cải thiện một mô hình là đơn giản là thu thập thêm dữ liệu. Chúng ta sẽ làm việc với international_results.csv, international_team_ratings.csv và international_goalscorers.csv. Chúng ta muốn ghép international_results.csv với international_team_ratings.csv để có thể sử dụng xếp hạng Elo. Điều này có thể đơn giản, nhưng như bạn có thể đoán, tên đội không khớp hoàn hảo, vì vậy chúng ta cần chuyển sang xử lý văn bản trừ khi chúng ta muốn kiểm tra 336 đội riêng lẻ. Chúng ta cũng cần hết sức cẩn thận về thời điểm xếp hạng Elo được cập nhật. Chúng ta có thể lấy Elo vào cùng ngày trận đấu diễn ra, nhưng đó sẽ là một nguồn rò rỉ dữ liệu, vì điểm Elo chỉ được cập nhật sau trận đấu. Việc sử dụng nó như một tính năng hấp dẫn nhưng có vấn đề. Chúng ta phải lấy điểm Elo gần đây nhất, và như một tính năng được thiết kế bổ sung, chúng ta theo dõi thời gian kể từ lần cập nhật Elo gần đây nhất, cho rằng các xếp hạng trước đó sẽ mang tính thông tin hơn các xếp hạng cũ hơn. Mã để nối các bảng này và toàn bộ dự án có sẵn trong Phụ lục. Các giải đấu hàng đầu theo số trận đấu trong tập dữ liệu huấn luyện, làm nổi bật sự chiếm ưu thế của các trận giao hữu và vòng loại FIFA World Cup so với tất cả các giải đấu quốc tế khác. Minh họa bởi Tác giả. international_results.csv Loại trườngVí dụNhận dạng trận đấusource_match_id, date, season, competitionĐộihome_team, away_teamKết quả cuốihome_score, away_score, match_result, result_classBối cảnhneutral, tournament, city, country international_team_ratings.csv Tính năngÝ nghĩahome_rating_pre_matchChỉ số Elo của đội nhà trước khi bắt đầu trận đấurating_pre_matchChỉ số Elo của đội khách trước khi bắt đầu trận đấurating_diffChỉ số Elo của đội nhà trừ đi chỉ số Elo của đội kháchrating_age_days_homeThời gian chỉ số Elo của đội nhà không được cập nhậtrating_age_days_awayThời gian chỉ số Elo của đội khách không được cập nhật international_goalscorers.csv Ý tưởng tính năngÝ nghĩaSố cầu thủ ghi bàn duy nhất trong các trận đấu gần đâyLiệu một đội có phụ thuộc vào một cầu thủ ghi bàn hay nhiều cầu thủ ghi bànBàn thắng của cầu thủ ghi bàn hàng đầuMức độ tập trung ghi bànPhong độ ghi bàn gần đâyHiệu suất tấn công trước trận đấu này So sánh phân bố các lớp kết quả trận đấu giữa các tập huấn luyện và kiểm tra, cho thấy tỷ lệ kết quả tương tự với chiến thắng của đội nhà là kết quả thường xuyên nhất, tiếp theo là chiến thắng của đội khách và hòa. Minh họa bởi Tác giả. Vì chúng ta đang thực hiện dự đoán chuỗi thời gian, chúng ta cần đảm bảo việc phân chia dữ liệu tuân thủ thứ tự thời gian. Chúng ta sẽ đánh giá mô hình của mình trên tất cả các trận đấu từ năm 2018 trở đi, ước tính khoảng 8.000 trận đấu. Phân chia hiệu quảLogic ngày gần đúngHuấn luyện mô hìnhphần đầu của dữ liệu trước năm 2018Xác thựckhoảng 20% gần nhất của tập huấn luyện trước năm 2018Kiểm traTừ năm 2018 trở đi Các tính năng được thiết kế Tổng quan về phân bố các tính năng được thiết kế được sử dụng để huấn luyện mô hình, cho thấy số trận đấu trước đó, tỷ lệ hòa gần đây, các thước đo hiệu số bàn thắng, tỷ lệ bàn thắng ghi được và bàn thua, và các chỉ số điểm mỗi trận trong lịch sử của đội nhà và đội khách. Minh họa bởi Tác giả. Chúng ta muốn chuyển từ các yếu tố dự đoán cơ bản ở cấp độ trận đấu sang các tính năng phong phú hơn trước trận đấu, nắm bắt được: sức mạnh của đội, chất lượng tấn công và phòng thủ, hiệu ứng sân nhà/sân khách, sự cân bằng đối đầu, sức mạnh của thủ môn, xu hướng hiệu suất lịch sử. 1. Các tính năng mô hình hóa hòa Thất bại rõ ràng nhất của mô hình hồi quy logistic đa thức cơ sở của chúng ta là hiệu suất yếu kém trong việc phân loại các trận hòa. Mặc dù mô hình có thể tính toán xác suất hòa vì chúng ta đã định nghĩa biến mục tiêu là match_result ∈ {H, D, A} (Đội nhà thắng, Hòa, Đội khách thắng), nhưng Hòa đơn giản là không bao giờ là kết quả có khả năng xảy ra nhất. Chúng ta có thể thấy điều này qua cột thiếu cho Hòa trong ma trận nhầm lẫn. Ma trận nhầm lẫn kiểm tra được chuẩn hóa theo hàng

Nguồn tin: Towards Data Science — Tác giả: Marco Hening Tallarico. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.