Preprocessing

Preprocessing ist ein wichtiger Schritt im Data Science Workflow, der zwischen Data Exploration und Machine Learning eingeordnet ist. Beim Preprocessing geht es darum, die Rohdaten umzuwandeln, zu reduzieren und aufzuräumen, um einen möglichst aussagekräftigen Datensatz für die weiteren Schritt zu erhalten. Mit diesem Datensatz kann man dann ein Machine Learning Model trainieren.

Bei Zeitreihendaten beginnt das Preprocessing damit, dass die Rohdaten zugeschnitten werden: Angenommen man nimmt mit seinem Handy Sensordaten auf – dann hat man möglicherweise zu Beginn und zum Ende jedes Samples einige Sekunde Daten, wo man den Sensor gestartet/gestoppt hat, die nicht mit in das eigentliche Sample hinein gehören. Diese paar Sekunde schneiden wir also für jedes Sample ab.

Bei diesem Datensatz aus dem LG4ML-Projekt Untergrunderkennung beim Radfahren werden vorne und hinten einige Sekunde abgeschnitten.

Schritte im Preprocessing #

Im nächsten Schritt, bei vielen Datensätzen (solche, die keine Zeitreihen darstellen) auch der erste Schritt, werden Ausreißer aus dem Datensatz entfernt und die Lücken ggf. mit erzeugten Werten aufgefüllt. Bei der sogenannten Outlier Detection gibt es verschiedene Verfahren, Ausreißer zu erkennen. Diese basieren teilweise auf Wissen über die Daten (die Herzfrequenz ist in der Regel nicht viel größer als 200 Schläge pro Minute), häufig kommen auch statische Verfahren zum Einsatz. Alle dieser Verfahren haben gemeinsam, dass sie Ausreißer in den Daten identifizieren und ggf. entfernen.

Möglicherweise müssen jene Datenpunkte, die durch die Outlier Detection entfernt wurden, durch generierte Werte ersetzt werden, z. B. bei einer Zeitreihe, bei der wir keine fehlenden Punkte haben möchten. Möglicherweise sind auch bereits fehlende Werte in einigen Zeilen des Datensatzes. Durch die Value Imputation werden diese Werte aufgefüllt. Als neuer Wert kann bspw. der Mittelwert der Spalte genommen werden, eine Zeitreihe kann durch eine Prediction fortgesetzt werden oder es werden Verfahren eingesetzt, die die anderen Spalten nutzen, um einen neuen Wert zu generieren.

Sind nun alle fehlenden Werte aufgefüllt, können ja nach Anforderung noch weitere Filter auf die Daten angewandt werden. Mit einem Low-, High- oder Bandpass-Filter können bestimmte periodische Aktivitäten aus einem Signal herausgefiltert werden. Des weiteren kommt bei Daten von Sensoren oft dazu, dass alle Sensoren ein mehr oder weniger starken Hintergrundrauschen im Hochfrequenten bereich haben. Alle diese Bereiche können aus einem Signal herausgefiltert werden.

Aus den Rohdaten (unten) wird die periodische Bewegung herausgefiltert (oben).

Feature Engineering #

Im letzten Schritt werden aus den Rohdaten Features generiert, mit denen dann das Modell trainiert werden kann. Bei Zeitreihendaten werden häufig statische Größen wie der arithmetische Mittelwert, die Standardabweichung oder der Median, aber auch Frequenz-Daten wie die stärkste Frequenz im Sample extrahiert. Diese wenigen Features fassen häufig die (komplexen) Rohdaten ausreichend gut zusammen. Bei vielen Datensätzen mit vielen Attributen können auch Verfahren wie die Principal Component Analysis (kurz PCA) angewandt werden, um die Anzahl der Variblen bzw. Feature zu verringern.

Damit sind wir am Ende des Preprocessing angelangt und können mit dem maschinellen Lernen beginnen. Alle Themen des Preprocessing werden in weiteren Artikeln auch nochmal ausführlicher erklärt.

Weiterführende Links:
What is Data Preprocessing? – https://www.youtube.com/watch?v=J61r–lv7-w
Introduction to Data Preprocessing – https://towardsdatascience.com/introduction-to-data-preprocessing-in-machine-learning-a9fa83a5dc9d

Schreibe einen Kommentar