Page cover

Datenbereinigung

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.

Mehr erfahren: DataCamp/Techniques to Handle Missing Valuesarrow-up-right, Analytics Vidhya/Effective Strategies for Handling Missing Valuesarrow-up-right, kaggle/Missing Valuesarrow-up-right, pandas/Working with missing dataarrow-up-right, Machine Learning Mastery/How to Handle Missing Data with Pythonarrow-up-right

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.

Mehr erfahren: Ritchie NG/Removing duplicate rowsarrow-up-right, Medium/Handling Duplicate Values and Outliers in a datasetarrow-up-right, deepchecks/A Practical Guide to Data Cleaningarrow-up-right, Medium/How Duplicate entries in data set leads to ovetfitting?arrow-up-right

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.

Mehr erfahren: Analytics Vidhya/Detecting and Treating Outliersarrow-up-right, Medium/How to Remove Outliers for Machine Learning?arrow-up-right, Medium/Outlier detection methods in Machine Learningarrow-up-right, Neural Designer/3 methods to treat outliers in machine learningarrow-up-right

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.

Mehr erfahren: Future Processing/Data preprocessing: a comprehensive step-by-step guidearrow-up-right

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.

Mehr erfahren: pandas/wide_to_longarrow-up-right

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 pd
import numpy as np
from sklearn.datasets import load_iris
from scipy import stats

# Laden des Iris-Datensatzes
iris = load_iris()

# Erstellung eines Pandas DataFrame aus den Iris-Daten
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df['species'] = iris.target

# Füllen fehlender Werte mit dem Durchschnittswert der jeweiligen Spalte
df = df.fillna(df.mean())

# Entfernen von Duplikaten
df = 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 DataFrame
z_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ährleisten
df.columns = df.columns.str.lower()

Last updated