Dự đoán người chiến thắng trận bóng đá chỉ dựa trên kết quả của các trận đấu trước đó giữa hai đội


8

Tôi là một người hâm mộ bóng đá (bóng đá) khổng lồ và cũng thích học máy. Là một dự án cho khóa ML của tôi, tôi đang cố gắng xây dựng một mô hình dự đoán cơ hội chiến thắng cho đội chủ nhà, được đặt tên của đội chủ nhà và đội khách. (Tôi truy vấn dữ liệu của mình và theo đó tạo ra các bảng dữ liệu dựa trên các trận đấu trước đó giữa 2 đội đó)

Tôi có dữ liệu cho một vài mùa cho tất cả các đội tuy nhiên tôi có các vấn đề sau mà tôi muốn được tư vấn. EPL (Ngoại hạng Anh) có 20 đội chơi với nhau ở nhà và sân khách (tổng số 380 trận trong một mùa). Như vậy, mỗi mùa, bất kỳ hai đội nào chơi với nhau chỉ hai lần.

Tôi có dữ liệu trong hơn 10 năm qua, kết quả là 2 * 10 = 20 điểm dữ liệu cho hai đội. Tuy nhiên tôi không muốn đi qua 3 năm vì tôi tin rằng các đội thay đổi khá đáng kể theo thời gian (ManCity, Liverpool) và điều này sẽ chỉ đưa thêm lỗi vào hệ thống.

Vì vậy, kết quả này chỉ trong khoảng 6-8 điểm dữ liệu cho mỗi cặp đội. Tuy nhiên, tôi có một số tính năng (tối đa 20+) cho mỗi điểm dữ liệu như mục tiêu toàn thời gian, mục tiêu nửa thời gian, chuyền, sút, vàng, đỏ, v.v. cho cả hai đội để tôi có thể bao gồm các tính năng như hình thức gần đây, gần đây mẫu nhà, mẫu sân khách gần đây, vv

Tuy nhiên, ý tưởng về việc chỉ có 6-8 datapoint để đào tạo với tôi dường như không chính xác. Bất kỳ suy nghĩ về cách tôi có thể chống lại vấn đề này? (nếu đây là một vấn đề ở nơi đầu tiên)


Lợi thế sân nhà có vẻ khá quan trọng đối với tôi dựa trên các nghiên cứu tôi đã đọc (Tôi là kỹ sư / nhà kinh tế và là người hâm mộ BVB). Bạn cũng có thể xem xét PK; trung bình họ không thay đổi kết quả trận đấu dài hạn (đọc Soccernomics ), nhưng có thể ảnh hưởng lớn đến một trận đấu cá nhân.
gregmacfarlane

Nếu bạn thực sự chỉ muốn sử dụng tên của các đội, bạn có thể sử dụng loại hệ thống xếp hạng được sử dụng cho cờ vua hoặc các trò chơi hai người khác, ví dụ [Elo] [1] hoặc [Trueskill] [2]. Ngoài ra còn có [cuộc thi Kaggle] [3] về điều này. Bạn có thể có thể bắt đầu với một trong những hệ thống này và sau đó nâng cao nó bằng cách sử dụng các hiệp phương sai khác. [1]: en.wikipedia.org/wiki/Elo_rating_system [2]: en.wikipedia.org/wiki/TrueSkill [3]: kaggle.com/c/chess
Flounderer

Suy nghĩ duy nhất mà bạn sẽ biết trước trận đấu là kết quả trước đó và thứ hạng. Bạn sẽ không có thông tin về các cảnh quay, góc ets, do đó bạn cần tạo các tính năng hợp lý và được cung cấp.
Fierce82

Câu trả lời:


2

Điều gì về việc cải thiện dữ liệu của bạn bằng cách xem xét một số dữ liệu về các trận đấu so với cùng một đối thủ?

Thí dụ:

TeamA vs TeamC: 1-0
TeamB vs TeamC: 2-0
=> "infer" the fake outcome: TeamA vs TeamB: 1-2

Hơn nữa, theo tôi loại ngày này tốt hơn dữ liệu mà bạn đề xuất, bởi vì các đội năm ngoái thường là các đội rất khác nhau.


Đề nghị tuyệt vời! Cảm ơn Aslan986 .. Tuy nhiên, tôi tin rằng điều này sẽ đóng góp vào danh sách các tính năng. Tôi không thấy làm thế nào chúng ta có thể sử dụng dữ liệu này như một 'datapoint'. Tuy nhiên, cảm ơn, tôi chắc chắn sẽ thử điều này.
keithxm23
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.