Daten sind oft unvollständig oder fehlerhaft. Dies ist vor allem der Fall, wenn Daten verwendet werden, die selber erhoben wurden. Daten aus Online-Datenbanken oder die in APIs integriert sind, wurden oftmals schon bereinigt. In der Datenbereinigung werden die Probleme der unvollständigen und fehlerhaften Daten angegangen. Die verschiedenen Schritte der Datenbereinigung werden beispielhaft am Ende des Abschnitts dargelegt.
1. Fehlende Werte behandeln: Fehlende Werte bei Datensätzen können dazu führen, dass ML-Modelle sich während des Trainings nicht so gut an die Daten anpassen können. Bei späteren Vorhersagen des Modells führt dies dann zu fehlerhaften oder unvollständigen Vorhersagen. Die Bereinigung umfasst das Identifizieren fehlender Werte und deren Behandlung. Dies kann durch Auffüllen mit Durchschnittswerten, Löschen der betreffenden Stellen des Datensatzes oder andere Strategien erfolgen.
2. Duplikate entfernen: Duplikate in den Daten können zu Verzerrungen führen, da sie denselben Datenpunkt mehrmals repräsentieren. Es ist wichtig, Duplikate zu identifizieren und zu entfernen, um sicherzustellen, dass jeder Datenpunkt nur einmal in der Analyse berücksichtigt wird.
3. Ausreißer erkennen und behandeln: Ausreißer sind ungewöhnliche Datenpunkte, die stark von den restlichen Daten abweichen. Sie entstehen oft durch Messfehler oder ungewöhnliche Ereignisse, die nicht repräsentativ für die normale Datenverteilung sind. Ausreißer können die Leistung von ML-Modellen beeinträchtigen. Die Bereinigung beinhaltet das Identifizieren und Behandeln von Ausreißern, entweder durch Entfernen oder Transformation.
4. Konsistenz sicherstellen: Die Daten sollten konsistent sein und denselben Formatierungsstandards folgen. Das bedeutet beispielsweise das Vereinheitlichen von Datentypen (z. B. Datumswerte), das Angleichen von Einheiten (z. B. Umrechnung von Längen) und z. B. die Standardisierung von Kategorienamen. Dadurch wird die Qualität der Daten verbessert und ihre Verwendbarkeit in Analysen und ML-Modellen gesteigert.
5. Datenformatierung und -transformation: In einigen Fällen müssen Daten in ein anderes Format oder eine andere Struktur umgewandelt werden. Dies kann bedeuten, dass bspw. kategorische Variablen in numerische Werte umgewandelt werden müssen. Die Datenformatierung und -transformation zielt darauf ab, die Daten in eine geeignetere Form zu bringen, um eine bessere Leistung der Modelle zu ermöglichen.
Die Datenbereinigung ist ein iterativer Prozess, der oft mehrere Durchläufe erfordert, um sicherzustellen, dass die Daten in einem akzeptablen Zustand sind. Ein sorgfältig durchgeführter Datenbereinigungsprozess trägt erheblich zur Verbesserung der Qualität von ML-Modellen bei und trägt dazu bei, genaue Vorhersagen zu treffen. Es ist ein unverzichtbarer Schritt in der Datenanalyse und Modellentwicklung.
Im Folgenden ist ein Codebeispiel zur Bereinigung der Daten im Iris-Datensatz:
import pandas as pdimport numpy as npfrom sklearn.datasets import load_irisfrom scipy import stats# Laden des Iris-Datensatzesiris =load_iris()# Erstellung eines Pandas DataFrame aus den Iris-Datendf = pd.DataFrame(data=iris.data,columns=iris.feature_names)df['species']= iris.target# Füllen fehlender Werte mit dem Durchschnittswert der jeweiligen Spaltedf = df.fillna(df.mean())# Entfernen von Duplikatendf = df.drop_duplicates()# Entfernen von Ausreißern mit Hilfe der Z-Score-Methode# Der Z-Score misst die Anzahl der Standardabweichungen eines Wertes vom Mittelwert der Daten. Werte mit einem hohen absoluten Z-Score sind potenzielle Ausreißer# Berechnung der Z-Scores für jede Spalte im DataFramez_scores = stats.zscore(df.iloc[:,:-1])# Filterung der Einträge, deren absolute Z-Scores kleiner als 3 sind# (Standardabweichungen)abs_z_scores = np.abs(z_scores)filtered_entries =(abs_z_scores <3).all(axis=1)df = df[filtered_entries]# Standardisierung der Spaltennamen, um Konsistenz zu gewährleistendf.columns = df.columns.str.lower()