© Uncleaux/Shutterstock.com
Entwickler Magazin
Teil 3: Clusteranalyse

Punktgenau

In den vergangenen beiden Artikeln der Serie haben wir uns mit der Regression und Klassifikation zwei Verfahren des überwachten Lernens angeschaut. Beide basieren darauf, dass es eine möglichst große Anzahl an Daten gibt, für die das Ergebnis bereits feststeht. Im dritten Teil der Serie beschäftigen wir uns dagegen mit einem Verfahren des unüberwachten Lernens, der Clusteranalyse.

Nicolaj Kirchhof, Masanori Fujita


ArtikelserieTeil 1: Data Analytics in der Praxis – RegressionsanalyseTeil 2: Machine Learning mit KlassifikationsverfahrenTeil 3: ClusteranalyseTeil 4: Anomalieerkennung

Generell unterscheiden sich Verfahren des überwachten und des unüberwachten Lernens dadurch, dass beim überwachten Lernen ein Modell so angepasst wird, dass es bereits bekannte Ergebnisse möglichst gut auf Basis des Inputs voraussagt. Im Gegensatz dazu wird beim unüberwachten Lernen auf Basis eines Modells und seiner Parametrierung direkt ein Ergebnis erzeugt, ohne dass Wissen über bekannte Ergebnisse vorhanden ist.

Bei der Clusteranalyse wird eine Menge an Eingabedaten in unterschiedliche Klassen eingeteilt. Das Ziel der Clusteranalyse ist es somit, die Daten anhand ihrer Ähnlichkeit zu gruppieren. Ebenso kann die Analyse aber auch dazu dienen, für eine fest vorgegebene Anzahl an Clustern die Positionen der Clusterzentren zu bestimmen. Um diese abstrakten Beispiele mit Leben zu füllen, wollen wir sie direkt an echten Daten nachvollziehen. Dazu beschäftigen wir uns in diesem Artikel mit Tracking-Daten aus dem Basketball, genauer der NBA. Unser Ziel ist es, zu analysieren, von welcher Stelle aus dem Spielfeld heraus die Spieler besonders gut punkten. Wir möchten außerdem versuchen, ohne weitere Informationen die Zwei- von den Dreipunktewürfen zu unterscheiden.

Wie üblich finden Sie die Skripte zur Auswertung in Kombination mit den verwendeten Daten auf unserer Homepage [1].

Der Datensatz

Seit 2014 gibt es über das Stats-API der NBA Daten über die präzise Position jedes Wurfversuchs aller Spieler. Die meisten dieser Daten stehen zur freien Verfügung und können für detaillierte Analysen einzelner Teams oder Spieler genutzt werden. Für die Clusteranalyse rufen wir die Daten der Top-3-NBA-Werfer der Saison 2016/2017 unter Verwendung des Python-Requests-Moduls ab und führen sie direkt in einem Pandas-Dataframe zusammen (Listing 1).

Listing 1import pandas as pdimport requests as rplayers = {201566: 'Russell Westbrook', 201935:'James Harden', 202738:'Isaiah Thomas'}shots_df = pd.DataFrame()for player_id, _ in players.items(): # non default request parameters req_params = { 'ContextMeasure': 'FGA', 'LeagueID': '00', 'PlayerID': player_id, 'Season': '2016-17’, 'SeasonType': 'Regular Season' (...) } res = r.get('http://stats.nba.com/stats/shotchartdetail', params=req_params, headers=headers) res_json = res.json() # column names rows = res_json['resultSets'][0]['headers'] # row content shots_d...

Entwickler Magazin
Teil 3: Clusteranalyse

Punktgenau

In den vergangenen beiden Artikeln der Serie haben wir uns mit der Regression und Klassifikation zwei Verfahren des überwachten Lernens angeschaut. Beide basieren darauf, dass es eine möglichst große Anzahl an Daten gibt, für die das Ergebnis bereits feststeht. Im dritten Teil der Serie beschäftigen wir uns dagegen mit einem Verfahren des unüberwachten Lernens, der Clusteranalyse.

Nicolaj Kirchhof, Masanori Fujita


ArtikelserieTeil 1: Data Analytics in der Praxis – RegressionsanalyseTeil 2: Machine Learning mit KlassifikationsverfahrenTeil 3: ClusteranalyseTeil 4: Anomalieerkennung

Generell unterscheiden sich Verfahren des überwachten und des unüberwachten Lernens dadurch, dass beim überwachten Lernen ein Modell so angepasst wird, dass es bereits bekannte Ergebnisse möglichst gut auf Basis des Inputs voraussagt. Im Gegensatz dazu wird beim unüberwachten Lernen auf Basis eines Modells und seiner Parametrierung direkt ein Ergebnis erzeugt, ohne dass Wissen über bekannte Ergebnisse vorhanden ist.

Bei der Clusteranalyse wird eine Menge an Eingabedaten in unterschiedliche Klassen eingeteilt. Das Ziel der Clusteranalyse ist es somit, die Daten anhand ihrer Ähnlichkeit zu gruppieren. Ebenso kann die Analyse aber auch dazu dienen, für eine fest vorgegebene Anzahl an Clustern die Positionen der Clusterzentren zu bestimmen. Um diese abstrakten Beispiele mit Leben zu füllen, wollen wir sie direkt an echten Daten nachvollziehen. Dazu beschäftigen wir uns in diesem Artikel mit Tracking-Daten aus dem Basketball, genauer der NBA. Unser Ziel ist es, zu analysieren, von welcher Stelle aus dem Spielfeld heraus die Spieler besonders gut punkten. Wir möchten außerdem versuchen, ohne weitere Informationen die Zwei- von den Dreipunktewürfen zu unterscheiden.

Wie üblich finden Sie die Skripte zur Auswertung in Kombination mit den verwendeten Daten auf unserer Homepage [1].

Der Datensatz

Seit 2014 gibt es über das Stats-API der NBA Daten über die präzise Position jedes Wurfversuchs aller Spieler. Die meisten dieser Daten stehen zur freien Verfügung und können für detaillierte Analysen einzelner Teams oder Spieler genutzt werden. Für die Clusteranalyse rufen wir die Daten der Top-3-NBA-Werfer der Saison 2016/2017 unter Verwendung des Python-Requests-Moduls ab und führen sie direkt in einem Pandas-Dataframe zusammen (Listing 1).

Listing 1import pandas as pdimport requests as rplayers = {201566: 'Russell Westbrook', 201935:'James Harden', 202738:'Isaiah Thomas'}shots_df = pd.DataFrame()for player_id, _ in players.items(): # non default request parameters req_params = { 'ContextMeasure': 'FGA', 'LeagueID': '00', 'PlayerID': player_id, 'Season': '2016-17’, 'SeasonType': 'Regular Season' (...) } res = r.get('http://stats.nba.com/stats/shotchartdetail', params=req_params, headers=headers) res_json = res.json() # column names rows = res_json['resultSets'][0]['headers'] # row content shots_d...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang