Hi, I am

Ngô Tôn

I am a programmer.

Home / AI/ML/DL/DS / Phân tích dữ liệu kết quả bóng đá Ngoại hạng Anh

Phân tích dữ liệu kết quả bóng đá Ngoại hạng Anh

Hôm nay Ngô Tôn .IT sẽ cùng các bạn phân tích dữ liệu kết quả bóng đá Ngoại hạng Anh sau khi mùa giải 2020-2021 vừa kết thúc cách đây không lâu. Chúng ta sẽ cùng nhau phân tích từ các số liệu của 29 mùa đã qua để chuẩn bị dự đoán cho mùa giải sắp tới nhé.

Dataset mà chúng ta sẽ sử dụng là từ Kaggle, chứa thông tin về hơn 10.000 trận đấu tại Premier League đã diễn ra. Các bạn có thể tải về tập dữ liệu tại đây.

Chúng ta cũng sẽ sử dụng các thư viện python như NumPy, Pandas, MatplotlibSeaborn trong bài viết này.

Dataset

Hãy bắt đầu bằng cách tải xuống tập dữ liệu từ Kaggle. Ở đây chúng ta sử dụng thư viện opendatasets của Python để tải xuống tập dữ liệu.

Data Preparation and Cleaning

Trong bất kỳ dự án phân tích dữ liệu nào (Data Analysis), khi làm việc với dữ liệu thô trong thế giới thực, điều rất cần thiết là phải chuẩn bị dữ liệu cho việc phân tích. Có thể có mục nhập sai, thiếu giá trị cần được xử lý. Cùng với đó, chúng ta có thể thêm các cột mới vào tập dữ liệu, những cột này hữu ích cho việc phân tích của chúng ta hoặc chúng ta có thể muốn hợp nhất một vài tập dữ liệu với nhau, điều này nên được thực hiện như một bước sơ bộ. Chúng ta sẽ chuyển đổi tập dữ liệu thành Pandas DataFrame.

Pandas là một thư viện Python cung cấp cho chúng ta các chức năng tiện dụng để làm sạch dữ liệu, hợp nhất, hoạt động, v.v. Nó tạo ra một đối tượng được gọi là DataFrame, về cơ bản là dữ liệu được biểu diễn dưới dạng bảng. Chúng ta có thể đọc các loại tệp khác nhau, ví dụ. CSV, JSON, XLSX, …

Chúng ta thấy tập dữ liệu chứa kết quả của tất cả các trận đấu từ mùa giải 1993–94 đến mùa giải 2020–21. Bao gồm các label:

FTHG: Bàn thắng trên sân nhà cả trận.
FTAG: Bàn thắng trên sân khách cả trận.
FTR: Kết quả cuối trận.
HTHG: Bàn thắng trên sân nhà trong hiệp một.
HTAG: Bàn thắng trên sân khách trong hiệp một.
HTR: Kết quả trong hiệp một.
HS: Số cú sút của đội chủ nhà.
AS: Số cú sút của đội khách.
HST: Số cú sút trúng đích của đội chủ nhà.
AST: Số cú sút trúng đích của đội khách.
HC: Số phạt góc của đội chủ nhà.
AC: Số phạt góc của đội khách.
HF: Số phạm lỗi của đội chủ nhà.
AF: Số phạm lỗi của đội khách.
HY: Số thẻ vàng của đội chủ nhà.
AY: Số thẻ vàng của đội khách.
HR: Số thẻ đỏ của đội chủ nhà.
AR: Số thẻ đỏ của đội khách.

Thử xem nào

Bây giờ dữ liệu của chúng ta đã sẵn sàng để trực quan hóa (Visualization).

Exploratory Analysis and Visualization

Chúng ta sẽ sử dụng hai thư viện trực quan hóa dữ liệu, đó là MatplotlibSeaborn. Các thư viện này chứa các phương pháp hữu ích để vẽ đồ thị và biểu đồ.

Matplotlib cung cấp chức năng cơ bản trong khi Seaborn xây dựng dựa trên Matplotlib để cung cấp chức năng nâng cao trong rất ít dòng mã. Các bạn có thể tự tìm hiểu 2 thư viện này ở bài viết khác nhé.

Phân tích theo mùa giải

Hãy xem dữ liệu và so sánh các xu hướng dựa trên mùa giải. Ở đây, trước tiên chúng ta sẽ sắp xếp dữ liệu theo mùa bằng cách sử dụng hàm .groupby().

Số bàn thắng mỗi mùa giải

Hãy so sánh số bàn thắng ghi được mỗi mùa. Chúng ta sẽ tạo ra một cột mới là phần bổ sung các bàn thắng được ghi bởi đội nhà và các bàn thắng được ghi bởi đội khách.

Ở đây mình sử dụng hàm barplot() từ thư viện seaborn. Với tham số Goals cho trục x, Season cho trục y axis và data, seaborn sẽ tự động tìm x và y từ dữ liệu đã cho.

Số bàn thắng của đội chủ nhà và đội khách

Mình sẽ tạo double barplot.

So sánh số lần dứt điểm

Bây giờ, hãy cùng khám phá số lần dứt điểm của đội chủ nhà so với  đội khách trong mỗi mùa giải. Chúng ta có thể vẽ nhiều đường trong cùng một biểu đồ bằng sns.lineplot().

So sánh tổng bàn thắng giữa các đội bóng

Chúng ta sẽ tổng hợp số bàn thắng ghi được của đội nhà và đội khách bằng biểu đồ đơn giản.

Tỉ lệ thắng của đội chủ nhà

Chúng ta sẽ tính toán tỷ lệ phần trăm các trận đấu trên sân nhà mà một đội đã thắng.

Về cơ bản chúng ta đã biết các dữ liệu cơ bản về tập dữ liệu mà chúng ta có. Chỉ một vài dòng mã có thể tạo ra một tập dữ liệu khổng lồ chứa dữ liệu thô và nhiều giá trị của nó.

Bây giờ chỉ cần một vài dòng mã sau đây, chúng ta biết thêm nhiều điều về những gì đang diễn ra ở Premier League và các xu hướng chính. Chúng ta hãy đi sâu hơn và trả lời một số câu hỏi thú vị về tập dữ liệu có thể giúp chúng ta hiểu dữ liệu tốt hơn.

Trọng tài nào rút nhiều thẻ đỏ nhất

Chúng ta nhóm dữ liệu dựa trên Referee và tính tổng các giá trị. Mình cũng sẽ vẽ biểu đồ cho các thẻ đỏ.

Mùa giải nào chứng kiến nhiều cuộc lội ngược dòng nhất

Ở đây mình sẽ tìm những đội đã bị dẫn trước ở hiệp 1 sau đó lội ngược dòng thắng trong hiệp 2.

  • HTR != FTR
  • (FTR hoặc HTR) != D hoặc hòa.

Bảng xếp hạng cuối mùa giải

Có thể lập bảng điểm cho từng mùa giải. Trước tiên, chúng ta sẽ cần tìm các số liệu thống kê sau cho các đội nhà:

– Số trận trên sân nhà đã chơi.
– Số trận đội nhà đã thắng.
– Số trận đội nhà hòa.
– Số trận đội nhà bị thua.
– Bàn thắng ghi được và bàn thủng lưới.

Tương tự với đội khách

Sau đó, chúng ta hợp nhất lại.

Xem kết quả nào.

Chúng ta có thể nhìn thấy:

  • Manchester City đã giành chức vô địch Premier League 2020–21.
  • Man City, Man Utd, Liverpool và Chelsea sẽ chơi ở Champions League 2021–22 (Top 4)
  • Leicester và West Ham sẽ chơi ở Europa League và Tottenham sẽ chơi ở Europa Conference League.
  • Fulham, West Brom và Sheffield Utd đã phải xuống hạng khỏi Premier League.

Vậy là cơ bản đã xong, chúng ta đã thấy số liệu thống kê từ các mùa giải khác nhau so sánh như thế nào, các đội khác nhau xếp hạng như thế nào tại Premier League. Chúng ta đã biết được Premier League là gì và nó hoạt động như thế nào. Chúng ta cũng đã thấy một số xu hướng thú vị.

Vẫn còn rất nhiều dữ liệu để các bạn khai phá. Chúc bạn may mắn khi bước vào thế giới khoa học dữ liệu (Data Science) tuyệt vời này!

Hôm nay Ngô Tôn .IT sẽ cùng các bạn phân tích dữ liệu kết quả bóng đá Ngoại hạng Anh sau khi mùa giải 2020-2021 vừa kết thúc cách đây không lâu. Chúng ta sẽ cùng nhau phân tích từ các số liệu của 29 mùa đã qua để chuẩn bị dự đoán cho mùa giải sắp tới nhé. Dataset mà chúng ta sẽ sử dụng là từ Kaggle, chứa thông tin về hơn 10.000 trận đấu tại Premier League đã diễn ra. Các bạn có thể tải về tập dữ liệu tại đây. Chúng ta cũng sẽ sử dụng các thư viện python như NumPy,…

User Rating: 5 ( 1 votes)

About ngoton

Ngô Tôn is a programmer with passion for tailored software solutions. Comes with 6+ years of IT experience, to execute beautiful front-end experiences with secure and robust back-end solutions.

Check Also

Thử giả Sơn Tùng MTP bằng Deepfake

Mấy năm trở lại đây, từ khóa Deepfake không còn xa lạ gì với mọi …

Leave a Reply

Your email address will not be published. Required fields are marked *