此儲存庫的自述文件是學習材料、資料來源、圖書館、論文、部落格等的資源指南,由所有為開源足球分析社群做出貢獻的人創建。此 GitHub 儲存庫和資源清單始終是一項正在進行的工作,會定期新增資源。如果您覺得我錯過了任何資源,請隨時建立拉取請求或透過上面的連結向我發送訊息,我會盡快回覆您!
如果您喜歡該儲存庫,請隨時給它一個(右上角)。乾杯!
有關此存儲庫和作者的更多信息,請參閱以下內容:
此儲存庫中的程式碼是用 Python 和 R 混合編寫的。
通用 Python 資料科學函式庫:
NumPy
用於多維數組計算;pandas
用於資料分析和操作;matplotlib
和Seaborn
用於資料視覺化;和scitkit-learn
和SciPy
。足球分析 Python 庫:
kloppy
- Koen Vossen 和 Jan Van Haaren 開發的用於標準化追蹤和事件資料的軟體包。請參閱 YouTube 教學 [連結]floodlight
by Floodlight-sports - 用於簡化體育數據分析的軟體包。它的設計明確地關注科學計算,並基於 numpy 或 pandas 等流行庫構建。請參閱以下文件[連結]matplotsoccer
- Tom Decroos 開發的用於視覺化足球賽事資料的 Python 庫mplsoccer
- Andrew Rowlinson 開發的用於在 matplotlib 中繪製足球場的 Python 庫PySport
包括PySport Soccer
- 開源運動包的集合,包括本節中提到的許多包,作者:Koen VossenScraperFC
by Owen Seymour - 一個 Python 包,用於從 FiveThirtyEight 資料、FBref、Understat、Club Elo、Capology 和 TransferMarkt 中抓取資料。之前透過 WhoScored? 抓取了 Opta 事件資料?匹配中心(功能現已刪除,但請參閱舊版本和 GitHub 儲存庫以查找此程式碼)statsbombapi
- StatsBomb 資料的 Python API 包裝器和資料類statsbombpy
- 由 Francisco Goitia 編寫的用於存取 StatsBomb 資料的 Python 庫socceraction
- 一個用於評估足球員執行的個人動作的 Python 庫。包括 Tom Decroos 等人實施的預期威脅 (xT)。等人。soccer_xg
by ML KU Leuven - 用於訓練和分析足球中的預期進球 (xG) 模型的 Python 包soccerdata
- 從 Club Elo、ESPN、FBref、FiveThirtyEight、Football-Data.co.uk、SoFIFA 和 WhoScored(作者:Pieter Robberechts)抓取足球數據tyrone_mings
by FCrSTATS - Python TransferMarkt 網路爬蟲通用 R 資料科學庫:
足球分析 R 庫:
ggsoccer
- R 語言的足球視覺化庫ggshakeR
- 一個分析和視覺化 R 軟體包,適用於公開可用的足球數據。請參閱以下文件[連結]StatsBombR
- 一個 R 包,可使用您的登入憑證輕鬆地將 StatsBomb 資料從 API 或從開放資料 GitHub 儲存庫免費傳輸到 Rsoccermatics
by Joe Gallagher - 用於足球追蹤和事件數據視覺化和分析的 R 包worldfootballR
by Jason Zivkovic - 用於從 FBref、TransferMarkt、Understat 和 fotmob 中提取世界足球(足球)數據的 R 包(請參閱有關如何使用此包的指南 [鏈接])?返回
該 GitHub 儲存庫的內容組織如下:
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 ??
?返回
此儲存庫中的程式碼主要是用 Jupyter Notebook 或 Python 腳本編寫的,按以下工作流程組織:
?返回
使用此儲存庫中的筆記本中設計的資料產生的 Tableau 儀表板,請參閱我的 Tableau Public 個人資料:public.tableau.com/profile/edd.webster。
Tableau 儀表板範例:
?返回
感謝以下資源,這些資源在本資源指南發布後全部用於填補本資源指南中的空白:
analytics-handbook
GitHub 儲存庫,作者:Devin Pleuler - 一個用於足球分析入門的 GitHub 儲存庫awesome-football
by Football.db (Gerald Bauer) - 很棒的足球數據集的集合awesome-football-analytics
awesome-soccer-analytics
作者:Matias MasciotoguideR
by Dom Samangy - 一個 Google 電子表格,包含 200 多個 R 資源、100 多個 Python 教程、30 多個軟體包、25 個以上要關注的帳戶、10 個備忘單以及一些免費書籍和部落格。 GitHub 儲存庫 [連結]soccer-analytics-resources
Github 儲存庫,作者:Jan Van Haaren?返回
對於剛接觸足球數據的人來說,這是很好的資源:
soccer-analytics-handbook
作者:Devin Pleulerawesome-football-analytics
awesome-soccer-analytics
作者:Matias Masciotosoccer-analytics-resources
?返回
與足球相關的公開數據來源和數據集,包括追蹤數據、事件數據、匯總的球員表現數據、詳細的比賽統計數據、傷病記錄和轉會價值等等。
此儲存庫中的程式碼和分析中使用的資料來源可以在此儲存庫的data
資料夾或 Google Drive 中找到(由於 GitHub 的 100mb 檔案限制)[連結]。然而,此儲存庫中的所有程式碼都應該使您能夠根據用於分析和視覺化的輸出來抓取、解析和設計資料集。
要了解有關不同類型可用數據(例如事件和跟踪數據)的更多信息,請參閱“我在哪裡可以獲得數據?” Devin Pleuler 的soccer_analytics_handbook
部分 [連結]。
若要快速了解可用的免費足球數據資源,請參閱 James Nalton 的以下 Twitter 貼文 [連結]。
事件數據是比賽期間發生的每個在球事件的標記數據。數據是從電視錄影中手動收集的。要了解有關數據收集的更多信息,請觀看以下視頻 [連結]。
每場比賽的事件數據大約有 2-3000 個單獨的事件(行),具體取決於提供者。
這些數據的主要提供者是 StatsBomb、Stats Perform(以前稱為 Opta)和 Wyscout。
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
StatsBomb 開放式數據 |
| StatsBomb 開放資料 GitHub 儲存庫 |
StrataBet 的 StrataData | 提供偶然射擊數據 | 不再提供(自 2018 年起),但是,可以在舊分析的 GitHub 儲存庫中找到它(包括這個)[連結]。 |
足球影片和球員位置數據集 | 奧斯陸大學提供的精英足球員動作資料集和相應影片。請參閱隨附的論文[連結] | [連結](似乎不再有效) |
奧普塔 | 包括「Big 5」歐洲聯賽在內的 20 多個聯賽的賽事數據,其中一些可以追溯到 09/10 賽季, | 可透過抓取 WhoScored 取得資料?比賽中心透過以下方式:
|
Opta(11/12 樣本資料集) | 作為#mcfcanalytics 計劃的一部分,11/12 賽季的逐場比賽匯總球員表現數據以及 11/12 曼城對陣博爾頓的 F24 賽事數據 | 然而,它不再可用(自 2012 年起),但可以在舊分析的 GitHub 儲存庫中找到(包括本分析)。 |
下統計 | 投籃和元數據,包括歐洲「五大」聯賽和俄羅斯超級聯賽的 xG 值 | 可以透過以下方式存取該數據:
|
懷斯考特 | 盧卡·帕帕拉多(Luca Pappalardo)、阿萊西奧·羅西(Alessio Rossi) 和保羅·辛蒂亞(Paolo Cintia) 提供了17/18 賽季“五大”歐洲聯賽、2016 年歐洲冠軍聯賽和2018 年世界盃的賽事數據。請參閱他們的論文足球比賽中時空比賽事件的公開數據集。 | 無花果樹 |
追蹤數據每秒記錄多次(通常是 10-25 次)場上每個球員以及球的 x 和 y 座標。因此,數據集相當大,比每場比賽約 2-3 百萬行的事件數據大得多。
這些數據是透過安裝在體育場內的攝影機收集的,因此無法廣泛使用,球隊通常只能存取自己聯賽中的數據。
此資料的主要提供者是 Second Spectrum、STATS Perform、Metrica Sports 和 Signality。
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
Ricardo Tavares 提供的類似 Last Row Tracking 的數據 | Ricardo Tavares 收集的類似追蹤的數據。請參閱使用此數據的利物浦分析挑戰賽(獲獎者在追蹤之友 [連結] 上討論)。 | GitHub 倉庫 |
Metrica Sports 樣本追蹤和相應的事件數據 | 同步事件和追蹤資料的三個範例匹配。有關使用此資料(包括音調控制模型)的程式碼,請參閱 Laurie Shaw 的LaurieOnTracking GitHub 儲存庫以及對應的 Friends of Tracking 教學。 | GitHub 倉庫 |
訊號追蹤數據 | 超級聯賽的三場比賽追蹤數據- 哈馬比vs. IF Elfsborg (22/07/2019)、哈馬比5 vs. 1 Örebrö (30/09/2019) 以及哈馬比vs. 馬爾默FF ( 20/10/2019)。 | 該數據作為 2020 年足球數學建模課程的一部分提供。下載資料的密碼不公開,但可以在足球 Slack 小組的烏普薩拉數學建模中找到[連結]。如需訪問,請聯繫 Novosom Salvador Twitter 和 [email protected],或隨時聯繫我本人。請注意,哈馬比-厄勒布魯比賽的下半場尚未完成。 |
廣播追蹤是使用電腦視覺技術從廣播片段中收集的。與體育場內的追蹤數據不同,該數據集並不完整,並且缺少廣播鏡頭鏡頭以外的球員。然而,最大的好處是收集的數據要便宜得多,並且可用聯賽的覆蓋範圍要大得多,這對於招聘分析等任務非常有用。
資料的主要提供者是SkillCorner 和Sportlogiq。
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
SkillCorner廣播追蹤數據 | 9場賽事轉播追蹤數據,包括2019/2020賽季英超、法甲、西班牙西甲、義甲、德甲冠亞軍的比賽。要了解有關廣播追蹤資料及其用例的更多信息,請參閱以下 Medium 文章 [連結]。 | GitHub 倉庫 |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
戴維斯建模數據 | Sam Goldberg 和 Mike Imburgio 對美國足球分析的球員評估估計數據。要了解有關 DAVIES 的更多信息,請參閱以下部落格文章 [連結]。 | 閃亮的應用程式 |
FBref 逐季彙整球員表現數據由 StatsPerform 提供。 | 以下比賽的總結球員表現數據:
| 注意: 2022 年 10 月,FBref 用於統計的資料提供者發生了變化,從 StatsBomb 更改為 StatsPerform。因此,以下抓取程式碼分為目前工作解決方案和存檔解決方案:
|
統計表現與中心圈加拿大超級聯賽數據 | 總結球員表現數據 | Google雲端硬碟 |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
Elo 俱樂部排名 | 俱樂部足球的 Elo 評級是基於過去的結果,可以評估每個俱樂部的實力,從而預測未來。 | 數據可透過以下方式取得:
|
歐元俱樂部指數 | 所有歐洲國家最高級別足球隊的排名,顯示了它們在特定時間點的相對比賽實力以及比賽實力的發展。要了解有關計算這些排名的方法的更多信息,請參閱以下頁面 [連結] | 關聯 |
FiveThirtyEight 俱樂部排名 | 全球俱樂部足球排名。 637 支國際俱樂部球隊如何透過足球實力指數進行比較 | 數據可透過以下方式取得:
|
Opta實力排名 | Opta實力排名 | 數據可透過以下方式取得:
|
歐足聯俱樂部係數 | 歐足總俱樂部係數排名是根據所有歐洲俱樂部在歐足總俱樂部比賽的成績。 | 數據可透過以下方式取得:
|
世界足球/足球俱樂部排名 | 俱樂部排名網站 | 關聯 |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
德甲物理數據 | 德甲球員統計數據,由 AWS 提供支持 | 連結(未抓取到 CSV 中) |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
2018 FIFA 世界盃名單 | 2018 年 FIFA 世界盃名單上球員的進球數、出場次數、俱樂部和出生日期。資料來源:數據世界 | Excel |
足球數據 | 1871-2017 年英國和歐洲足球成績 | GitHub 倉庫 |
國際足總世界盃比賽結果 | 1930 年至 2014 年 FIFA 世界盃比賽的對陣和結果。 | Excel |
火暴暴徒 | 數據集包括球隊和比賽統計數據,包括 xG 和投籃後 xG。 | 可以使用以下方法抓取該資料:
|
足球陣容 | 由使用者眾包的球隊戰術和陣型資料庫。 | 關聯 |
international_results | 儲存了從 1872 年第一場正式比賽到 2022 年的 44,353 場國際足球比賽的結果。 | GitHub 倉庫 |
聰明偵察兵 | 用於評估世界各地足球員表現的球探和球員評級資訊平台。該平台由 North Yard Analytics 的 Dan Altman 開發,用於評估玩家對獲勝的貢獻、他們的比賽風格和技能水平。注意:這是一項訂閱服務。 | 關聯 |
SofaScore | 即時比分、陣容、積分榜、熱圖以及球隊、教練和球員的基本數據 | 關聯 |
足球之路 | 比賽表數據 | 關聯 |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
卡波洛奇 | 球員薪資 | 請參閱 Capology Player Salary Web Scraping 筆記本,以了解用於抓取 Capology 資料或存取資料子資料夾中儲存的 CSV 檔案的 Python 程式碼 |
畢馬威足球基準 | 球員估值數據 | |
足球大師電子表格的價格 | 來自足球金融/商業方面的數據,作者:Kieran Maguire | 關聯 |
斯波特拉克 | 英超聯賽、美國職業足球大聯盟和 NWSL 的球員合約、薪資和轉會信息 | |
轉會市場 | 球員簡介、合約和估計價值數據 | 可以透過以下方式存取該數據:
|
守護者球員傳輸數據 | 由 Tom Worville 整理(參見推文 [連結]) | GitHub |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
投注瀏覽器 | 賠率數據 | 關聯 |
FiveThirtyEight 足球預測資料庫 | 足球預測數據 | 關聯 |
Football-Data.co.uk | 免費投注和足球投注、歷史足球結果和投注賠率檔案、即時比分、賠率比較、投注建議和投注文章 | 關聯 |
1872 年至 2020 年國際足球賽果 | Mart Jürisoo 提供的包含 40,000 多個國際足球比賽結果的最新數據集 | 關聯 |
有關如何繪製您自己的事件數據的更多信息,請參閱 Mark Wilkin 的 Twitter 帖子 [鏈接]:
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
xT網格 | 由 Karun Singh 確定的 2017-18 英超賽季(12x8 網格)的全聯盟預期威脅 (xT) 值。有關 xT 的更多信息,請參閱 Karun 的部落格文章 [連結] | 關聯 |
光電併網 | 由 Laurie Shaw 確定的預期佔有價值網格。請參閱以下講座以了解更多資訊 [連結] | 關聯 |
球場的區域 | 將球場分解為多個區域,用於視覺化。 | 關聯 |
姓名 | 評論 | 取得資料的來源/方法 |
---|---|---|
awesome-football by Football.db (Gerald Bauer) | 精彩足球(國家隊、俱樂部、比賽日程、球員、體育場等)資料集的集合 | GitHub 倉庫 |
數據中心 足球數據 | 關聯 | |
歐洲足球資料庫 | 超過 25,000 場歐洲職業足球比賽、球員和球隊屬性 | 關聯 |
FIFA 15-22 球員評分數據 | Stefano Leone 從 SoFIFA 中摘錄 | 關聯 |
FIFA 18 球員評分 | 17k+ 球員,從 FIFA 18 中提取的 70+ 屬性,由 sofifa 提供 | 關聯 |
FootballData | “JSON 和 CSV 足球數據的大雜燴” | GitHub |
footballcsv | CSV 格式的歷史足球比賽結果 | 關聯 |
足球資料庫 | 一個免費且開放的公共領域足球資料庫和模式,可用於任何(程式設計)語言(例如使用普通資料集) | 關聯 |
足球xG | 關聯 | |
Joe Kampschmid 的橄欖球/足球數據和 API 指南 | 關聯 | |
我的足球事實 | 關聯 | |
物理治療室 | 關聯 | |
加減數據 | 逐一播放資料來自 espn.com | 關聯 |
Rec.Sport.Soccer 統計基金會 | 歷史聯賽表和足球結果 | 關聯 |
RoboCup 足球模擬器 | RoboCup 足球模擬器數據 | 關聯 |
斯誇卡 | 關聯 | |
統計地堡 | 關聯 | |
Tableau 資料資源 | 包括運動數據 | 關聯 |
轉會聯賽 | 關聯 | |
十二足球 | 關聯 | |
沃索統計器 | 來自世界各地的女子足球數據 | 關聯 |
所有文件都保存在本機文件子資料夾中,包括:
?返回
soccer_analytics
by Kraus Clemens - 一個促進分析起點的 Python 項目Football-Analytics-With-Python
查看由 Ninad Barbadikar 組織的 Tableau for Sports Discord 伺服器,與 Tableau 開發人員社群互動
有關我從 Tableau Football 用戶組、Rob Carroll、Tom Goodall 和 Ninad Barbadikar 等各種來源整理的 Tableau 足球視頻和教程的 YouTube 播放列表,請參閱以下 [鏈接]。