Data Science

Data Science in der Fußball-Bundesliga: esentri meets Bundesliga

Einleitung & Ausgangslage

Die steigende Verfügbarkeit von hochauflösenden Daten beflügelt eine erkennbare Dynamik im Bereich Data Analytics und Data Science im Sportbereich. Data Science ist die Kombination aus Mathematik, Informatik und spezifischem Fachwissen zum Anwendungsgebiet. Die zwei auf den ersten Blick so verschiedenen Welten von Fußball und Mathematik können in ihrer Kombination ungeahnte Synergien entwickeln und Potenzial hervorbringen. Auf der einen Seite gibt es viele Fragen im Fußball die mit Hilfe der Mathematik beantwortet werden können. Auf der anderen Seite kann die Mathematik von der Begeisterungsfähigkeit und den Emotionen, die im Fußball gelebt werden, profitieren und sich darin entfalten. Die Informatik verbindet in Form einer Werkzeugkiste die Bereiche Daten, Mathematik und Sport und stellt Werkzeuge, Methoden und Vorgehensweisen zur Verfügung.

Die Kombination der vorgestellten Themengebieten kann unter dem Überbegriff Sports Analytics zusammengefasst werden. In fast allen Bereichen des Sports werden Daten unterschiedlichster Art aufgezeichnet und gesammelt. Diese Sportdaten können aus verschiedenen Quellen stammen. Angefangen vom Hobby-Sportler der mit seiner Smart-Watch seine Läufe aufzeichnet, bis hin zu einer eigenen Datenanalyse-Abteilung in einem Sportverein. Die Auswahl an möglichen Anwendungsgebieten reicht bei Fußballvereinen wie unserem Projektpartner Bundesligist Borussia Mönchengladbach vom Scouting potenzieller Transfers, der Talententwicklung im Jugendbereich, der Belastungssteuerung im Training, der Spieler- und Leistungsanalyse bis hin zur Bewertung und Analyse des nächsten Gegners. Im Kontext fußballspezifischer Fragestellungen kann die Anwendung von KI-Algorithmen und -Methoden dazu beitragen das volle Potential von Daten zu entschlüsseln. Aufgrund sich immer weiter entwickelnder Technologien im Bereich Spielertracking und Datenverarbeitung in den Stadien der Sportwelt, war es an der Zeit, in einer Kooperation zwischen Borussia Mönchengladbach und der esentri AG mit Hilfe von KI erste Anwendungsfälle forschend und agil umzusetzen.

Zielsetzung

Die Vereine der Fußball-Bundesliga erhalten nach jedem Spiel der Saison hochauflösende Positionsdaten von der DFL geliefert. Die korrekte und effiziente Verarbeitung dieser Positionsdaten ist eine entscheidende Aufgabe und zugleich eine der größten Herausforderungen im Prozess der digitalen Informationsgewinnung aus Fußballspielen. Grundlegende statistische Aspekte wie die maximale Geschwindigkeit oder die gesamte Laufleistung eines Spielers pro Spiel sind dabei leicht zu bestimmen und können aktuell bereits schnell berechnet werden. Jedoch sind diese Informationen nicht von großem Mehrwert für die Scouting-Abteilung oder den Trainerstab eines Vereins. Wenn ein Spieler 11 km und damit 1 km mehr als sein Mitspieler läuft, bedeutet das nicht, dass er auch 10% besser spielt. Vielleicht war sein Stellungsspiel nicht ausreichend genug und er musste dem Ball oft hinterherlaufen und erzielt daher die höhere gelaufene Distanz. Die Information, dass ein Spieler eine maximale Geschwindigkeit von 35,4 km/h erreicht hat und damit der schnellste Spieler des Spiels war, ist im ersten Moment spannend und kann ihn von einem Spieler mit einer Höchstgeschwindigkeit von 25 km/h unterscheiden. Die Umstände, die Ausgangsituation, der Verlauf und die genaue Beschreibung seiner Sprintfähigkeiten sind jedoch von viel größerem Interesse für die Bewertung von Leistungen im Fußball. Eine direkte Berechnung der Leistung und der Fähigkeiten eines Spielers ist also aus den statistischen Kennzahlen wie der maximalen Geschwindigkeit oder der gesamten Laufleistung nicht oder nur bedingt möglich.

Für Fußballvereine wie unseren Projektpartner Borussia Mönchengladbach ist es von großem Interesse, möglichst detaillierte Kenntnisse über die Fähigkeiten und physischen Voraussetzungen der eigenen, der gegnerischen oder von potenziellen neuen Spielern zu besitzen. Besonders nützlich sind dabei Informationen über die Fähigkeit eines Spielers in kurzen und intensiven Bewegungen und Sprints. 

Zielsetzung dieses Projektes ist daher eine Klassifizierung von verschiedenen Spielertypen, basierend auf ihren Beschleunigungs- und Bewegungsprofilen. Die Beantwortung oder die Auflösung von Teilaspekten der sportwissenschaftlichen Fragestellungen hilft bei der Einordnung der verschiedenen Spielertypen und sie dienen als Leitfaden während des Projekts. Ein ideales Endergebnis ist in einer Klassifizierung verschiedener Bewegungstypen und der Zuordnung einzelner Spieler in diese Klassen gegeben.

Vorgehen 

Der sogenannte „Cross-Industry Standard Process for Data Mining“ (CRISP-DM) hat sich als Standard-Vorgehensmodell für Data-Analytics-Projekte etabliert (Haneke et al. 2018, S. 9 f.) und wird aufgrund seiner agilen und iterativen Vorgehensweise als Grundlage und Orientierung im vorgestellten Projekt dienen. 

Zu Beginn eines Data-Mining Projektes steht im CRISP-DM Modell das Business Understanding. Konkret galt es in diesem Projektumfeld die sportwissenschaftlichen Fragestellungen und Zusammenhänge zu verstehen. Dafür habe ich mich Fragen wie „Wann ist eine Bewegung ein Sprint?“, „Welche Schwellwerte bezüglich Dauer, Geschwindigkeit oder Beschleunigung müssen erreicht werden?“ oder „Welche Auswirkung hat die Ausgangssituation auf die aktuelle Aktion?“ gewidmet und versucht diese zu beantworten und in das Projekt einzubetten. Parallel dazu habe ich in einer explorativen Datenanalyse ein erstes Verständnis für die Daten entwickelt und in Kombination mit den Erkenntnissen aus der Sportwissenschaft wurde klar, dass auf Basis der aktuellen Form von roh vorliegenden Positionsdaten keine Bewegungsprofile erstellt werden können. Um der Zielsetzung einen weiteren Schritt näher zu kommen und um genauere Aussagen über Bewegungs- und Beschleunigungsprofile treffen zu können, musste ich als nächstes die einzelnen Sprints und Aktionen aus der großen Menge an Positionsdaten extrahieren und separieren. Dafür habe ich in der Programmiersprache python Algorithmen entwickelt, welche die Positionsdaten durchlaufen und als Ergebnis die markierten Aktionen mit ihrer Bezeichnung und Nummerierung ausgeben. Dafür konnte ich meinem Algorithmus mehrere Parameter übergeben, welche beschreiben ab welchen Schwellwerten bezüglich Geschwindigkeit und Dauer der Aktion von einem Sprint ausgegangen werden kann.

Die gefundenen Bewegungen werden nun genauer analysiert und in einem ersten Versuch miteinander verglichen. Da es sich bei den betrachteten Sprints um Zeitreihen handelt, kommen direkt eine Vielzahl an Merkmalen in Betracht, in welchen Dimensionen die Sprints sich voneinander unterscheiden oder Gemeinsamkeiten aufweisen können. Angefangen von der Dauer der Aktion, dem Verlauf des Sprints mit Hoch- und Tiefpunkten, die maximal erreichte Geschwindigkeit oder auch die Ausgangssituation des Sprints. Dabei kann zwischen verschiedenen Laufgeschwindigkeiten unterschieden werden, angefangen von „aus dem Stand“ bis hin zu „aus dem Joggen“. Je nach Ausgangssituation ist eine unterschiedlich hohe maximale Beschleunigung möglich und die Intensität der Bewegung kann daher nicht auf dem Vergleich von absoluten Werten bemessen werden. 

Um mich dem Projektziel weiter anzunähern, in dem ich Spieler in Cluster ähnlicher Spieler einteilen und Spielerprofile bezüglich ihrer Bewegungsfähigkeiten erstellen will, werden im nächsten Schritt zuerst die extrahierten Bewegungen in Cluster ähnlicher Bewegungen eingeteilt. Aufbauend auf dem Cluster-Modell der Bewegungen werden dann Spielerprofile aufgrund der Verteilung ihrer Sprints in genau diese Bewegungs-Cluster erstellt. 

Aber jetzt zuerst zum Cluster-Modell der Bewegungen. Ziel dieser Modellbildung ist die Einteilung der gefundenen Sprints in Cluster mit ähnlichen Bewegungen und Bewegungsverläufen. Die Sprints eines Spielers sollen in möglichst wenigen verschiedenen Clustern vorkommen. Diese Zielsetzung ermöglicht es im nächsten Schritt explizit Spieler- und Beschleunigungsprofile zu erstellen und auszuwerten. Um die programmierten Modelle miteinander zu vergleichen und zu bewerten, habe ich zu Beginn zwei Bewertungskriterien für dieses Projekt bestimmt. Zur Bewertung der Qualität eines Clusters gibt es zwei Arten von anwendbaren Methoden. Besteht im Vorfeld die Information über ein ideales Clustering oder die perfekte korrekte Zuordnung, werden extrinsische Methoden (auch: überwachte Methoden) angewendet. Dabei wird das erstellte Clustering-Modell mit der idealen Zuordnung verglichen. Ein solches ideales Clustering wird meistens mit Hilfe menschlicher Experten erstellt, indem jedem Objekt ein Cluster-Label zugeordnet wird. Ist diese Information über ein ideales Cluster nicht gegeben, werden intrinsische Methoden (auch: unüberwachte Methoden) angewendet, welche die Güte auf Basis der Trennung der Cluster bewerten (Han et al. 2011, S. 487). 

Im Rahmen dieses Projektes habe ich je einen intrinsischen und einen extrinsischen Parameter zur Bestimmung der Modell-Güte angewendet.:

Die extrinsische Methode der Entropie (engl.: Entropy) beschreibt das Maß, zu dem jedes Cluster aus Objekten einer einzigen Klasse besteht. Angewendet auf die Umstände dieses Projektes bedeutet das, dass eine niedrige Entropie genau dann vorliegt, wenn die Sprints eines Spielers in möglichst wenigen verschiedenen Clustern auftauchen. Eine hohe Entropie liegt hingegen vor, wenn in einem Cluster Sprints von nahezu jedem Spieler des Datensatzes enthalten sind.

Die intrinsische Methode des Silhouetten Koeffizienten beschreibt die Qualität der Zuordnung der Objekte zu den Clustern. Es wird gemessen wie gut die Cluster voneinander getrennt sind und wie geschlossen ein Cluster an sich ist.

Viele Clustering-Algorithmen benötigen als Eingabeparameter eine vordefinierte Anzahl an Clustern. Die Bestimmung dieser Menge an Clustern ist jedoch zu Beginn eine große Herausforderung und nicht immer eindeutig zu lösen. Mit Hilfe der intrinsischen Methode des Ellenbogenkriteriums lassen sich oft gute Größen für die Anzahl an Clustern bestimmen. Dazu werden die Verzerrungen, also die quadrierten Abweichungen innerhalb des Clusters, summiert und für verschiedene Werte für k (k= Anzahl an Cluster) berechnet (Raschka und Mirjalili 2018, S. 362 f. und Tan et al. 2005, S. 546 f.). Die Idee des Ellenbogenkriteriums ist es, denjenigen Wert k mit der größten Veränderung der Verzerrung zu finden. In diesem Beispiel in der nebenstehenden Abbildung liegt dieser Punkt bei k=5. Bei der Modellbildung zur Clusteranalyse in den kommenden Schritten habe ich genau dieses Ellenbogenkriterium verwendet, um die Anzahl an zu suchenden Clustern k zu bestimmen.

Modellbildung

Im Rahmen dieses Projektes werden zwei verschiedene Ansätze zur Cluster-Modellbildung verfolgt und auf ihre Ergebnisse und Eignung für die Klassifizierung von Spielertypen aus Positionsdaten verglichen. Zum einen werden die Daten aus den erkannten und extrahierten Bewegungen auf Ebene einzelner Sprints aggregiert und in eine Liste mit sprintbezogenen Features gespeichert. Diese Feature-Liste dient als Basis für das erste Cluster-Modell und der Ansatz wird im späteren Verlauf zur Abkürzung als klassisch gekennzeichnet, da in den verschiedenen Algorithmen die Abstandsmaße der euklidischen Geometrie eingesetzt werden.

Im zweiten Modell wird mit dem Dynamic Time Warping (DTW) eine Methode zur Analyse und zum Vergleich von Zeitreihen eingesetzt. Mit Hilfe dieses Ansatzes wird gezielter auf den Verlauf und die Form der Bewegungen eingegangen. DTW eignet sich besonders gut, um phasenverschobene Bewegungen besser miteinander vergleichen zu können.

Modell 1: Klassisch, mit Feature-Liste

Das erste Cluster-Modell wird auf Basis einer Liste an Features erstellt.  Diese Features sind die jeweils aggregierten Werte der einzelnen Datensätze eines Sprints. Ein zwei Sekunden langer Sprint besteht beispielsweise aus 50 Frames, welche dann gruppiert und aggregiert in einer Zeile gespeichert werden. Ein Feature ist zum Beispiel der Median der Beschleunigung, der maximale Wert der Geschwindigkeit oder die maximal auftretende prozentuale Beschleunigung des Sprints. Zusätzlich sind in der Liste Features enthalten, welche nicht direkt mit dem Sprint und seiner Form in Verbindung stehen, wie zum Beispiel die Anzahl Sprints pro Spiel oder der Bezug eines Sprints auf die gesamte durchschnittliche Geschwindigkeit des Spiels. Diese von der einzelnen Bewegung unabhängigen Features werden versuchsweise mitberücksichtigt und auf ihre Eignung zur Modellbildung getestet. In der folgenden Tabelle ist der exemplarische Aufbau des Datensatzes und der Features dargestellt:

Um ein geeignetes Cluster-Modell auf Basis der sprintbezogenen Features zu erhalten, werden die einzelnen Features systematisch auf ihre Eignung getestet. Dafür wird jedes Feature isoliert betrachtet und jeweils ein Modell mit Hilfe des k-Means-Algorithmus und ein hierarchisches Modell erstellt und mit den Kriterien der Entropie und dem Silhouette Koeffizient bewertet. Die erfolgreichsten Features werden im nächsten Schritt nacheinander zusammengeführt und daraus neue Modelle erstellt. Durch dieses Vorgehen werden die Features für das Zielmodell schrittweise hinzugefügt und nach jedem neuen Modell auf ihre Eignung zur Cluster-Bildung bewertet. Zum Ende dieser Modellbildungsphase hat sich aufgrund der niedrigen Entropie verbunden mit einem hohen Silhouette-Koeffizient ein Modell mit k=5 Features als die vielversprechendste Variante an Modellen herauskristallisiert.

Modell 2: Dynamik Time Warping Distanzen

Das zweite Cluster-Modell verwendet für die Einteilung und den Vergleich der Sprints das DTW-Verfahren als Abstandsmaß. Um verschieden lange Zeitreihen, wie die Sprints in diesem Projekt, miteinander vergleichen zu können, kann die Methode des Dynamic Time Warping (DTW) eingesetzt werden. DTW ist laut Wang et al. (2013) die relevanteste Methode zur Bestimmung der Distanzen zwischen mehreren Zeitreihen. Das deutlich robustere Distanzmaß lässt sich auch auf ähnliche Formen von Sequenzen und Zeitreihen anwenden, welche phasenverschoben sind. DTW erlaubt eine elastische Verschiebung der Zeitachse bei der Berechnung der Distanz zwischen zwei Sequenzen.

In der folgenden Abbildung wird der Abstand im DTW an zwei beispielhaften Sprints und ihren Geschwindigkeitsverläufen dargestellt. Das Ergebnis für die Distanz dieser beiden Zeit-verläufe ist 2,83. 

Quelle: Giorgino 2009

Um ein Cluster-Modell mit der DTW-Methode zu erzeugen, wird im ersten Schritt eine Abstands-Matrix berechnet, welche für jede Kombination den Abstand von zwei Sprints berechnet. Damit diese Matrix in Python berechnet werden kann, wird als Eingabe ein Array mit allen Sprints jeweils in Form einer Zeitreihe benötigt. Dafür wird aus dem gelabelten Datensatz jeder Sprint nacheinander als Array in Form einer Zeit-reihe extrahiert und dann in ein größeres Array gespeichert, welches alle einzelnen Sprints enthalten soll.

Dieses Array wird nun als Eingabe in die Python-Funktion von Meert et al. (2020) zur Berechnung aller Abstände aus der Menge aller Sprints gegeben. Das Ergebnis ist eine symmetrische Distanz-Matrix der Größe n×n, wie in Tabelle XX dargestellt.:

Grundlage sind in diesem Modell die Sprints aus zehn kompletten Spielen von Projektpartner Borussia Mönchengladbach. Insgesamt sind in diesem Datensatz 1995 Sprints enthalten.

Vergleichbar mit der klassischen Modellbildung aus dem vorherigen Abschnitt werden auch unter Verwendung der DTW-Abstände Eingabeparameter für die Anzahl an Clustern n, die Anzahl an Iterationen im k-Means-Algorithmus und Bewertungskriterien wie die Entropie und der Silhouette-Koeffizient verwendet. Im weiteren Verlauf dieser Projektphase wird die Anzahl an Clustern mit dem Ellenbogenkriterium bestimmt und die Modelle jeweils mit der Entropie bewertet. Der k-Means-Algorithmus wird mit 20 Iterationen aufgerufen, da sich ab diesem Wert die Ergebnisse in Form des Entropie-Wertes nicht mehr weiter verbessert haben.

Ergebnis dieser Phase des Projekts ist ein Cluster-Modell, berechnet mit dem DTW-Abstandsmaß und einer Anzahl von k=7 verschiedenen Clustern.

Letzte Phase:

In der abschließenden Phase des Projekts habe ich verschiedene Spielerprofile definiert und die Spieler in diese Profile eingeteilt. Grundlage dafür sind die Ergebnisse des Clustering-Modells auf Basis des DTW-Ansatzes. In der folgenden Abbildung ist ein Prototyp veranschaulicht, welcher eine mögliche Analyse von Spielern und verschiedenen Spielerprofilen ermöglichen kann. Dafür ist das Bewegungsprofil eines Spielers in einem Spinnen-Diagramm dargestellt, wodurch die Verteilung seiner Sprints in die verschiedenen Sprint-Cluster abgelesen werden kann. Die Ausprägungen in diesem Spinnen-Diagramm beschreiben hier jeweils eine Bewegungs-Kategorie, welche exemplarisch nach ihren Charakteristiken benannt ist. Beispielsweise sind die Sprints von Spieler 1 (grünes Profil) etwa zu 22% in der Sprint-Kategorie „med_intens_>5sec_4Acc“ zu finden. Diese Kategorie beschreibt Sprints mit:

  •  mittlerer Intensität auf Basis zur Ausgangssituation,
  •  Dauer > 5 Sekunden,
  •  4 Beschleunigungsphasen in der Bewegung.

Fazit:

Aus den Positionsdaten einer Saison konnte ich verschiedene Cluster von Spielerprofilen definieren. Mit Hilfe dieser Klassifizierung sollen Scoutingentscheidungen unterstützt und die Eignung eines Spielers auf taktische Vorgaben getestet werden. In einem ersten Prototyp konnte ich andeuten, wohin die Auswertung von Positionsdaten mit Methoden des maschinellen Lernens führen kann und welche graphischen Aufbereitungen und Analysen in Zukunft möglich sind.

Jetzt steht der nächste Schritt der Entwicklung und der Auswertung von Positionsdaten an! Haben Sie einen vergleichbaren Use Case oder finden das Thema einfach spannend? Sprechen Sie mich gerne an – unser sportbegeistertes Team an Data Scientists steht ihnen gerne bei Fragen rund um das Thema Data Science und speziell Sports Analytics gerne zur Seite!