Prüfpunkte
Write a query to determine available seasons and games
/ 10
Create a labeled machine learning dataset
/ 10
Create a machine learning model
/ 20
Evaluate model performance and create table
/ 10
Using skillful ML model features
/ 10
Train the new model and make evaluation
/ 10
Run a query to create a table ncaa_2018_predictions
/ 10
Run queries to create tables ncaa_2019_tournament and ncaa_2019_tournament_predictions
/ 20
NCAA-Spielergebnisse mit Machine Learning von Google vorhersagen
- GSP461
- Übersicht
- Einrichtung und Anforderungen
- Aufgabe 1: Die BigQuery Console öffnen
- Aufgabe 2: NCAA March Madness
- Aufgabe 3: Das öffentliche NCAA-Dataset in BigQuery suchen
- Aufgabe 4: Mit einer Abfrage verfügbare Saisons und Spiele ermitteln
- Aufgabe 5: ML-Features und ‑Labels verstehen
- Aufgabe 6: Ein ML-Dataset mit Label erstellen
- Aufgabe 7: Ein ML-Modell für die Vorhersage des Siegers basierend auf der gesetzten Position und dem Namen des Teams erstellen
- Aufgabe 8: Modellleistung evaluieren
- Aufgabe 9: Vorhersagen erstellen
- Aufgabe 10: Wie viele Vorhersagen unseres Modells für das 2018er NCAA-Turnier waren korrekt?
- Aufgabe 11: Modelle sind leider nicht allwissend…
- Aufgabe 12: Nützliche Features für ML-Modelle
- Aufgabe 13: Vorschau der neuen Features ansehen
- Aufgabe 14: Ausgewählte Messwerte interpretieren
- Aufgabe 15: Das neue Modell trainieren
- Aufgabe 16: Die Leistung des neuen Modells evaluieren
- Aufgabe 17: Gelernte Ergebnisse des Modells untersuchen
- Aufgabe 18: Zeit für die nächste Vorhersage
- Aufgabe 19: Vorhersageanalyse
- Aufgabe 20: Bei welchen Spielen gab es im März 2018 Überraschungserfolge?
- Aufgabe 21: Leistung der Modelle vergleichen
- Aufgabe 22: Vorhersage für das March Madness-Turnier 2019 treffen
- Das wars! Sie haben das Lab erfolgreich abgeschlossen.
GSP461
Übersicht
BigQuery ist eine vollständig verwaltete, automatisierte und kostengünstige Analysedatenbank von Google. Mit dem Tool können Sie mehrere Terabyte an Daten abfragen, müssen dabei keine Infrastruktur verwalten und benötigen auch keinen Datenbankadministrator. BigQuery basiert auf SQL und die Abrechnung erfolgt nach dem „Pay as you go“-Modell. Mithilfe von BigQuery können Sie sich auf die Datenanalyse konzentrieren und wichtige Informationen erhalten.
Mit BigQuery ML können Datenanalysten ihr SQL-Wissen nutzen, um ML-Modelle (Machine Learning) schnell genau dort zu erstellen, wo sich ihre Daten in BigQuery befinden.
In BigQuery ist ein Dataset für Basketballspiele, ‑teams und ‑spieler der NCAA öffentlich verfügbar. Die Daten umfassen Spielberichte und Ergebnistabellen aller Begegnungen seit 2009 sowie die Endergebnisse seit 1996. Für einige Teams liegen zusätzliche Daten zu Siegen und Niederlagen vor, die bis zur Saison 1994/95 zurückreichen.
In diesem Lab erstellen Sie mithilfe von BigQuery ML einen Prototypen, den Sie trainieren und evaluieren und mit dem Sie anschließend vorhersagen, welches Team bei welchem Spiel des NCAA-Basketballturniers „Sieger“ und welches „Verlierer“ sein wird.
Aufgaben
Aufgaben in diesem Lab:
- Mit BigQuery auf das öffentlich zugängliche Dataset der NCAA zugreifen
- Das Dataset der NCAA untersuchen, um mehr über das Schema und den Umfang der verfügbaren Daten zu erfahren
- Die vorhandenen Daten aufbereiten und in Features und Labels transformieren
- Das Dataset in Teilmengen für Training und Evaluation aufteilen
- Mit BigQuery ML Modelle basierend auf dem Dataset zum NCAA-Turnierbaum erstellen
- Mit dem erstellten Modell die Gewinner für Ihren NCAA-Turnierbaum vorhersagen
Vorbereitung
Dies ist ein Lab für Fortgeschrittene. Für dieses Lab sollten Sie bereits Erfahrung mit der Programmiersprache SQL und ihren Keywords haben. Kenntnisse im Umgang mit BigQuery werden außerdem empfohlen. Wenn Sie Ihr Wissen in diesen Bereichen auffrischen möchten, sollten Sie mindestens eines der folgenden Labs durcharbeiten, bevor Sie mit diesem beginnen:
Einrichtung und Anforderungen
Vor dem Klick auf „Start Lab“ (Lab starten)
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
- Einen Standardbrowser (empfohlen wird Chrome)
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Lab starten und bei der Google Cloud Console anmelden
-
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:
- Schaltfläche Google Cloud Console öffnen
- Restzeit
- Temporäre Anmeldedaten für das Lab
- Ggf. weitere Informationen für dieses Lab
-
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden. -
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
{{{user_0.username | "Username"}}} Sie finden den Nutzernamen auch im Bereich Details zum Lab.
-
Klicken Sie auf Weiter.
-
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
{{{user_0.password | "Password"}}} Sie finden das Passwort auch im Bereich Details zum Lab.
-
Klicken Sie auf Weiter.
Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen. -
Klicken Sie sich durch die nachfolgenden Seiten:
- Akzeptieren Sie die Nutzungsbedingungen.
- Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
- Melden Sie sich nicht für kostenlose Testversionen an.
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Die BigQuery Console öffnen
- Klicken Sie in der Google Cloud Console im Navigationsmenü auf BigQuery.
Zuerst wird das Fenster Willkommen bei BigQuery in der Cloud Console geöffnet, das neben allgemeinen Informationen auch einen Link zur Kurzanleitung und zu den Versionshinweisen enthält.
- Klicken Sie auf Fertig.
Die BigQuery Console wird geöffnet.
Aufgabe 1: Die BigQuery Console öffnen
-
Wählen Sie in der Cloud Console das Navigationsmenü und dann BigQuery aus.
-
Klicken Sie auf FERTIG, um zur Beta-Benutzeroberfläche zu gelangen. Achten Sie darauf, dass die Projekt-ID im Explorer-Tab festgelegt ist. Dies sollte etwa so aussehen:
Wenn Sie auf den Knoten „Erweitern“ neben Ihrem Projekt klicken, werden dort keine Datenbanken oder Tabellen angezeigt. Das liegt daran, dass Sie Ihrem Projekt noch keine hinzugefügt haben.
Glücklicherweise sind in BigQuery zahlreiche öffentliche Datasets verfügbar, mit denen Sie arbeiten können. Im Folgenden erfahren Sie mehr über das NCAA-Dataset und finden heraus, wie Sie es in Ihr BigQuery-Projekt aufnehmen.
Aufgabe 2: NCAA March Madness
Die National Collegiate Athletic Association (NCAA) veranstaltet in den USA jährlich zwei große Basketballturniere für Herren‑ und Damenmannschaften amerikanischer Colleges. Am NCAA-Turnier der Herren im März nehmen 68 Teams teil. Die Spiele werden nach dem K.-o.-System ausgetragen und am Ende geht daraus ein Team als March Madness-Gesamtsieger hervor.
Die NCAA stellt öffentlich ein Dataset bereit, das die Statistiken zu allen Basketballspielen, den aktiven Spielerinnen und Spielern der Saison sowie den Abschlussturnieren enthält. Die Daten umfassen Spielberichte und Ergebnistabellen aller Begegnungen seit 2009 sowie die Endergebnisse seit 1996. Für einige Teams liegen zusätzliche Daten zu Siegen und Niederlagen vor, die bis zur Saison 1994/95 zurückreichen.
- Sehen Sie sich die Google Cloud-Marketing-Werbekampagne zu Live-Prognosen an, um zu erfahren, wie und wofür dieses Dataset verwendet wurde. Unter Google Cloud March Madness Insights finden Sie außerdem alle Neuigkeiten rund um das aktuelle Turnier.
Aufgabe 3: Das öffentliche NCAA-Dataset in BigQuery suchen
-
Achten Sie darauf, dass Sie den nächsten Schritt in der BigQuery Console ausführen. Klicken Sie im Explorer-Tab auf die Schaltfläche + HINZUFÜGEN und wählen Sie Öffentliche Datasets aus.
-
Geben Sie in der Suchleiste NCAA Basketball ein und drücken Sie die Eingabetaste. Wählen Sie das einzige angezeigte Ergebnis aus und klicken Sie auf DATASET ANSEHEN:
Dadurch wird ein neuer Tab in BigQuery geöffnet und das Dataset in diesem geladen. Sie können entweder weiter in diesem Tab arbeiten oder ihn schließen und Ihre BigQuery Console in dem anderen Tab aktualisieren, sodass Ihr öffentliches Dataset dort angezeigt wird.
- Erweitern Sie das Dataset bigquery-public-data > ncaa_basketball, um die zugehörigen Tabellen einzublenden:
Sie sollten zehn Tabellen in dem Dataset sehen.
-
Klicken Sie auf
mbb_historical_tournament_games
und anschließend auf VORSCHAU, um Beispiele für Datenzeilen zu sehen. -
Mit einem Klick auf DETAILS werden Metadaten zur Tabelle angezeigt.
Die Seite sollte in etwa so aussehen:
Aufgabe 4: Mit einer Abfrage verfügbare Saisons und Spiele ermitteln
Nun werden Sie eine einfache SQL-Abfrage schreiben, mit der Sie ermitteln, wie viele Saisons und Spiele in der Tabelle mbb_historical_tournament_games
für Analysezwecke verfügbar sind.
- Kopieren Sie folgenden Befehl im Abfrageeditor oberhalb des Abschnitts der Tabellendetails und fügen Sie ihn in dieses Feld ein:
- Klicken Sie auf AUSFÜHREN. Die Ausgabe sollte anschließend ungefähr so aussehen:
- Scrollen Sie durch die Ausgabe und beachten Sie besonders die Anzahl der Saisons sowie der pro Saison absolvierten Spiele. Sie brauchen diese Informationen, um die folgenden Fragen zu beantworten. Unten rechts neben den Pfeilen zum Umblättern sehen Sie außerdem, wie viele Zeilen zurückgegeben wurden.
Klicken Sie auf Fortschritt prüfen.
Testen Sie Ihr Wissen
Mit den folgenden Multiple-Choice-Fragen können Sie Ihr bisher erworbenes Wissen testen und festigen. Beantworten Sie die Fragen so gut Sie können.
Aufgabe 5: ML-Features und ‑Labels verstehen
Ziel dieses Labs ist es, den Sieger eines vorgegebenen NCAA-Basketballspiels der Herren mithilfe von Informationen zu vergangenen Spielen vorherzusagen. Beim Machine Learning wird jede Spalte mit Daten, die uns bei der Ermittlung des Ergebnisses (Sieger oder Verlierer eines Turnierspiels) helfen, als Feature bezeichnet.
Die Datenspalte, für die Sie eine Vorhersage treffen möchten, wird Label genannt. ML-Modelle „lernen“ die Verknüpfungen zwischen den Features, um das Ergebnis eines Labels vorherzusagen.
Ihr Dataset historischer Daten könnte beispielsweise folgende Features enthalten:
- Saison
- Name des Teams
- Name des gegnerischen Teams
- Gesetzte Position (Rang) des Teams
- Gesetzte Position (Rang) des gegnerischen Teams
Das Label, für das Sie versuchen werden, eine Vorhersage zu treffen, ist das Spielergebnis, also die Angabe, ob das Team siegt oder verliert.
Testen Sie Ihr Wissen
Mit den folgenden Multiple-Choice-Fragen können Sie Ihr bisher erworbenes Wissen testen und festigen. Beantworten Sie die Fragen so gut Sie können.
Aufgabe 6: Ein ML-Dataset mit Label erstellen
Für die Erstellung eines ML-Modells sind viele hochwertige Trainingsdaten notwendig. Glücklicherweise stellt unser NCAA-Dataset eine mehr als ausreichende Grundlage für ein effektives Modell dar.
-
Wechseln Sie wieder zur BigQuery-Konsole. Dort sollte noch das Ergebnis der Abfrage zu sehen sein, die Sie vorhin ausgeführt haben.
-
Klicken Sie im Menü links auf die Tabelle
mbb_historical_tournament_games
. Sobald sie geladen wurde, klicken Sie auf VORSCHAU. Die Seite sollte in etwa so aussehen:
Testen Sie Ihr Wissen
Mit den folgenden Multiple-Choice-Fragen können Sie Ihr bisher erworbenes Wissen testen und festigen. Beantworten Sie die Fragen so gut Sie können.
-
Bei der Untersuchung des Datasets werden Sie feststellen, dass eine der Zeilen über Spalten für
win_market
undlose_market
verfügt. Sie müssen das Ergebnis eines Spiels in einen Eintrag pro Team aufteilen, damit Sie jede Zeile mit dem Label „Sieger“ bzw. „Verlierer“ versehen können. -
Kopieren Sie die folgende Abfrage und fügen Sie sie in den Abfrageeditor ein. Klicken Sie dann auf AUSFÜHREN:
Sie sollten folgende Ausgabe erhalten:
Klicken Sie auf Fortschritt prüfen.
Sie wissen nun, welche Features des Ergebnisses verfügbar sind. Beantworten Sie die folgende Frage, um Ihre Kenntnisse über das Dataset zu testen und zu festigen.
Aufgabe 7: Ein ML-Modell für die Vorhersage des Siegers basierend auf der gesetzten Position und dem Namen des Teams erstellen
Wir haben uns die Daten näher angesehen. Nun können wir mit dem Training eines ML-Modells beginnen.
- Beantworten Sie die folgende Frage so gut Sie können, um sich mit diesem Abschnitt vertraut zu machen.
Einen Modelltyp wählen
Für das vorliegende Problem werden Sie ein Klassifizierungsmodell erstellen. Da Sie zwei Klassen – Sieg oder Niederlage – verwenden, wird das Modell auch als Binärklassifizierungsmodell bezeichnet. Ein Team kann ein Spiel entweder gewinnen oder verlieren.
Wenn Sie möchten, können Sie im Anschluss an dieses Lab die Gesamtpunktzahl eines Teams mit einem Prognosemodell voraussagen, das ist aber nicht Schwerpunkt des Labs.
Ein Blick auf das Label (die Spalte) der Daten, für die Sie eine Vorhersage treffen, verrät Ihnen, ob es sich um eine Prognose oder um eine Klassifizierung handelt:
- Sind die Werte der Spalte numerisch (z. B. verkaufte Einheiten oder in einem Spiel erzielte Punkte), treffen Sie eine Prognose.
- Wenn hingegen ein Stringwert vorliegt (die Zeile gehört entweder zu dieser oder jener Klasse), führen Sie eine Klassifizierung durch.
- Bei mehr als zwei Klassen (z. B. Sieg, Niederlage und Unentschieden) sprechen wir von einem Klassifizierungsmodell mit mehreren Klassen.
Unser Klassifizierungsmodell für Machine Learning greift auf ein weit verbreitetes Statistikmodell namens Logistische Regression zurück.
Wir benötigen ein Modell, das die Wahrscheinlichkeit jedes möglichen Label-Werts berechnet, in unserem Fall also die eines Sieges bzw. einer Niederlage. Die logistische Regression ist eine gute Grundlage für diesen Zweck. Keine Sorge, das ML-Modell übernimmt während des Modelltrainings sämtliche Rechen- und Optimierungsvorgänge für Sie – dafür sind Computer schließlich da!
Ein ML-Modell mit BigQuery ML erstellen
Um unser Klassifizierungsmodell in BigQuery zu erstellen, müssen wir einfach die SQL-Anweisung CREATE MODEL
schreiben und einige Optionen angeben.
Bevor wir mit dem Modell beginnen können, benötigen wir in unserem Projekt zuerst einen Speicherort dafür.
- Klicken Sie im Explorer-Tab auf das Symbol Aktionen ansehen neben der Projekt-ID und wählen Sie Dataset erstellen aus.
- Daraufhin wird das Dialogfeld „Dataset erstellen“ geöffnet. Legen Sie Ihre Dataset-ID auf
bracketology
fest und klicken Sie auf DATASET ERSTELLEN.
- Führen Sie nun den folgenden Befehl im Abfrageeditor aus:
Wie Sie sehen, werden nur wenige Zeilen SQL-Code benötigt, um das Modell zu erstellen. Besonders wichtig ist, dass Sie für unsere Klassifizierungsaufgabe den Modelltyp „logistic_reg“ wählen.
Das Training des Modells dauert ungefähr drei bis fünf Minuten. Nach Abschluss des Jobs sollten Sie folgende Ausgabe erhalten:
- Klicken Sie rechts neben der Console auf die Schaltfläche Zum Modell.
Klicken Sie auf Fortschritt prüfen.
Details zum Modelltraining anzeigen
- Sie sehen nun die Modelldetails. Scrollen Sie nach unten zum Abschnitt Trainingsoptionen und sehen Sie sich die Iterationen an, die das Modell für das Training durchgeführt hat.
Wenn Sie Erfahrung mit Machine Learning haben, können Sie alle hier aufgeführten Hyperparameter (die Optionen, die vor der Ausführung des Modells eingestellt werden) anpassen. Legen Sie dazu deren Wert in der OPTIONEN
-Anweisung fest.
Wenn dies Ihr Einstieg in Machine Learning ist und Sie keine Anpassungen vornehmen, werden von BigQuery ML intelligente Standardwerte für jede nicht eingestellte Option festgelegt.
Weitere Informationen finden Sie in der Liste für BigQuery ML-Modelloptionen.
Statistiken zum Modelltraining anzeigen
ML-Modelle „lernen“ die Verknüpfungen zwischen bekannten Features und unbekannten Labels. Wie Sie sich vielleicht schon gedacht haben, sind einige Features wie „Gesetzte Position“ oder „Name der Ausbildungsstätte“ für die Ermittlung eines Sieges oder einer Niederlage nützlicher als andere Datenspalten (Features) wie z. B. der Wochentag, an dem das Spiel stattfindet.
ML-Modelle beginnen ihr Training ohne ein solches intuitives Wissen und gewichten jedes Feature in der Regel nach zufälligen Kriterien.
Während des Trainings optimiert das Modell den Vorgang, mit dem es die bestmögliche Gewichtung für jedes Feature findet. Das Modell versucht, den Trainingsdatenverlust und den Evaluationsdatenverlust mit jedem Lauf weiter zu minimieren.
Sollten Sie jemals feststellen, dass der finale Evaluationsdatenverlust deutlich höher als der Trainingsdatenverlust ist, liegt entweder eine Überanpassung des Modells vor oder das Modell merkt sich einfach alle Ihre Trainingsdaten, anstatt generalisierbare Zusammenhänge zu erlernen.
Sie können sehen, wie viele Trainingsläufe das Modell ausführt. Klicken Sie dazu auf den Tab TRAINING und wählen Sie unter „Ansicht“ die Option Tabelle aus.
In unserem Fall hat das Modell drei Trainingsläufe in ungefähr 20 Sekunden abgeschlossen. Ihr Modell wird sehr wahrscheinlich davon abweichen.
Über die Features gewonnene Erkenntnisse des Modells anzeigen
Nach dem Training können Sie die Gewichtungen untersuchen, um zu sehen, welche Features für das Modell am nützlichsten waren.
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Ihre Ausgabe sollte in etwa so aussehen:
Wenn die gesetzte Position eines Teams entweder sehr niedrig (1, 2, 3) oder sehr hoch (14, 15, 16) ist, weist das Modell diesem Feature zur Ermittlung des Ergebnisses (Sieg oder Niederlage) eine besonders hohe Gewichtung (maximal 1,0) zu. Das ist auch intuitiv betrachtet sinnvoll, da von Teams, die auf niedrige Positionen gesetzt wurden, zu erwarten ist, dass sie gut abschneiden.
Der größte Vorteil von Machine Learning besteht darin, dass wir keine zahlreichen hartcodierten IF THEN
-Anweisungen schreiben mussten, mit denen wir dem Modell vermitteln: IF
(wenn) die gesetzte Position 1 ist, THEN
(dann) liegt die Siegchance des Teams um 80 % höher. Machine Learning benötigt keine hartcodierten Regeln oder hartcodierte Logik, sondern lernt diese Zusammenhänge selbst. Weitere Informationen finden Sie in der Dokumentation zur Gewichtung der BQML-Syntax.
Aufgabe 8: Modellleistung evaluieren
Um die Leistung des Modells zu evaluieren, können Sie ein trainiertes Modell mit einem simplen ML.EVALUATE
-Befehl testen.
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Ausgabe sollte ungefähr so aussehen:
Der Wert wird zu ungefähr 69 % korrekt sein. Dieses Ergebnis ist zwar besser als ein Münzwurf, lässt sich aber noch optimieren.
Aufgabe 9: Vorhersagen erstellen
Nachdem Sie nun ein Modell mit Verlaufsdaten aller Saisons bis einschließlich der Saison 2017 (also allen Daten, die Ihnen zur Verfügung standen) trainiert haben, ist es an der Zeit, Vorhersagen für die Saison 2018 zu treffen. Ihr Data Science-Team hat Ihnen soeben die Ergebnisse des 2018er Turniers in einer separaten Tabelle bereitgestellt. Sie waren nicht Teil Ihres ursprünglichen Datasets.
Um eine Vorhersage zu treffen, müssen Sie lediglich ML.PREDICT
auf einem trainierten Modell aufrufen und das Dataset durchlaufen lassen, für das die Vorhersage getroffen werden soll.
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Ausgabe sollte ungefähr so aussehen:
Klicken Sie auf Fortschritt prüfen.
Ihnen werden nun das ursprüngliche Dataset sowie die drei neuen Spalten angezeigt:
- Vorhergesagtes Label
- Optionen für das vorhergesagte Label
- Wahrscheinlichkeit für das vorhergesagte Label
Da Sie die Ergebnisse des 2018er March Madness-Turniers bereits kennen, prüfen wir nun, wie gut das Modell sie vorhersagen konnte. (Tipp: Wenn Sie Vorhersagen für das diesjährige March Madness-Turnier treffen möchten, übergeben Sie einfach ein Dataset mit den gesetzten Positionen und Teamnamen der Saison 2019. Logischerweise ist die Label-Spalte in diesem Fall leer, da die Spiele des betreffenden Turniers noch nicht stattgefunden haben. Dafür treffen Sie schließlich die Vorhersage.)
Aufgabe 10: Wie viele Vorhersagen unseres Modells für das 2018er NCAA-Turnier waren korrekt?
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Ausgabe sollte ungefähr so aussehen:
Bei 134 Vorhersagen (67 Turnierspielen) lag unser Modell 38-mal falsch. Insgesamt lag die Trefferquote für die 2018er Turnierpaarungen bei 70 %.
Aufgabe 11: Modelle sind leider nicht allwissend…
Es gibt so viele weitere Faktoren, die zu den knappen Siegen und Überraschungserfolgen bei einem March Madness-Turnier führen, und diese kann ein Modell kaum vorhersagen.
Suchen wir nach dem laut Modell größten Überraschungserfolg des 2017er Turniers. Wir sehen uns an, in welchen Fällen das Modell mit seiner Vorhersage, dass ein Ergebnis mit einer Wahrscheinlichkeit von 80 % oder höher eintritt, FALSCH lag.
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Das Ergebnis sollte in etwa so aussehen:
Ryan Odom, Trainer des UMBC-Teams, sagte nach dem Spiel: „Unglaublich, mir fehlen die Worte.“ Weitere Informationen finden Sie im Artikel 2018 UMBC vs. Virginia men's basketball game.
Zusammenfassung
- Sie haben ein ML-Modell erstellt, um Spielergebnisse vorherzusagen.
- Sie haben die Leistung des Modells evaluiert und mit der gesetzten Position und den Teamnamen als primäre Features eine Accuracy von 69 % erhalten.
- Sie haben die Ergebnisse des 2018er Turniers vorhergesagt.
- Sie haben die Statistiken der Ergebnisse analysiert.
Unsere nächste Aufgabe besteht darin, ein besseres Modell zu erstellen, das die gesetzte Position und die Teamnamen NICHT als Features verwendet.
Aufgabe 12: Nützliche Features für ML-Modelle
Im zweiten Teil dieses Labs erstellen Sie ein zweites ML-Modell mithilfe von neu bereitgestellten und detaillierten Features.
Da Sie sich nun mit der Erstellung von ML-Modellen mithilfe von BigQuery ML ganz gut auskennen, hat Ihr Data Science-Team Ihnen ein neues Dataset mit Spielberichten bereitgestellt. Dieses enthält neue Teammesswerte, aus denen Ihr Modell Erkenntnisse ziehen kann. Dazu gehören:
- die Punkteverwertung über einen bestimmten Zeitraum basierend auf der Analyse der bisherigen Spiele
- der Ballbesitz über einen bestimmten Zeitraum
Ein neues ML-Dataset mithilfe dieser auf Fähigkeiten basierenden Features erstellen
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Ausgabe sollte ungefähr so aussehen:
Klicken Sie auf Fortschritt prüfen.
Aufgabe 13: Vorschau der neuen Features ansehen
- Klicken Sie rechts neben der Konsole auf die Schaltfläche Weiter zur Tabelle. Klicken Sie auf den Tab Vorschau.
Ihre Tabelle sollte ungefähr so aussehen:
Es spielt keine Rolle, wenn Ihre Ausgabe nicht mit dem Screenshot oben übereinstimmt.
Aufgabe 14: Ausgewählte Messwerte interpretieren
- Hier erfahren Sie mehr über einige wichtige Labels, die uns beim Treffen von Vorhersagen helfen.
opp_efficiency_rank
Punkteverwertung des Gegners: Welchen Rang nimmt unser Gegner unter allen Teams bei der Punkteverwertung (Punkte pro 100 Ballbesitzphasen) für einen bestimmten Zeitabschnitt ein? Je niedriger der Wert, desto besser.
opp_pace_rank
Ballbesitz des Gegners: Welchen Rang nimmt unser Gegner unter allen Teams beim Ballbesitz (Anzahl der Ballbesitzphasen innerhalb von 40 Minuten) ein? Je niedriger der Wert, desto besser.
Sie verfügen nun über aussagekräftige Features, die Ihnen Aufschluss über die Punkteverwertung und den Ballbesitz eines Teams geben und mit denen Sie Ihr zweites Modell trainieren können.
Um Ihr Modell daran zu hindern, sich „Teams, die in der Vergangenheit gut waren“ zu merken, schließen Sie Namen und gesetzte Position des Teams in diesem neuen Modell aus und beschränken Sie sich lediglich auf die Messwerte.
Aufgabe 15: Das neue Modell trainieren
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Ausgabe, die Sie anschließend erhalten, sollte in etwa so aussehen:
Aufgabe 16: Die Leistung des neuen Modells evaluieren
- Führen Sie den folgenden Befehl im Abfrageeditor aus, um die Leistung Ihres Modells zu evaluieren:
Ihre Ausgabe sollte ungefähr so aussehen:
Sehr gut. Sie haben ein neues Modell mit anderen Features trainiert und die Accuracy auf rund 75 % verbessert. Das entspricht einem Anstieg von 5 % gegenüber dem ersten Modell.
Dies ist eine der wichtigsten Erkenntnisse beim Machine Learning: Ein Dataset mit hochwertigen Features kann einen großen Einfluss auf die Accuracy Ihres Modells haben.
Klicken Sie auf Fortschritt prüfen.
Aufgabe 17: Gelernte Ergebnisse des Modells untersuchen
- Welche Features hat das Modell bei der Ermittlung des Spielergebnisses am stärksten gewichtet? Finden Sie es heraus, indem Sie den folgenden Befehl im Abfrageeditor ausführen:
Die Ausgabe sollte so aussehen:
Die absoluten Werte der Gewichtungen sind so angeordnet, dass die Features, die sich am stärksten auf das Spielergebnis auswirken, zuerst aufgeführt werden.
Wie Sie in den Ergebnissen sehen können, sind die drei wichtigsten Features pace_stat_diff
, eff_stat_diff
und eff_rating_diff
. Sehen wir sie uns einmal genauer an.
pace_stat_diff
Der Unterschied zwischen den beiden Teams in Bezug auf Ballbesitzphasen/40 Minuten. Laut dem Modell hat dieses Feature die größte Aussagekraft in Bezug auf das Spielergebnis.
eff_stat_diff
Der Unterschied zwischen den beiden Teams in Bezug auf die Nettopunkte/100 Ballbesitzphasen.
eff_rating_diff
Der Unterschied zwischen den beiden Teams in Bezug auf die normalisierte Bewertung der Punkteverwertung.
Was wurde von dem Modell für die Vorhersagen nicht besonders stark gewichtet? Die Saison. In der obigen Ausgabe mit den gelisteten Gewichtungen nimmt sie den letzten Platz ein. Für das Modell ist die Saison (2013, 2014, 2015) nicht sonderlich nützlich zur Vorhersage eines Spielergebnisses. Das Jahr „2014“ war für die Teams ein Jahr wie jedes andere.
Eine interessante Erkenntnis ist, dass das Modell den Ballbesitz eines Teams, also das Maß dafür, wie gut das Team den Ball kontrollieren konnte, stärker gewichtete als die Punkteverwertung.
Aufgabe 18: Zeit für die nächste Vorhersage
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Ausgabe sollte in etwa so aussehen:
Klicken Sie auf Fortschritt prüfen.
Aufgabe 19: Vorhersageanalyse
Da Sie die korrekten Spielergebnisse kennen, können Sie mit dem neuen Test-Dataset sehen, wo Ihr Modell eine falsche Vorhersage getroffen hat.
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Die Anzahl der von der Abfrage zurückgegebenen Einträge zeigt, dass das Modell bei 48 Paarungen (24 Spielen) falsch lag. Das ergibt bei der Gesamtanzahl aller Paarungen in dem 2018er Turnier eine Accuracy von 64 %. 2018 muss wohl ein ziemlich ungewöhnliches Jahr gewesen sein. Sehen wir uns doch einmal die Überraschungserfolge an.
Aufgabe 20: Bei welchen Spielen gab es im März 2018 Überraschungserfolge?
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Ihre Ausgabe sollte ungefähr so aussehen:
Der größte Überraschungserfolg wurde auch von unserem vorherigen Modell gefunden: UMBC besiegte Virginia. 2018 war insgesamt ein Jahr der großen Überraschungen. Lesen Sie mehr darüber im Artikel Has This Been the “Maddest” March?. Wird 2019 genau so spannend sein?
Aufgabe 21: Leistung der Modelle vergleichen
Wie sieht es mit den Ergebnissen aus, bei denen das naive Modell (das die gesetzten Positionen verglichen hat) falsch, das fortschrittlichere Modell hingegen richtig lag?
- Führen Sie den folgenden Befehl im Abfrageeditor aus:
Ihre Ausgabe sollte ungefähr so aussehen:
Das Modell sagte einen Überraschungssieg der Florida State University (09) über die Xavier University (01) voraus – und so kam es auch.
Der Überraschungssieg wurde von dem neuen Modell korrekt vorhergesagt (obwohl die gesetzte Position einen anderen Schluss zuließ) und die Grundlage dafür waren die neuen, auf Fähigkeiten basierenden Features wie Ballbesitz und Punkteverwertung. Sehen Sie sich die Highlights des Spiels auf YouTube an.
Aufgabe 22: Vorhersage für das March Madness-Turnier 2019 treffen
Da wir die Teams und die gesetzten Positionen für März 2019 kennen, treffen wir nun eine Vorhersage zu den Ergebnissen zukünftiger Spiele.
Daten von 2019 untersuchen
- Mit der folgenden Abfrage finden Sie die Teams, die auf die besten Positionen gesetzt wurden:
Ihre Ausgabe sollte ungefähr so aussehen:
Matrix aller möglichen Spiele erstellen
Da wir nicht wissen, welche Teams im Verlauf des Turniers aufeinandertreffen, lassen wir einfach alle Teams gegeneinander antreten.
CROSS JOIN ist eine einfache Methode, um mit SQL ein einzelnes Team gegen jedes andere Team in einer Tabelle antreten zu lassen.
- Führen Sie die folgende Abfrage aus, um alle möglichen Teampaarungen des Turniers zu erhalten:
Fügen Sie die 2018er Teamstatistiken (Ballbesitz, Punkteverwertung) hinzu:
Vorhersagen treffen
Klicken Sie auf Fortschritt prüfen.
Rufen Sie Ihre Vorhersagen ab:
- Hier haben wir die Ergebnisse des Modells so gefiltert, dass alle möglichen Spiele der Duke University angezeigt werden. Scrollen Sie, um das Spiel Duke gegen North Dakota State zu finden.
Ergebnis: Duke (1) wird North Dakota State (16) mit einer Wahrscheinlichkeit von 88,5 % am 22.3.2019 schlagen.
Experimentieren Sie ein wenig, indem Sie den Filter school_ncaa so ändern, dass die Ergebnisse der Spiele in Ihrem Turnierbaum vorhergesagt werden. Notieren Sie sich, welche Wahrscheinlichkeiten das Modell für seine Vorhersagen angibt – und dann gute Unterhaltung bei den Spielen.
Das wars! Sie haben das Lab erfolgreich abgeschlossen.
Sie haben mithilfe von BigQuery die Sieger des NCAA-Basketballturniers der Herren vorhergesagt.
Weitere Informationen
- Möchten Sie mehr über Messwerte im Basketball und ihre Analyse erfahren? Hier finden Sie weitere Analysen des Teams, das für die Google Cloud-Anzeigen und ‑Vorhersagen des NCAA-Turniers verantwortlich war.
- Sehen Sie sich dieses Lab an:
Google Cloud-Schulungen und -Zertifizierungen
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 19. März 2024 aktualisiert
Lab zuletzt am 19. März 2024 getestet
© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.