Como eu usei o “Machine Learning” para prever jogos de futebol por 24 meses seguidos

Como eu usei o “Machine Learning” para prever jogos de futebol por 24 meses seguidos

Há dois anos, perguntei-me se seria possível usar o aprendizado de máquina para prever melhor o resultado dos jogos de futebol, principalmente o jogo do Barcelona ao vivo.

Decidi fazer uma tentativa séria e hoje, dois anos e dados contextuais de 30.000 jogos de futebol depois, obtive muitas informações interessantes.

Aqui vai:

O desafio do Big Data: que comece a mineração de dados

Para começar, coletei o máximo de pontos de dados possível.

Pesquisei dados de jogos antigos de todas as fontes e APIs diferentes que pude encontrar. Alguns dos mais importantes foram dados de futebol, Everysport e Betfair.

Em seguida, fundei esses pontos de dados com os resultados correspondentes, quantifiquei e coloquei tudo em um banco de dados. Por fim, usei os dados para treinar um modelo de aprendizado de máquina, para ser usado como meu software para prever os próximos jogos.

Como medir as previsões do imprevisível

A natureza de uma partida de futebol é, obviamente, imprevisível. Eu acho que é por isso que amamos o jogo, certo?

Ainda assim, fiquei um pouco obcecado com a noção ingênua de que eu, armado com um modelo de aprendizado de máquina orientado a dados, seria capaz de prever jogos melhor do que normalmente faria. Nesse ponto, baseei a maior parte de minhas apostas esportivas em emoções (“sentimentos”) em vez de dados reais.

O primeiro desafio foi descobrir como medir se meu modelo estava ou não tendo sucesso. Percebi rapidamente que medir a porcentagem real de jogos adivinhados corretamente não agregava muito valor – não sem alguma forma de contexto.

jogo do Barcelona ao vivo, jogo do Palmeiras ao vivo, Campeonato Alemão ao vivo, Campeonato Espanhol ao vivo, Campeonato Francês ao vivo

Decidi comparar a produção do modelo com os melhores palpites do mercado real do jogo do Palmeiras ao vivo. A maneira mais fácil de avaliar esses dados foi colher probabilidades regulamentadas pelo mercado. Portanto, comecei a comparar o desempenho do meu modelo se apostasse na Betfair, apenas porque suas chances são ajustadas com base em pessoas reais apostando dinheiro real umas contra as outras.

Resultados: Meu modelo me deixou rico?

Avançando para hoje: agora – dois anos se passaram. O modelo me fez um homem rico?

Bem não.

Logo percebi que minhas previsões, na maioria das vezes, estavam alinhadas com o melhor desempenho do mercado.

Como usei um modelo baseado em regressão, fui capaz de prever a força da probabilidade de um determinado resultado de um jogo. E com as maiores probabilidades de probabilidade, meu modelo prediz aproximadamente 70% dos jogos corretamente. Como o mercado tem um desempenho tão bom, torna-me difícil realmente ganhar dinheiro com minhas apostas no Campeonato Alemão ao vivo.

Mas, para ser sincero, também nunca pensei que criaria uma “máquina de dinheiro”. Em vez disso, cheguei a várias idéias bastante interessantes sobre as possibilidades (e limitações!) De big data e aprendizado de máquina:

Aprendizado de máquina e ganhos decrescentes

Em teoria, o aprendizado de máquina deve ser capaz de melhorar com o tempo. A quantidade de dados que o modelo precisa aprender aumenta, aumentando o resultado das previsões.

Bem, essa não foi minha experiência.

Há dois anos, comecei com cerca de 2.000 jogos no meu banco de dados – e com conjuntos de dados bastante limitados anexados a eles. Hoje, tenho quase 30.000 jogos no banco de dados, completos com muitos metadados que cobrem tudo, desde clima e distâncias entre o terreno da equipe da equipe até chutes e cantos.

Tudo isso acrescentou dados – e o fato de o modelo ter sido capaz de “aprender” ao longo do tempo! – ainda não melhorou suas previsões. Parece que o big data e o aprendizado de máquina apenas levam você tão longe na tentativa de prever o imprevisível.

O poder das generalizações não tendenciosas

O poder do aprendizado de máquina sobre o Campeonato Espanhol ao vivo parece estar intimamente ligado à sua capacidade de fazer generalizações imparciais.

Por exemplo: Nos últimos dois anos, fiquei curioso para ver se meu modelo poderia prever quando uma série de vitórias ou derrotas seria quebrada. Se, por exemplo, pudesse prever quando o Barcelona finalmente perderia depois de vencer dez jogos seguidos. Meu modelo poderia provar que certas anomalias são significativas?

Bem, demonstrou não ser tão bom nisso.

O que eu descobri foi que o modelo era surpreendentemente bom em apostar contra times supervalorizados ao longo do tempo.

jogo do Barcelona ao vivo, jogo do Palmeiras ao vivo, Campeonato Alemão ao vivo, Campeonato Espanhol ao vivo, Campeonato Francês ao vivo

Na última temporada, vi como meu modelo costumava prever o Borussia Dortmund, enquanto o mercado fazia outra previsão. Dortmund acabou tendo uma temporada ruim, tornando meu modelo vantajoso em comparação com as previsões do mercado. Nesta temporada, vi o mesmo em equipes como Liverpool e Chelsea.

Portanto, a lição aprendida é que algumas pessoas tendem a tomar decisões baseadas em emoções. Liverpool e Dortmund são times apreciados por muitas pessoas e, às vezes, você faz previsões com o coração, e não com o cérebro. Meu modelo de aprendizado de máquina, bem, não.

Aprendizado de máquina e ganhos fáceis

Pelo menos, aprendi que é difícil fazer previsões que superem o mercado. Ainda assim, quando comecei a olhar para o que havia conseguido (em vez de ficar obcecado com o que não tinha), descobri um fato bastante surpreendente:

Em um programa Python simples e com menos de 10.000 linhas de código, eu ainda havia criado algo que tinha um desempenho tão bom quanto o mercado. Quantas horas-homem não estão por trás dos apostadores, modelos e previsões de chances? O modelo pode fazer apostas atraentes semanalmente do Campeonato Francês ao vivo, como faria qualquer jornal ou especialista. Ao fazer generalizações, talvez você não consiga encontrar aquela aposta que o enriquecerá – mas poderá economizar muito tempo no contexto certo.

Implementando o Machine Learning para amplas idéias

Com essas idéias em mente, comecei a analisar outro projeto em que participei nos últimos cinco anos; a plataforma de idéias Wide Ideas, uma plataforma para as empresas disponibilizarem ideias e criatividade.

O que eu queria fazer era examinar as idéias que as empresas recolhem de seus funcionários e tentar prever se a idéia seria implementada ou não.

A equipe e eu quantificamos os dados, mas, em vez de disparos nas previsões de objetivo e de tempo, analisamos quantas haviam interagido com uma ideia – e de que maneira. E eis que eis; o resultado foi semelhante às previsões do futebol:

Agora, podemos fazer previsões decentes sobre se uma ideia criativa será ou não implementada ou não. Podemos visualizar isso de forma a incentivar mais grandes idéias por meio da gamificação.

jogo do Barcelona ao vivo, jogo do Palmeiras ao vivo, Campeonato Alemão ao vivo, Campeonato Espanhol ao vivo, Campeonato Francês ao vivo

Podemos encontrar uma boa ideia que não segue os padrões gerais de uma boa ideia? Não, não realmente – ainda não pelo menos.

Ainda assim, para o produto, e considerando que você olha para uma organização que pode colher 10.000 idéias por ano, encontrar maneiras de destacar e incentivar idéias específicas pode economizar tempo e recursos. Portanto, apenas passar de 10.000 idéias para 100 provavelmente boas idéias e visualizar o resultado economiza muito tempo.

A grande diferença entre fabricar máquinas tão boas quanto os humanos e realmente torná-las melhores do que nós

O big data e o aprendizado de máquina podem prever qualquer coisa, desde o câncer em estágio inicial até a fabricação de carros autônomos, antecipando perigos potenciais. Modelos como esse provavelmente serão mais úteis quando generalizações economizam tempo.

Veja as implementações médicas, por exemplo. Examinando milhares de fotos de marcas de nascença, um modelo poderia ajudar a escolher as mais prováveis ​​de serem câncer, economizando assim tempo e recursos valiosos aos médicos.

No entanto, o comportamento humano pode ser complicado. De que maneira o comportamento humano é previsível? Somos racionalmente irracionais. Poderemos generalizar, colocando as pessoas em diferentes categorias com base no que você gosta de comer, assistir ou fazer, mas pode haver muitos fatores que nos diferenciam como indivíduos.

O big data e o aprendizado de máquina serão capazes de detectar as anomalias – ou serão excelentes em fazer generalizações?

Espero que vivamos um futuro em que as empresas se concentrem na análise de dados real, em vez de pensar que “big data” por padrão é igual a “melhores dados”.

Portanto, até que alguém me mostre errado (ou Arnold Schwarzenegger retorne do futuro, o que ocorrer primeiro), acredito que o aprendizado de máquina deve ser usado onde as generalizações melhor podem economizar tempo de humanos reais. Caso contrário, o risco é que teremos tantas métricas que a quantidade suficiente sufocaria qualquer possibilidade de fazer sentido.