Wir beschäftigen uns schon länger mit Echtzeitsystemen und – im Data Science-Team – mit Methoden des maschinellen Lernens (Machine Learning). Im Rahmen eines Innovationsprojekts haben wir kürzlich am Beispiel des Parkhauses Opéra in Zürich zwei Modelle entwickelt, welche eine Voraussage über die Auslastung ermöglichen. Damit können wir das Potenzial von auf Machine Learning basierenden Voraussagen an einer konkreten Aufgabenstellung aufzeigen.
Ziel des Innovationsprojekt war die Voraussage über den Besetzungsgrad des Parkhauses Opéra. Wir haben zudem die Entwicklung von zwei Modellen mit unterschiedlichem Prognosehorizont ins Auge gefasst: einmal relativ kurzfristig mit einer Stunde Vorlauf und einmal mit fünf Stunden.
Datengrundlage
Bei unserer Aufgabenstellung haben wir es mit sogenanntem «überwachten Lernen» zu tun. Dabei wird ein Modell trainiert mit gepaarten historischen Eingangs- und Ausgabedaten. Die Ausgabe unserer Modelle soll eine Aussage zur zukünftigen Anzahl belegter Parkplätze sein.
Ein Modell, auch ein neuronales Netzwerk, kann nur so gut sein, wie seine Eingangsdaten. Deshalb ist die Auswahl und gegebenenfalls die gezielte Aufbereitung von Eingangsdaten (Feature Engineering) sehr wichtig. Dazu haben wir uns mit Rückgriff auf Fachwissen überlegt, welche Informationen die Auslastung eines Parkhauses in der Zürcher Innenstadt womöglich am Besten zu beschreiben vermögen. (Zum Wert des Fachwissens in der Datenanalyse hat Stephan Heuel übrigens vor einigen Jahren in unserem Blog den Expertise-Value-Stack postuliert.)
Wir haben uns entschieden, folgende Datenquellen zu nutzen:
- Angesichts des «Corona-Jahrs» 2020: Daten des COVID-19-Trackers der Universität Oxford. Dieser repräsentiert mittels Indizes die Stärke der Schweizerischen COVID-19-Massnahmen (und jene anderer Länder), wozu ja auch beispielsweise Mobilitätseinschränkungen gehören, die die Parkhausauslastung beeinflussen können.
- Spezielle Tage: Ferien und Feiertage der Stadt Zürich, Grossveranstaltungen wie beispielsweise das «Sächsilüüte» sowie Veranstaltungen auf der Hauptbühne des Opernhauses wurden basierend auf verschiedenen Quellen zusammengetragen und als strukturierte Daten bereitgestellt.
- Historische Parkhausdaten als Zielgrösse unserer Modellierung: Diese Daten konnten über diese API (Programmierschnittstelle) bezogen werden.
Wir haben die Datengrundlagen bewusst sehr übersichtlich gehalten. Die angewandte Machine Learning-Methodik würde natürlich noch sehr viel breitere Datengrundlagen erlauben (und könnte dann auch ihre volle Stärke ausspielen). Ergänzend zu den oben genannten Daten könnten natürlich interessant sein:
- zeitlich hochaufgelöste Daten zum Verkehrsgeschehen
- Meteodaten
- Daten zu anderen Veranstaltungen in der Stadt
- Daten zu Feiertagen in anderen (zum Beispiel katholischen) Kantonen
- Angaben zu Promotionen (Abendverkäufe, Sonntagsverkäufe, Weihnachtsverkäufe)
- Angaben zu politischen Veranstaltungen wie Demonstrationen
und viele mehr.
Aufbereitung der Daten
Mithilfe von Python-Skripts haben wir die verschiedenen Datengrundlagen bezogen und zu einem konsistenten Datensatz aufbereitet. Dabei haben wir auch Feature Engineering umgesetzt, also aus den Datengrundlagen Merkmale ausgewählt und in eine Form gebracht, von der wir uns eine signifikante Erklärungskraft versprechen.
Historische Parkhausdaten des Parkhauses Opéra sind via oben erwähnte API ab dem 1. Januar 2018 in der Regel ungefähr alle 5 Minuten verfügbar – mit einer grösseren Datenlücke im Januar 2019. Im COVID-19-Tracker der Universität Oxford sind Werte ab dem 1. Januar 2020 definiert.
Der aufbereitete Datensatz enthält zwischen 1. Januar 2018 und 30. November 2020 stündlich einen Eintrag. Bis zum 31. Dezember 2019 haben wir statt den Indizes des COVID-19-Trackers den Wert eingesetzt, welcher keine COVID-19-Massnahmen repräsentiert.
Die Modelle: Recurrent Neural Networks
Unsere Modelle haben wir als sogenannte Recurrent Neural Networks mit Long Short-Term Memory (LSTM) entwickelt. Das Konzept ist beispielsweise in diesem Blogeintrag erläutert. Die neuronalen Netze haben wir mit dem Framework Keras, einer Deep Learning Library von Python, die selbst wiederum auf TensorFlow aufbaut, erstellt.
1. Modell: Voraussage der Auslastung in einer Stunde
Basierend auf folgenden erklärenden Variablen zum aktuellen Zeitpunkt wird die Auslastung des Parkhauses eine Stunde später modelliert:
- Aktuelle Auslastung des Parkhauses Opéra
- Tageswert des COVID-19-Trackers
- Kalenderwoche
- Wochentag
- Aktuelle Stunde
- Ferien oder Feiertag
- Grossveranstaltung an diesem Tag
- Veranstaltung auf der Hauptbühne des Opernhauses an diesem Tag
Trainiert wurde das Modell mit den Daten von Januar 2018 bis Ende Oktober 2020 in 50 Epochen, getestet mit den Daten aus dem November 2020.
Obige Abbildung zeigt die Minimierung der Loss-Funktion im Verlauf des Trainings (auf den für das Training verwendeten Trainingsdaten (blau) und den Testdaten (orange), die aber selbstverständlich nicht für das Trainieren des Modells verwendet wurden. Das Modell «lernt sehr schnell»: Die Loss-Funktion sinkt nach wenigen Epochen stark ab. Im weiteren Verlauf profitiert das Modell nicht mehr stark von weiteren Trainings-Epochen.
Etwas speziell ist der Umstand, dass die Loss-Funktion der Testdaten durchgehend niedrigere Werte aufweist als die Loss-Funktion der Trainingsdaten. Dies deutet darauf hin, dass die Testdaten einfacher vorauszusagen sind oder anders gesagt: dass die Testdaten gegenüber den Trainingsdaten nicht gleich repräsentativ sind. Dies könnte damit zu tun haben, dass das Modell sowohl mit Daten vor als auch während der COVID-19-Pandemie trainiert worden ist, die Testdaten dann aber nur die Auslastung des Parkhauses während der Pandemie repräsentieren.
2. Modell: Voraussage der Auslastung in fünf Stunden
Das zweite Modell haben wir auf denselben Trainings- und Testdaten erstellt. Im Unterschied zum ersten Modell berücksichtigt das zweite Modell die Werte aus den vergangenen fünf Stunden und macht eine Voraussage über die Auslastung fünf Stunden in der Zukunft. Diese Unterschiede im zweiten Modell haben wir durch Anpassungen an den gepaarten Eingangs- und Ausgabedaten gesteuert.
Die Loss-Funktionen des zweiten Modell verlaufen nun etwas anders. Die Loss-Funktion kann weniger stark minimiert werden als im ersten (einfacheren) Modell. Zudem muss ein Augenmerk darauf haben, was ab ungefähr der 35. Trainings-Epoche passiert: Hier kreuzen sich die Verläufe der Loss-Funktionen auf den Trainings- und den Test-Daten. Die Loss-Funktion sinkt für die Trainingsdaten auch in der 50. Epoche noch weiter ab. Dies lässt eigentlich Spielraum offen, dass das Modell nach 50 Epochen noch nicht voll trainiert ist. Andererseits bleibt die Loss-Funktion für die Testdaten gegen Ende des Trainings konstant. Dieser Umstand deutet darauf hin, dass dieses Modell «overfitted» ist, dass es also zu stark auf die Trainingsdaten hin trainiert worden ist.
Resultate
Wir haben in diesem ersten groben Anlauf darauf verzichtet, Modellparameter noch gezielt zu tunen. Trotzdem zeigt das erste Modell bereits eine insgesamt gute (relativ kurzfristige) Voraussage der Auslastung. Die Tagesspitze wird jedoch noch relativ oft unterschätzt. Ausserdem werden naturgemäss tiefe Belegungen während der Nacht noch nicht adäquat abgebildet.
Die Differenzen zwischen der realen Auslastung und der durch das zweite Modell vorausgesagten Auslastung sind grösser als im ersten Modell. Dies lässt sich auch dadurch erklären, dass eine Voraussage über fünf Stunden naturgemäss komplexer und mit grösserer Unsicherheit behaftet ist als die Voraussage für eine Stunde in der Zukunft.
Aufgrund des Overfitting könnten die Voraussage des zweiten Modells auf den Testdaten auch weniger präzis sein. Tiefe Belegungen in der Nacht scheint das zweite Modell aber bereits besser abbilden zu können. Der Grund dafür könnte sein, dass das zweite Modell im Gegensatz zum ersten Modell Werte von mehreren Stunden in der Vergangenheit berücksichtigt.
Ausblick
Unter Berücksichtigung der weiter oben aufgeführten weiteren Datengrundlagen und vor allem mit Tracking der aktuellen Auslastung des Parkhauses und kontinuierlichem weiteren Trainieren des Modells könnte die hier gezeigte Prognosekraft der neuronalen Netzwerke weiter gesteigert werden. Auch die Analyse und das Tuning von Modellparametern könnten die Qualität der Vorhersagen wohl noch weiter verbessern.
So können in Echtzeit Prognosen über die Auslastung von Parkinfrastrukturen in den kommenden Stunden gemacht werden. Das wäre aus unserer Sicht eine spannende Ergänzung zu den existierenden Echtzeit-Parkleitsystemen und -Apps.
Interessieren Sie sich auch für Anwendungen von Data Science und maschinellem Lernen auf alltägliche Fragestellungen? Sie können uns gerne unverbindlich kontaktieren.
Entdecke mehr von digital.ebp.ch
Subscribe to get the latest posts sent to your email.