Bundesliga Match Fact Skill: quantificando as qualidades dos jogadores de futebol usando machine learning na AWS

Nó Fonte: 1195672

No futebol, como em muitos desportos, as discussões sobre jogadores individuais sempre fizeram parte da diversão. “Quem é o melhor marcador?” ou “Quem é o rei dos defensores?” são questões perenemente debatidas pelos fãs, e as redes sociais amplificam esse debate. Basta considerar que Erling Haaland, Robert Lewandowski e Thomas Müller sozinhos têm 50 milhões de seguidores no Instagram. Muitos fãs estão cientes das estatísticas incríveis que jogadores famosos como Lewandowski e Haaland criam, mas histórias como essa são apenas a ponta do iceberg.

Considere que quase 600 jogadores estão sob contrato na Bundesliga, e cada equipe tem seus próprios campeões – jogadores que são apresentados para trazer uma habilidade específica para uma partida. Veja, por exemplo, Michael Gregoritsch do FC Augsburg. Até o momento em que este artigo foi escrito (21ª rodada), ele marcou cinco gols na temporada 21/22, o que não faria ninguém mencioná-lo em uma conversa sobre os grandes goleadores. Mas vamos olhar mais de perto: se você acumular os valores de gols esperados (xGoals) de todas as chances de gol que Gregoritsch teve nesta temporada, o número que você obtém é 1.7. Isso significa que ele teve um desempenho superior em seus chutes a gol em +194%, marcando 3.2 gols a mais do que o esperado. Em comparação, Lewandowski teve um desempenho superior em apenas 1.6 gols (+7%). Que façanha! Claramente Gregoritsch traz uma habilidade especial para Augsburg.

Então, como podemos esclarecer todas as histórias ocultas sobre jogadores individuais da Bundesliga, suas habilidades e impacto nos resultados dos jogos? Entre no novo Bundesliga Match Fact desenvolvido pela AWS chamado Skill. A habilidade foi desenvolvida por meio de análise aprofundada pela DFL e AWS para identificar jogadores com habilidades em quatro categorias específicas: iniciador, finalizador, vencedor da bola e velocista. Esta postagem fornece um mergulho profundo nessas quatro habilidades e discute como elas são implementadas na infraestrutura da AWS.

Outro ponto interessante é que até agora, os fatos dos jogos da Bundesliga foram desenvolvidos de forma independente um do outro. Skill é o primeiro Bundesliga Match Fact que combina a produção de vários Bundesliga Match Fact em tempo real usando uma arquitetura de streaming construída em Kafka de streaming gerenciado da Amazon (Amazon MSK).

iniciador

Um iniciador é um jogador que realiza um grande número de primeiras e segundas assistências valiosas. Para identificar e quantificar o valor dessas assistências, introduzimos a nova métrica xAssist. É calculado rastreando o último e o penúltimo passe antes de um chute ao gol e atribuindo o respectivo valor de xGoals a essas ações. Um bom iniciador cria oportunidades em circunstâncias desafiadoras, completando passes com sucesso com uma taxa de dificuldade alta. Para avaliar o quão difícil é completar uma determinada passagem, usamos nossos dados existentes xPass modelo. Nesta métrica, excluímos propositalmente cruzamentos e cobranças de falta para focar em jogadores que geram chances de gol com suas assistências precisas em jogo aberto.

A pontuação de habilidade é calculada com a seguinte fórmula:

Vejamos o atual iniciador do Rank 1, Thomas Müller, como exemplo. Ele obteve um valor de xAssist de 9.23 até o momento em que este livro foi escrito (dia 21), o que significa que seus passes para os próximos jogadores que chutaram para o gol geraram um valor total de xGoal de 9.23. A proporção de xAssist por 90 minutos é de 0.46. Isso pode ser calculado a partir do tempo total de jogo na temporada atual, o que é notável – mais de 1,804 minutos de jogo. Como segunda assistência, gerou um valor total de 3.80, o que se traduz em 0.19 segunda assistência a cada 90 minutos. No total, 38 das suas 58 primeiras assistências foram passes difíceis. E como segunda assistência, 11 dos seus 28 passes também foram passes difíceis. Com estas estatísticas, Thomas Müller catapultou-se para o primeiro lugar no ranking de iniciadores. Para efeito de comparação, a tabela a seguir apresenta os valores dos três primeiros colocados atualmente.

.. xAssist xAssistper90 xSecondAssist xSecondAssistper90 Passes Difíceis Assistidos Passes DifíceisAssistido2 Pontuação Final
Thomas Müller – Posição 1 9.23 0.46 3.80 0.18 38 11 0.948
Serge Gnabry – Classificação 2 3.94 0.25 2.54 0.16 15 11 0.516
Florian Wirtz – Classificação 3 6.41 0.37 2.45 0.14 21 1 0.510

Finalizador

Um finalizador é um jogador excepcionalmente bom em marcar gols. Ele tem uma alta eficiência de chute e marca muitos gols de acordo com seu tempo de jogo. A habilidade é baseada nos gols reais marcados e na sua diferença em relação aos gols esperados (xGoals). Isso nos permite avaliar se as chances estão sendo bem exploradas. Suponhamos que dois atacantes tenham o mesmo número de gols. Eles são igualmente fortes? Ou um deles pontua em circunstâncias fáceis enquanto o outro termina em situações desafiadoras? Com eficiência de chute, isso pode ser respondido: se os gols marcados excederem o número de xGoals, um jogador está com desempenho superior e é um arremessador mais eficiente do que a média. Através da magnitude desta diferença, podemos quantificar até que ponto a eficiência de um atirador supera a média.

A pontuação de habilidade é calculada com a seguinte fórmula:

Para o finalizador, focamos mais nos gols. A tabela a seguir dá uma visão mais detalhada dos três primeiros colocados atualmente.

.. Objetivos MetasPor90 Eficiência de tiro Pontuação Final
Robert Lewandowski – Posição 1 24 1.14 1.55 0.813
Erling Haaland – Classificação 2 16 1.18 5.32 0.811
Patrik Schick – Classificação 3 18 1.10 4.27 0.802

Robert Lewandowski marcou 24 gols nesta temporada, o que o coloca em primeiro lugar. Embora Haaland tenha uma eficiência de chute maior, ainda não é suficiente para Haaland ficar em primeiro lugar, porque damos maior peso aos gols marcados. Isto indica que Lewandowski beneficia muito tanto da qualidade como da quantidade de assistências recebidas, embora tenha pontuado excepcionalmente bem. Patrick Schick marcou dois gols a mais que Haaland, mas tem uma taxa de gols a cada 90 minutos menor e uma eficiência de chutes menor.

Sprinter

O velocista tem a capacidade física de atingir altas velocidades máximas e fazê-lo com mais frequência do que outros. Para isso, avaliamos as velocidades máximas médias em todos os jogos da temporada atual de um jogador e incluímos a frequência de sprints por 90 minutos, entre outras métricas. Um sprint é contado se um jogador correr a um ritmo mínimo de 4.0 m/s por mais de dois segundos e atingir uma velocidade máxima de pelo menos 6.3 m/s durante esse tempo. A duração do sprint é caracterizada pelo tempo entre a primeira e a última vez que o limite de 6.3 m/s é atingido e precisa ter pelo menos 1 segundo para ser reconhecido. Um novo sprint só pode ser considerado ocorrido após o ritmo ter caído novamente abaixo do limite de 4.0 m/s.

A pontuação de habilidade é calculada com a seguinte fórmula:

A fórmula nos permite avaliar as muitas maneiras pelas quais podemos observar os sprints dos jogadores e ir além de apenas observar as velocidades máximas que esses jogadores produzem. Por exemplo, Jeremiah St. Juste tem o recorde da temporada atual de 36.65 km/h. No entanto, se olharmos para a frequência dos seus sprints, descobrimos que ele só corre nove vezes em média por partida! Alphonso Davies, por outro lado, pode não ser tão rápido quanto St. Juste (velocidade máxima de 36.08 km/h), mas realiza impressionantes 31 sprints por partida! Ele corre com muito mais frequência e velocidade média muito maior, abrindo espaço para sua equipe em campo.

Vencedor da bola

Um jogador com esta habilidade causa perdas de bola para a equipe adversária, tanto no total quanto no respectivo tempo de jogo. Ele vence um grande número de duelos terrestres e aéreos e rouba ou intercepta a bola com frequência, criando para si mesmo um controle de bola seguro e uma possibilidade para seu time contra-atacar.

A pontuação de habilidade é calculada com a seguinte fórmula:

No momento em que este livro foi escrito, o vencedor da bola em primeiro lugar era Danilo Soares. Ele tem um total de 235 duelos defensivos. Dos 235 duelos defensivos, ele venceu 75, derrotando adversários em confronto direto. Ele interceptou 51 bolas nesta temporada em sua posição de defesa, o que lhe dá uma taxa de vitórias de cerca de 32%. Em média, ele interceptou 2.4 bolas a cada 90 minutos.

Exemplo de habilidade

O Skill Bundesliga Match Fact nos permite revelar as habilidades e pontos fortes dos jogadores da Bundesliga. As classificações de Habilidade colocam em destaque jogadores que poderiam ter passado despercebidos antes em classificações de estatísticas convencionais como gols. Por exemplo, pegue um jogador como Michael Gregoritsch. Gregoritsch é um atacante do FC Augsburg que ficou em sexto lugar no ranking de finalistas na 21ª rodada. Ele marcou cinco gols até o momento, o que não o colocaria no topo de nenhum ranking de gols. Porém, ele conseguiu fazer isso em apenas 663 minutos jogados! Um desses gols foi o empate tardio, aos 97 minutos, que ajudou o Augsburg a evitar a derrota fora de casa em Berlim.

Através do Skill Bundesliga Match Fact, também podemos reconhecer diversas qualidades de cada jogador. Um exemplo disso é a estrela do Dortmund, Erling Haaland, que também conquistou o distintivo de velocista e finalizador, e atualmente está em sexto lugar entre os velocistas da Bundesliga.

Todas essas métricas são baseadas em dados de movimento do jogador, dados relacionados a gols, dados relacionados à ação da bola e dados relacionados a passes. Processamos essas informações em pipelines de dados e extraímos as estatísticas relevantes necessárias por habilidade, permitindo-nos calcular o desenvolvimento de todas as métricas em tempo real. Muitas das estatísticas acima mencionadas são normalizadas pelo tempo em campo, permitindo considerar jogadores que têm pouco tempo de jogo, mas que têm um desempenho surpreendentemente bom quando jogam. As combinações e pesos das métricas são combinados em uma única pontuação. O resultado é uma classificação para todos os jogadores nas habilidades dos quatro jogadores. Os jogadores classificados entre os 10 primeiros recebem um distintivo de habilidade para ajudar os torcedores a identificar rapidamente as qualidades excepcionais que eles trazem para seus times.

Implementação e arquitetura

Os fatos dos jogos da Bundesliga desenvolvidos até agora são independentes uns dos outros e dependem apenas da ingestão de dados posicionais e de eventos, bem como de seus próprios cálculos. No entanto, isso muda para o novo Match Fact Skill da Bundesliga, que calcula classificações de habilidade com base em dados produzidos por Match Facts existentes, como por exemplo xGoals ou xPass. O resultado de um evento, possivelmente um gol incrível com poucas chances de entrar, pode ter um impacto significativo na classificação de habilidade do finalizador. Portanto, construímos uma arquitetura que sempre fornece as classificações de habilidades mais atualizadas sempre que há uma atualização nos dados subjacentes. Para obter atualizações em tempo real das habilidades, usamos o Amazon MSK, um serviço gerenciado da AWS para Apache Kafka, como solução de streaming de dados e mensagens. Desta forma, diferentes fatos dos jogos da Bundesliga podem comunicar os últimos eventos e atualizações em tempo real.

A arquitetura subjacente do Skill consiste em quatro partes principais:

  • An Cluster sem servidor do Amazon Aurora armazena todas as saídas de fatos de correspondência existentes. Isto inclui, por exemplo, dados para cada passe (como xPass, jogador, recebedor pretendido) ou chute (xGoal, jogador, gol) que ocorreu desde a introdução dos fatos da partida da Bundesliga.
  • Uma central AWS Lambda A função grava as saídas do Bundesliga Match Fact no banco de dados Aurora e notifica outros componentes de que houve uma atualização.
  • Uma função Lambda para cada habilidade individual calcula a classificação da habilidade. Estas funções são executadas sempre que novos dados estão disponíveis para o cálculo da habilidade específica.
  • Um cluster Amazon MSK Kafka serve como ponto central de comunicação entre todos esses componentes.

O diagrama a seguir ilustra esse fluxo de trabalho. Cada Bundesliga Match Fact envia imediatamente uma mensagem de evento para Kafka sempre que há uma atualização em um evento (como um valor de xGoals atualizado para um evento de chute). A função Lambda do despachante central é acionada automaticamente sempre que um Bundesliga Match Fact envia tal mensagem e grava esses dados no banco de dados. Em seguida, ele envia outra mensagem via Kafka contendo os novos dados de volta ao Kafka, que serve como um gatilho para as funções de cálculo de habilidades individuais. Essas funções usam dados desse evento acionador, bem como do cluster Aurora subjacente, para calcular e publicar as classificações de habilidades mais recentes. Para uma análise mais aprofundada do uso do Amazon MSK neste projeto, consulte a postagem do blog Set Piece Threat.

Resumo

Neste post, demonstramos como a nova Bundesliga Match Fact Skill torna possível comparar objetivamente os jogadores da Bundesliga em quatro dimensões principais de jogadores, com base e combinando antigos fatos independentes da Bundesliga Match Facts em tempo real. Isso permite que comentaristas e fãs descubram habilidades de jogadores anteriormente despercebidas e esclareçam os papéis que vários jogadores da Bundesliga desempenham.

O novo Bundesliga Match Fact é o resultado de uma análise aprofundada realizada pelos especialistas em futebol da Bundesliga e pelos cientistas de dados da AWS para destilar e categorizar as qualidades dos jogadores de futebol com base em dados objetivos de desempenho. Os emblemas de habilidade dos jogadores são mostrados na escalação e nas páginas de detalhes dos jogadores no aplicativo da Bundesliga. Na transmissão, as habilidades dos jogadores são fornecidas aos comentaristas através do localizador de história de dados e mostrado visualmente aos fãs na substituição do jogador e quando um jogador sobe para o respectivo ranking dos 10 primeiros.

Esperamos que você goste deste novíssimo Fato de Jogo da Bundesliga e que ele forneça novas informações sobre o jogo. Para saber mais sobre a parceria entre AWS e Bundesliga, visite Bundesliga na AWS!


Sobre os autores

simon rofes jogou 288 jogos da Bundesliga como meio-campista central, marcou 41 gols e ganhou 26 partidas pela Alemanha. Atualmente, Rolfes atua como Diretor Esportivo do Bayer 04 Leverkusen, onde supervisiona e desenvolve a lista de jogadores profissionais, o departamento de olheiros e o desenvolvimento juvenil do clube. Simon também escreve colunas semanais no Bundesliga.com sobre as últimas informações sobre partidas da Bundesliga com tecnologia AWS

Luuk Figdor é especialista sênior em tecnologia esportiva na equipe de serviços profissionais da AWS. Ele trabalha com jogadores, clubes, ligas e empresas de mídia como a Bundesliga e a Fórmula 1 para ajudá-los a contar histórias com dados usando aprendizado de máquina. Nas horas vagas, ele gosta de aprender tudo sobre a mente e a intersecção entre psicologia, economia e IA.

Pascal Kuhner é desenvolvedor de aplicativos em nuvem na equipe de serviços profissionais da AWS. Ele trabalha com clientes de todos os setores para ajudá-los a alcançar resultados de negócios por meio de desenvolvimento de aplicativos, DevOps e infraestrutura. Ele é muito apaixonado por esportes e gosta de jogar basquete e futebol nas horas vagas.

Tareq Haschemi é consultor da AWS Professional Services. Suas habilidades e áreas de especialização incluem desenvolvimento de aplicativos, ciência de dados, aprendizado de máquina e big data. Baseado em Hamburgo, ele apoia clientes no desenvolvimento de aplicações baseadas em dados na nuvem. Antes de ingressar na AWS, ele também foi consultor em diversos setores, como aviação e telecomunicações. Ele é apaixonado por capacitar os clientes em sua jornada de dados/IA para a nuvem.

Jakub Michalczyk é cientista de dados na Sportec Solutions AG. Há vários anos, ele escolheu estudar matemática em vez de jogar futebol, quando chegou à conclusão de que não era bom o suficiente neste último. Agora ele combina essas duas paixões em sua carreira profissional, aplicando métodos de aprendizado de máquina para obter uma visão melhor desse belo jogo. Nas horas vagas, ele ainda gosta de jogar futebol de sete, assistir filmes policiais e ouvir músicas de filmes.

Javier Poveda-Panter é um cientista de dados para clientes de esportes da EMEA na equipe de serviços profissionais da AWS. Ele permite que os clientes da área de esportes de espectadores inovem e capitalizem seus dados, oferecendo experiências de alta qualidade para usuários e fãs por meio de aprendizado de máquina e ciência de dados. Ele segue sua paixão por uma ampla gama de esportes, música e IA em seu tempo livre.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS