19. Februar 2025

CAS PML: Erkennung der ÖV-Nutzung mit Bluetooth-Beacons

Im CAS «Practical Machine Learning» an der BFH untersuchte Etienne die Nutzung von Bluetooth-Beacon-Daten zur Auswertung der ÖV-Nutzung. Das Projekt zielte darauf ab, Fusswege von der tatsächlichen ÖV-Nutzung zuverlässig zu unterscheiden.

AI & Data Analytics
Mobility IT-Services
Beitragsbild CAS PML Bluetooth Beacon

Ausgangslage: Erkennung der ÖV-Nutzung mit Bluetooth-Beacons

Im vergangenen halben Jahr durfte ich bei der BFH ein CAS zum Thema «Practical Machine Learning» absolvieren. Das «Practical» in dem Titel des CAS wurde wörtlich genommen. Dabei lernten wir viele verschiedene ML-Methoden und -Ansätze kennen und konnten diese auch direkt anwenden.

Ein Teil der Ausbildung war ausserdem eine Projektarbeit, welche ich im Mobilitätsbereich durchführen konnte.

Bei dem ASP Feldtest Reiseerfassung zeigte sich eine wichtige Erkenntnis. Insbesondere die Erkennung von Fusswegen könnte durch verstärkten Einsatz von Bluetooth-Beacon-Daten verbessert werden.. Dabei geht es darum zu erkennen, ob jemand (vor allem im Nahverkehr) effektiv den Öffentlichen Verkehr genutzt hat oder anderweitig ans Ziel gekommen ist.

In jedem ÖV Fahrzeug sind Bluetooth-Beacons verbaut, welche über das iBeacon-Protokoll kontinuierlich so genannte Advertisement Pakete verschicken. Daher kann ein Endgerät diese Pakete scannen und auswerten. Man hat die Beacon-Daten bereits im Feldtest genutzt. Das Problem besteht jedoch darin, dass man Beacon-Daten auch ausserhalb eines Fahrzeugs erkennen kann. Zum Beispiel, wenn jemand an einem Tram vorbeiläuft oder an einer Bushaltestelle wartet. Die Idee des Projekts war es, ausschliesslich anhand der Beacon-Daten zu erkennen, wann sich ein:e Benutzer:in tatsächlich in einem ÖV-Fahrzeug befindet.

Diese Methode spart viel Akku und schützt die Privatsphäre der Nutzer:innen. Zusätzliche Fitness-Daten müssen nicht ausgewertet werden.

Datensammlung

Während 25 ÖV-Reisen sammelte das Projekt Bluetooth-Daten, um eine Datenbasis zu erhalten. Wie im Referenzbericht ASP Feldtest Reiserfassung beschrieben, ist es aufgrund der verschiedenen Smartphone-Hersteller und Modelle schwierig, zuverlässige Scans mit diesen Geräten zu machen. Da das Projekt sich hauptsächlich mit der theoretischen Umsetzungsmöglichkeit befasste, zeichnete ein Raspberry Pi die Bluetooth-Daten auf. Dieser scannt kontinuierlich.

Beim Supervised Learning ist es notwendig, neben Rohdaten auch die dazugehörigen Klassen oder Labels zu haben, mit welchen die ML Modelle trainiert werden. Deshalb kennzeichneten wir während der Reisen die Ein- und Ausstiegszeitpunkte mit einer Web-App. Zwei Labels setzten die Klassifikation im Projekt um: 0 = nicht im Verkehrsmittel und 1 = im Verkehrsmittel.

Event Tracking Web App

Während der Reisen empfingen und wertetetn wir 143’000 Bluetooth-Pakete aus. Für die weitere Verarbeitung aggregierte ich diese Datenpunkte über ein Zeitfenster.  Anschliessend bereicherte ich sie mit Labels. Daraus ergab sich die folgende Datenstruktur, die für das Training der ML-Modelle diente:

timestamp label paket-count beacon_unique distance_mean distance_yar distance_max distance_min
2024-07-09 14:20:50+00:00 0 12 3 5.8 13.9 15 2.3
2024-07-09 14:21:00+00:00 1 19 3 3.9 10.8    

Modellierung

Im ersten Schritt trainierte ich verschiedene ML-Algorithmen mit den default Parametern. Zunächst konnte ich dadurch einschätzen, welche Parameter schon ohne Optimierung gut performen. Insbesondere stach vor allem der Random-Forest-Classifier heraus, der einen «Matthews Correlation Coefficient» (MCC) von 0.85 erreichte. Der MCC ist eine Scoring-Metrik, welche von -1 bis 1 geht, wobei 1 die perfekte Klassifikation ist.

Um zusätzlich noch andere Ansätze als klassische Klassifikations-Algorithmen weiter zu verfolgen, hab ich ebenfalls ein neuronales Netz implementiert. Denn je nach Architektur können neuronale Netze die Zeitreihen besser abbilden. Das bedeutet, dass nicht nur der Datensatz selbst den Output beeinflusst. Auch die vorherigen Daten spielen eine Rolle. Je nach Architektur erreicht man zudem eine bessere Generalisierung. Das Modell kann dadurch besser mit unbekannten Daten umgehen. Man baute das neuronale Netz auf «Long Short-Term Memory» (LSTM) Konten auf, die sich gut für Zeitreihenprobleme eignen. Dieses Modell erreichte auch ohne Parameteroptimierung einen MCC von 0,8.

Hyperparameter Tuning

Um noch bessere Klassifizierungen zu erreichen, wurden die ausgewählten Algorithmen noch «getunet». Dabei sollen möglichst optimale Parameter für das Problem gefunden werden. In dieser Arbeit machten wir dies mit dem Optimierungs-Framework Optuna. Nachdem die besten Parameter gefunden wurden, gab es noch einmal eine Runde Scoring. Der Random-Forest-Classifier liess sich spürbar verbessern. Beim neuronalen Netz verbesserte der Score sich um 0.027 Punkte auf 0.827.

Finale Validierung

Um Overfitting zu vermeiden, behielten wir zu Beginn dieser Arbeit 20% der Daten als Testset zurück. Diese Daten verwendeten wir nicht im Training. Mit ihnen bewerteten wir die Modelle.

Auf diesem Datensatz konnten sehr gute Scores von 0.91 für den Random-Forest Ansatz und 0.945 für das LSTM erzielt werden. Auf den folgenden Bildern sind zwei der Reisen aus den Testdaten abgebildet. Die orangene Linie bildet die Vorhersage und die blaue Linie zeigt das Ergebnis der echten Labels. Man sieht hierbei, dass der Random-Forest mehrere kurze Ausschläge hat, da jeder Datenpunkt isoliert betrachtet wird. Beim LSTM sind die Übergänge hingegen fliessender.

Finale Validierung Random Forest
Finale Validierung Random Forest
CAS PML Beacon Daten - Finale Validierung LSTM
Finale Validierung LSTM

Fazit

Die Resultate waren sehr erfreulich. Allerdings müssen sie mit Vorbehalt angesehen werden, weil die Daten mit einem Raspberry Pi und nicht mit Smartphones aufgezeichnet wurden. Dennoch kann man sagen, dass bei einem funktionierenden Scanning der Bluetooth-Daten eine Klassifikation mit ML-Algorithmen durchaus gute Resultate liefern kann.