O README deste repositório é um guia de recursos de materiais de aprendizagem, fontes de dados, bibliotecas, artigos, blogs, etc., criado por todos aqueles que fizeram contribuições para a comunidade analítica de futebol de código aberto. Este repositório GitHub e lista de recursos são sempre um trabalho em andamento, com novos recursos adicionados semirregularmente. Se você acha que perdi algum recurso, sinta-se à vontade para criar uma solicitação pull ou me enviar uma mensagem nos links acima e entrarei em contato com você o mais rápido possível!
Se você gostar do repositório, sinta-se à vontade para dar um (canto superior direito). Saúde!
Para obter mais informações sobre este repositório e o autor, consulte o seguinte:
O código neste repositório é escrito em uma mistura de Python e R. Antes de começar, certifique-se de ter os seguintes pré-requisitos instalados:
Bibliotecas gerais de ciência de dados Python:
NumPy
para computação de array multidimensional;pandas
para análise e manipulação de dados;matplotlib
e Seaborn
para visualização de dados; escitkit-learn
e SciPy
para aprendizado de máquina.Bibliotecas Python de análise de futebol:
kloppy
- um pacote para padronizar dados de rastreamento e eventos de Koen Vossen e Jan Van Haaren. Veja o tutorial do YouTube [link]floodlight
by Floodlight-sports - pacote para análise simplificada de dados esportivos. Ele foi projetado com um foco claro na computação científica e baseado em bibliotecas populares como numpy ou pandas. Veja a seguinte documentação [link]matplotsoccer
- uma biblioteca Python para visualizar dados de eventos de futebol por Tom Decroosmplsoccer
- uma biblioteca Python para traçar campos de futebol em matplotlib por Andrew RowlinsonPySport
incluindo PySport Soccer
- coleção de pacotes esportivos de código aberto, incluindo muitos dos mencionados nesta seção, por Koen VossenScraperFC
de Owen Seymour - um pacote Python para extrair dados de FiveThirtyEight, FBref, Understat, Club Elo, Capology e TransferMarkt. Dados de eventos Opta previamente extraídos por meio do WhoScored? match center (funcionalidade agora removida, mas veja versões antigas e repositórios do GitHub para encontrar este código)statsbombapi
- um wrapper de API Python e classes de dados para dados StatsBombstatsbombpy
- uma biblioteca Python escrita por Francisco Goitia para acessar dados do StatsBombsocceraction
- uma biblioteca Python para avaliar as ações individuais realizadas por jogadores de futebol. Inclui uma implementação de Ameaça Esperada (xT) por Tom Decroos et. al.soccer_xg
por ML KU Leuven - um pacote Python para treinar e analisar modelos de gols esperados (xG) no futebolsoccerdata
- extraia dados de futebol do Club Elo, ESPN, FBref, FiveThirtyEight, Football-Data.co.uk, SoFIFA e WhoScored por Pieter Robberechtstyrone_mings
por FCrSTATS - um webscraper Python TransferMarkt Bibliotecas gerais de ciência de dados R:
Bibliotecas R de análise de futebol:
ggsoccer
de Ben Torvaney - uma biblioteca de visualização de futebol em RggshakeR
de Abhishek Mishra - um pacote R de análise e visualização que funciona com dados de futebol disponíveis publicamente. Veja a seguinte documentação [link]StatsBombR
- um pacote R para transmitir facilmente dados StatsBomb da API usando suas credenciais de login ou do repositório Open Data GitHub gratuitamente para Rsoccermatics
de Joe Gallagher - um pacote R para visualização e análise de rastreamento de futebol e dados de eventosworldfootballR
por Jason Zivkovic - um pacote R para extrair dados do futebol mundial do FBref, TransferMarkt, Understat e fotmob (veja o guia sobre como usar este pacote [link])? Retornar
O conteúdo deste repositório GitHub está organizado da seguinte forma:
eddwebster/football_analytics/ ➡️ central repository of code and analysis by Edd Webster ?⚽
│
├── dashboards/ ➡️ store of Tableau dashboards used for analysis ?
│
├── data/ ➡️ a selection of raw and processed data extracts by various providers ??
│ ├── capology
│ ├── davies
│ ├── elo
│ ├── fbref
│ ├── fifa
│ ├── guardian
│ ├── metrica-sports
│ ├── opta
│ ├── reference
│ ├── sb
│ ├── shots
│ ├── stats-perform
│ ├── stratabet
│ ├── tm
│ ├── touchline-analytics
│ ├── twenty-first-group
│ ├── understat
│ └── wyscout
│
├── docs/ ➡️ store of documentation for different vendors ?
│ ├── centre-circle
│ ├── metrica-sports
│ ├── opta
│ ├── sb
│ ├── shots
│ ├── stratabet
│ └── wyscout
│
├── fonts/ ➡️ store of custom and externally acquired fonts used for data visualisation ✍️?
│
├── ? .gitignore ➡️ ignore unnecessary files for version control with Git ?
│
├── img/ ➡️ store of images used for analysis including club badges, vendor logos and official media images ??
│ ├── club_badges/ # badges for football clubs
│ ├── edd_webster/ # images related to Edd Werbster
│ ├── fig/ # generated figures derived from analysis and reports in this repository
│ ├── gif/ # GIF images
│ ├── memes/ # memes
│ ├── pitches/ # images of football pitches and goals used mostly for Tableau visualisation
│ ├── players/ # images of football players
│ ├── vendors/ # logos for data vendors e.g. StatsBomb
│ ├── vizpiration/ # high-quality visualisations and analysis from renowned members of the football analytics community
│ └── websites-blogs/ # logos for data analysis websites and blogs e.g. Club Elo
│
├── scripts/ ➡️ store of libraries and Python and open source code ??
│
├── notebooks/ ➡️ Jupyter notebooks for exploration and visualisation
│ ├── 1_data_scraping/ # notebooks with code to acquire data via webscraping
│ │ ├── Capology Player Salary Web Scraping.ipynb
│ │ ├── FBref Player Stats Web Scraping.ipynb
│ │ └── TransferMarkt Player Bio and Status Web Scraping.ipynb
│ │
│ ├── 2_data_parsing/ # notebooks with code to acquire data via APIs
│ │ ├── Elo Team Ratings Data Parsing.ipynb
│ │ ├── StatsBomb Data Parsing.ipynb
│ │ └── Wyscout Data Parsing.ipynb
│ │
│ ├── 3_data_engineering/ # notebooks with code to engineer raw, unprocessed data to processed data
│ │ ├── Capology Player Salary Data Engineering.ipynb
│ │ ├── Centre Circle Opta CPL Data Engineering.ipynb
│ │ ├── FBref Player Stats Data Engineering.ipynb
│ │ ├── Opta #mcfcanalytics PL 2011-2012.ipynb
│ │ ├── StatsBomb Data Engineering.ipynb
│ │ ├── The Guardian Player Recorded Transfer Fees Data Engineering.ipynb
│ │ ├── TransferMarkt Historical Market Value Data Engineering.ipynb
│ │ ├── TransferMarkt Player Bio and Status Data Engineering.ipynb
│ │ ├── TransferMarkt Player Recorded Transfer Fees Data Engineering.ipynb
│ │ ├── Understat Data Engineering.ipynb
│ │ └── Wyscout Data Engineering.ipynb
│ │
│ ├── 4_data_unification/ # notebooks with code to unify disperate datasets
│ │ └── Unification of Aggregated Seasonal Football Datasets.ipynb
│ │
│ └── 5_data_analysis_and_projects # notebooks with code for example projects and analysis
│ ├── player_similarity_and_clustering
│ │ └── PCA and K-Means Clustering of 'Piqué-like' Defenders.ipynb
│ │
│ ├── tracking_data
│ │ ├── metrica_sports
│ │ │ └── Metrica Tracking Data EDA.ipynb
│ │ └── signality
│ │ ├── Signality Tracking Data Engineering.ipynb
│ │ └── Signality Tracking Data EDA.ipynb
│ │
│ └── xg_modeling
│ ├── shots_dataset
│ │ ├── Logistic Regression Expected Goals Model.ipynb
│ │ └── XGBoost Expected Goals Model.ipynb
│ └── opta_dataset
│ └── raining of an Expected Goals Model Using Opta Event Data.ipynb
│
├── ? README.md ➡️ project description and setup guide for better structure and collaboration ?
│
├── research/ ➡️ central repository of research and publicly available resources in football analytics ?⚽
│ ├── documents/ # documents
│ ├── papers/ # published academic papers and literature
│ └── slides/ # PowerPoint slides for published research
│
└── video/ ➡️ store of videos used or generated for analysis ??
? Retornar
O código neste repositório é escrito principalmente em notebooks Jupyter ou scripts Python, organizados no seguinte fluxo de trabalho:
? Retornar
Para painéis do Tableau produzidos usando os dados projetados nos notebooks deste repositório, consulte meu perfil do Tableau Public: public.tableau.com/profile/edd.webster.
Exemplos de painéis do Tableau:
? Retornar
Agradecemos aos seguintes recursos que foram usados para preencher lacunas neste guia de recursos depois de publicado:
analytics-handbook
GitHub repo por Devin Pleuler - um repositório GitHub para começar a analisar futebolawesome-football
por football.db (Gerald Bauer) - uma coleção de conjuntos de dados de futebol incríveisawesome-football-analytics
por Diego Pastorawesome-soccer-analytics
por Matias MasciotoguideR
de Dom Samangy - uma planilha do Google com mais de 200 recursos R, mais de 100 tutoriais Python, mais de 30 pacotes, mais de 25 contas para seguir, 10 cheatsheets e vários livros e blogs gratuitos. Repositório GitHub [link]soccer-analytics-resources
por Jan Van Haaren? Retornar
Bons recursos para quem é novo no uso de dados no futebol:
soccer-analytics-handbook
por Devin Pleulerawesome-football-analytics
por Diego Pastorawesome-soccer-analytics
por Matias Masciotosoccer-analytics-resources
por Jan Van Haaren? Retornar
Fontes de dados e conjuntos de dados disponíveis publicamente relacionados ao futebol, desde dados de rastreamento, dados de eventos, dados agregados de desempenho de jogadores, estatísticas detalhadas de partidas, registros de lesões e valores de transferência e muito mais.
As fontes de dados que foram usadas no código e na análise deste repositório podem ser encontradas na subpasta data
deste repositório ou no Google Drive (devido ao limite de arquivo de 100 MB do GitHub) [link]. No entanto, todo o código neste repositório deve permitir que você extraia, analise e projete os conjuntos de dados de acordo com a saída usada para análise e visualizações apresentadas.
Para saber mais sobre os diferentes tipos de dados disponíveis, como dados de eventos e rastreamento, consulte a seção "Onde posso obter dados?" seção do soccer_analytics_handbook
de Devin Pleuler [link].
Para uma introdução rápida aos recursos gratuitos de dados de futebol disponíveis, consulte o seguinte tópico no Twitter de James Nalton [link].
Os dados do evento são dados rotulados para cada evento com a bola que ocorre durante um jogo. Os dados são coletados manualmente a partir de imagens de televisão. Para saber mais sobre a coleta de dados, veja o vídeo a seguir [link].
Cada correspondência de dados de eventos possui cerca de 2 a 3 mil eventos individuais (linhas), dependendo do provedor.
Os principais fornecedores desses dados são StatsBomb, Stats Perform (formalmente Opta) e Wyscout.
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Dados abertos do StatsBomb |
| Repositório GitHub de dados abertos StatsBomb |
StrataData por StrataBet | Dados de tiro casual fornecidos | Não está mais disponível (desde 2018), porém, pode ser encontrado em repositórios GitHub de análises antigas (incluindo esta) [link]. |
Conjunto de dados de vídeo de futebol e posição do jogador | Conjunto de dados de movimentos de jogadores de futebol de elite e vídeos correspondentes, disponibilizado pela Universidade de Oslo. Veja o documento anexo [link] | [Link] (parece não estar mais funcionando) |
Opta | Dados de eventos para mais de 20 ligas, incluindo as 'Big 5' ligas europeias, algumas das quais remontam à temporada 09/10, | Dados disponíveis através de scraping WhoScored? Match Center através dos seguintes métodos:
|
Opta (conjunto de dados de amostra 11/12) | Dados agregados de desempenho do jogador partida a partida para a temporada 11/12 e dados do evento F24 para uma partida 11/12 do Manchester City x Bolton Wanders como parte da iniciativa #mcfcanalytics | Não está mais disponível (desde 2012), porém, pode ser encontrado em repositórios GitHub de análises antigas (incluindo esta). |
Entenda | Remates e metadados, incluindo valores de xG para as 'Big 5' das ligas europeias e da Premier League russa | Esses dados podem ser acessados através do seguinte:
|
Wyscout | Dados de eventos da temporada 17/18 para as 'Big 5' ligas europeias, campeonato Euro 2016 e Copa do Mundo 2018 disponibilizados por Luca Pappalardo, Alessio Rossi e Paolo Cintia. Veja o artigo deles Um conjunto de dados públicos de eventos de jogos espaço-temporais em competições de futebol. | Figshare |
Os dados de rastreamento registram as coordenadas xey de cada jogador em campo, bem como da bola, um número de vezes por segundo (geralmente 10-25). Por esse motivo, o conjunto de dados é bastante grande, muito maior do que os dados de eventos, com cerca de 2 a 3 milhões de linhas por jogo.
Os dados são recolhidos por câmaras instaladas num estádio e, portanto, não estão amplamente disponíveis, sendo que as equipas normalmente só têm acesso aos dados da sua própria liga.
Os principais fornecedores desses dados são Second Spectrum, STATS Perform, Metrica Sports e Signality.
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Dados semelhantes ao Last Row Tracking de Ricardo Tavares | Dados semelhantes a rastreamento coletados por Ricardo Tavares. Veja o Liverpool Analytics Challenge para o qual esses dados foram usados (vencedores discutidos em Friends of Tracking [link]). | Repositório GitHub |
Rastreamento de amostras da Metrica Sports e dados de eventos correspondentes | Três amostras de correspondências de eventos sincronizados e dados de rastreamento. Para que o código funcione com esses dados, incluindo modelagem de Pitch Control, consulte o repositório LaurieOnTracking GitHub de Laurie Shaw e os tutoriais correspondentes do Friends of Tracking. | Repositório GitHub |
Dados de rastreamento de sinalização | Três partidas de dados de rastreamento da Allsvenskan - Hammarby x IF Elfsborg (22/07/2019), Hammarby 5 x 1 Örebrö (30/09/2019) e Hammarby x Malmö FF (20/10/2019). | Esses dados foram disponibilizados no âmbito do curso Modelagem Matemática do Futebol 2020. A senha para baixar os dados não está disponível publicamente, mas pode ser encontrada no grupo Uppsala Mathematical Modeling of Football Slack [link]. Para acesso, entre em contato pelo Twitter da Novosom Salvador e [email protected], ou fique à vontade para entrar em contato comigo mesmo. De salientar que a 2ª parte do jogo Hammarby-Örebro está incompleta. |
O rastreamento de transmissão é coletado de imagens de transmissão usando técnicas de visão computacional. Ao contrário dos dados de rastreamento no estádio, o conjunto de dados não está completo e faltam jogadores fora da filmagem da transmissão. No entanto, o grande benefício é que os dados recolhidos são muito mais baratos e a cobertura das ligas disponíveis é muito maior, o que é extremamente útil para tarefas como a análise de recrutamento.
Os principais fornecedores desses dados são SkillCorner e Sportlogiq.
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Dados de rastreamento de transmissão SkillCorner | 9 partidas de dados de rastreamento de transmissão, incluindo partidas de 2019/2020 para os campeões e vice-campeões da Premier League inglesa, L1 francesa, LaLiga espanhola, Serie A italiana e Bundesliga alemã. Para saber mais sobre dados de rastreamento de transmissão e seus casos de uso, consulte o seguinte artigo do Medium [link]. | Repositório GitHub |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Dados de modelagem DAVIES | Dados estimados de avaliação de jogadores por Sam Goldberg e Mike Imburgio para American Soccer Analysis. Para saber mais sobre DAVIES, consulte a seguinte postagem do blog [link]. | Aplicativo brilhante |
Dados agregados de desempenho do jogador temporada após temporada do FBref fornecidos pela StatsPerform. | Dados agregados de desempenho dos jogadores para as seguintes competições:
| Observação: houve uma mudança no provedor de dados usado pelo FBref para suas estatísticas em outubro de 2022, de StatsBomb para StatsPerform. Portanto, o seguinte código de raspagem é dividido em soluções de trabalho atuais e soluções arquivadas:
|
Dados de Stats Perform e Centre Circle Canadian Premiere League | Dados agregados de desempenho do jogador | Google Drive |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Classificação do clube Elo | As classificações Elo para o futebol de clubes são baseadas em resultados anteriores para permitir uma estimativa da força de cada clube, permitindo previsões para o futuro. | Dados disponíveis através de:
|
Índice Euro Clube | Classificação das equipas de futebol na divisão mais alta de todos os países europeus, que mostra as suas forças de jogo relativas num determinado momento e o desenvolvimento das forças de jogo ao longo do tempo. Para saber mais sobre a metodologia utilizada para calcular essas classificações, consulte a página a seguir [link] | Link |
Classificação do Clube FiveThirtyEight | Classificações globais de futebol de clubes. Como 637 times internacionais de clubes se comparam pelo Soccer Power Index | Dados disponíveis através de:
|
Classificações de poder Opta | Classificações de poder Opta | Dados disponíveis através de:
|
Coeficientes de Clubes da UEFA | Classificação dos coeficientes de clubes da UEFA com base nos resultados de todos os clubes europeus nas competições de clubes da UEFA. | Dados disponíveis através de:
|
Ranking Mundial de Futebol/Clubes de Futebol | Site de classificação de clubes | Link |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Dados físicos da Bundesliga | Estatísticas de jogadores da Bundesliga, desenvolvidas pela AWS | Link (não copiado em um CSV) |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Listas da Copa do Mundo FIFA 2018 | Gols, internacionalizações, clube e data de nascimento dos jogadores nas escalações da Copa do Mundo FIFA 2018. Fonte: data.world | Excel |
engsoccerdata | Resultados do futebol inglês e europeu 1871-2017 | Repositório GitHub |
Resultados dos jogos da Copa do Mundo FIFA | Partidas e resultados das partidas da Copa do Mundo FIFA de 1930 a 2014. Fonte: data.world | Excel |
FotMob | Conjunto de dados incluindo estatísticas de equipe e jogo, incluindo xG e xG pós-remate. | Esses dados podem ser extraídos usando:
|
Escalações de futebol | Um banco de dados de táticas e formações de equipes coletadas pelos usuários. | Link |
international_results | Repositório de resultados de 44.353 resultados de jogos internacionais de futebol, desde o primeiro jogo oficial em 1872 até 2022. | Repositório GitHub |
batedor mais inteligente | Plataforma de informações de observação e classificação de jogadores para avaliar o desempenho de jogadores de futebol em todo o mundo. A plataforma foi desenvolvida por Dan Altman da North Yard Analytics para avaliar as contribuições dos jogadores para a vitória, seu estilo de jogo e seu nível de habilidade. Nota : este é um serviço de assinatura. | Link |
SofaScore | Resultados ao vivo, escalações, classificações, mapas de calor e dados básicos de equipes, treinadores e jogadores | Link |
Campo de futebol | Dados da planilha de correspondência | Link |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
Capologia | Salários dos jogadores | Consulte o caderno Capology Player Salary Web Scraping para código Python para extrair dados do Capology ou acessar arquivos CSV salvos na subpasta de dados |
Referência de futebol da KPMG | dados de avaliação do jogador | |
Planilha Mestre do Preço do Futebol | dados do aspecto financeiro/comercial do futebol por Kieran Maguire | Link |
spotrac | Contratos de jogadores, salários e informações de transferência para a Premier League, MLS e NWSL | |
Mercado de transferências | Dados biográficos, contratuais e de valor estimado do jogador | Esses dados podem ser acessados através do seguinte:
|
Dados de transferência do jogador Guardian | Coletado por Tom Worville (ver Tweet [link]) | GitHub |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
ApostaExplorador | dados de probabilidades | Link |
Banco de dados de previsões de futebol FiveThirtyEight | dados de previsão de futebol | Link |
Football-Data.co.uk | apostas grátis e apostas de futebol, resultados históricos de futebol e um arquivo de probabilidades de apostas, resultados ao vivo, comparação de probabilidades, conselhos de apostas e artigos de apostas | Link |
Resultados internacionais do futebol de 1872 a 2020 | um conjunto de dados atualizado de mais de 40.000 resultados de futebol internacional por Mart Jürisoo | Link |
Veja o tópico do Twitter de Mark Wilkin para saber mais sobre como traçar seus próprios dados de evento [link]:
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
grade xT | Valores de Ameaça Esperada (xT) para toda a liga da temporada 2017-18 da Premier League (grade 12x8) determinados por Karun Singh. Para obter mais informações sobre xT, consulte a postagem do blog de Karun [link] | Link |
Grade EPV | Grade de valores de posse esperados determinados por Laurie Shaw. Veja a palestra a seguir para mais informações [link] | Link |
Zonas de um campo | Divisão de um campo em zonas, para uso com visualização. Criado por Rob Carroll | Link |
Nome | Comentários | Fonte/método(s) para obter os dados |
---|---|---|
awesome-football por football.db (Gerald Bauer) | Uma coleção de conjuntos de dados incríveis de futebol (seleções, clubes, calendários de jogos, jogadores, estádios, etc.) | Repositório GitHub |
Dados de futebol do Data Hub | Link | |
Base de Dados Europeia de Futebol | Mais de 25 mil atributos de partidas, jogadores e times do futebol profissional europeu | Link |
Dados de classificação de jogadores do FIFA 15-22 | Retirado do SoFIFA por Stefano Leone | Link |
Classificações dos jogadores do FIFA 18 | Mais de 17 mil jogadores, mais de 70 atributos extraídos do FIFA 18, fornecidos por sofá | Link |
FootballData | "Uma mistura de dados JSON e CSV de futebol" | GitHub |
footballcsv | Resultados históricos do futebol em formato CSV | Link |
futebol.db | Um banco de dados e esquema de futebol de domínio público gratuito e aberto para uso em qualquer linguagem (de programação) (por exemplo, usa conjuntos de dados simples) | Link |
Futebol xG | Link | |
Guia para dados e APIs de futebol/futebol por Joe Kampschmid | Link | |
Meus fatos sobre futebol | Link | |
Sala de fisioterapia | Link | |
MaisMenosDados | dados jogo a jogo de espn.com | Link |
Fundação de Estatísticas Rec.Sport.Soccer | Tabelas históricas da liga e resultados de futebol | Link |
Simulador de futebol RoboCup | Dados do Simulador de Futebol RoboCup | Link |
Squawka | Link | |
Bunker de estatísticas | Link | |
Recursos de dados do Tableau | incluindo dados esportivos | Link |
Liga de Transferência | Link | |
Doze Futebol | Link | |
wosostats | Dados do futebol feminino de todo o mundo | Link |
Toda a documentação salva localmente na subpasta de documentação, incluindo:
? Retornar
soccer_analytics
de Kraus Clemens – um projeto Python que facilita o ponto de partida para análisesFootball-Analytics-With-Python
por Anmol DurgapalConfira o Tableau for Sports Discord Server organizado pela Ninad Barbadikar, para interagir com uma comunidade de desenvolvedores de Tableau
Para uma lista de reprodução do YouTube de vídeos e tutoriais do Tableau-Football que colecionei de várias fontes, incluindo o grupo de usuários de futebol do Tableau, Rob Carroll, Tom Goodall e Ninad Barbadikar, consulte o seguinte [link].