Previsão do vencedor da partida de futebol com base apenas no resultado de partidas anteriores entre as duas equipes

8

Sou um grande fã de futebol e também estou interessado em aprendizado de máquina. Como projeto para o meu curso de ML, estou tentando criar um modelo que preveja a chance de ganhar para o time da casa, dados os nomes do time em casa e fora. (Eu consulto meu conjunto de dados e, portanto, crio pontos de dados com base em correspondências anteriores entre essas duas equipes)

Tenho dados para várias temporadas para todas as equipes, mas tenho os seguintes problemas com os quais gostaria de receber alguns conselhos. O EPL (English Premier League) possui 20 times que se enfrentam em casa e fora (380 jogos no total em uma temporada). Assim, a cada temporada, duas equipes jogam entre si apenas duas vezes.

Eu tenho dados dos últimos 10 anos, resultando em 2 * 10 = 20 pontos de dados para as duas equipes. No entanto, não quero passar dos últimos três anos, pois acredito que as equipes mudam consideravelmente ao longo do tempo (ManCity, Liverpool) e isso apenas introduziria mais erros no sistema.

Portanto, isso resulta em cerca de 6 a 8 pontos de dados para cada par de equipe. No entanto, tenho vários recursos (até 20+) para cada ponto de dados, como gols em tempo integral, gols no intervalo, passes, chutes, amarelos, vermelhos etc. para ambas as equipes, para que eu possa incluir recursos como forma recente, recente formulário inicial, formulário ausente recente etc.

No entanto, a idéia de ter apenas 6-8 pontos de dados para treinar parece incorreta para mim. Alguma idéia de como eu poderia combater esse problema? (se isso for um problema em primeiro lugar)

keithxm23
fonte
A vantagem em campo parece bastante importante para mim, com base nos estudos que li (sou engenheiro / economista e fã da BVB). Você também pode considerar PKs; eles não alteram os resultados da correspondência de longo prazo em média (leia Soccernomics ), mas podem influenciar fortemente uma correspondência individual.
gregmacfarlane
Se você realmente quiser apenas usar os nomes das equipes, poderá usar o tipo de sistema de classificação usado para xadrez ou outros jogos para dois jogadores, por exemplo [Elo] [1] ou [Trueskill] [2]. Houve também um [concurso Kaggle] [3] sobre isso. Talvez você possa começar com um desses sistemas e aprimorá-lo usando as outras covariáveis. [1]: en.wikipedia.org/wiki/Elo_rating_system [2]: en.wikipedia.org/wiki/TrueSkill [3]: kaggle.com/c/chess
Solha dos
O único pensamento que você saberá antes de uma partida são os resultados anteriores e a classificação. Você não terá informações sobre brotos, cantos, portanto, é necessário criar recursos que sejam plausíveis e dados.
Fierce82

Respostas:

2

Que tal melhorar seu conjunto de dados, levando em consideração também alguns dados sobre as partidas contra o mesmo oponente?

Exemplo:

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

Além disso, na minha opinião, esse tipo de data é melhor que os dados que você propôs, porque as equipes do ano passado costumam ser equipes muito diferentes.

Aslan986
fonte
Excelente sugestão! Obrigado Aslan986 .. No entanto, acredito que isso contribuiria para a lista de recursos. Não vejo como poderíamos usar esses dados como um 'ponto de dados'. No entanto, obrigado, vou definitivamente tentar isso.
keithxm23