Im Bereich des maschinellen Lernens ist die Qualität der Daten von entscheidender Bedeutung. Die Datenvorverarbeitung ist ein wesentlicher Schritt, bei dem Rohdaten in ein sauberes und nutzbares Format umgewandelt werden. Dieser Prozess stellt sicher, dass die in maschinelle Lernmodelle eingespeisten Daten genau, konsistent und relevant sind, was sich wiederum erheblich auf die Leistung und Genauigkeit dieser Modelle auswirkt. In diesem Artikel werden die wichtigsten Schritte der Datenvorverarbeitung behandelt.
Schritte der Datenvorverarbeitung
1. Datenerfassung
Quellen der Daten:
Relationale Datenbanken und Data Warehouses sind häufige Quellen, in denen strukturierte Daten in Tabellen gespeichert und mithilfe von SQL abgefragt werden können. Data Warehouses integrieren Daten aus verschiedenen Quellen und sind für Abfragen und Analysen optimiert. APIs und Webdienste sind ebenfalls wertvolle Datenquellen. Öffentliche APIs bieten Zugang zu Daten verschiedener Dienste und Plattformen, wie der Twitter-API für soziale Mediendaten oder der Google-Maps-API für geografische Daten.
Das Web Scraping ist eine weitere Methode der Datenerfassung, bei der Daten von Websites mithilfe von Tools und Bibliotheken wie BeautifulSoup und Scrapy extrahiert werden. Diese Methode eignet sich, um Daten von Webseiten zu sammeln, die keine APIs bereitstellen. Dabei ist jedoch darauf zu achten, die Nutzungsbedingungen der Website und rechtliche Aspekte zu berücksichtigen.
Umfragen und Fragebögen werden häufig in der Marktforschung, den Sozialwissenschaften und bei der Sammlung von Kundenfeedback eingesetzt. Logs und Ereignisdaten, die von Systemen und Anwendungen generiert werden, liefern wertvolle Einblicke zur Überwachung der Systemleistung, zur Analyse des Benutzerverhaltens und zur Erkennung von Anomalien.
Öffentliche Datensätze, die von Regierungen, Forschungseinrichtungen und Organisationen zur Verfügung gestellt werden, sind eine weitere wertvolle Datenquelle. Beispiele hierfür sind das UCI Machine Learning Repository, Kaggle-Datensätze und offene Datenportale der Regierung. Soziale Medien bieten ebenfalls eine Fülle an Daten, wie Beiträge, Kommentare, Likes und Shares, die häufig für die Sentiment-Analyse und die Trendanalyse genutzt werden. Schließlich werden interne Unternehmensdaten, wie Verkaufszahlen, Kundeninformationen und Betriebsdaten, häufig für Business Intelligence, Kundenbeziehungsmanagement und Betriebsoptimierung verwendet.
Datentypen:
Die gesammelten Daten lassen sich grob in drei Kategorien einteilen: strukturierte, unstrukturierte und semi-strukturierte Daten.
Strukturierte Daten sind hoch organisiert und leicht durchsuchbar. Sie werden typischerweise in tabellarischen Formaten, wie Datenbanken und Tabellenkalkulationen, gespeichert, wobei jeder Datenpunkt durch ein bestimmtes Schema definiert ist. Beispiele für strukturierte Daten sind Kundeninformationen in einem CRM-System, Finanzdaten in einer Buchhaltungsdatenbank und Lagerbestandsdaten in einem Lagerverwaltungssystem.
Unstrukturierte Daten folgen keinem festen Format oder Schema. Sie sind oft textlastig und können multimediale Inhalte wie Bilder, Videos und Audiodateien umfassen. Beispiele für unstrukturierte Daten sind Beiträge in sozialen Medien, E-Mails, Kundenbewertungen und Videoaufzeichnungen. Im Gegensatz zu strukturierten Daten sind unstrukturierte Daten schwieriger zu verarbeiten und zu analysieren, da sie nicht in Tabellen oder Datenbanken passen.
Semi-strukturierte Daten liegen zwischen strukturierten und unstrukturierten Daten. Sie folgen keinem starren Schema wie strukturierte Daten, enthalten jedoch Tags oder Markierungen, die verschiedene Elemente trennen und Hierarchien von Datensätzen und Feldern erzwingen. Beispiele für semi-strukturierte Daten sind JSON- und XML-Dateien, HTML-Dokumente und NoSQL-Datenbanken.
2. Datenbereinigung
Umgang mit fehlenden Werten
Eine häufige Methode ist die Löschung, bei der Zeilen oder Spalten mit fehlenden Werten aus dem Datensatz entfernt werden. Diese Methode ist einfach, kann jedoch zu einem erheblichen Datenverlust führen, insbesondere wenn fehlende Werte weit verbreitet sind. Sie ist am besten geeignet, wenn der Anteil fehlender Daten relativ gering ist.
Eine weitere Methode ist die Imputation, bei der fehlende Werte mithilfe statistischer Methoden gefüllt werden. Einfache Imputationsverfahren umfassen das Ersetzen fehlender Werte durch den Mittelwert, Median oder Modus des jeweiligen Merkmals. Während diese Methode die Größe des Datensatzes erhält, kann sie zu Verzerrungen führen, wenn die fehlenden Werte nicht zufällig verteilt sind. Fortgeschrittenere Methoden, wie die k-nächste Nachbarn (KNN)-Imputation oder der Einsatz von maschinellen Lernalgorithmen zur Vorhersage fehlender Werte, können durch die Berücksichtigung der Beziehungen zwischen Merkmalen genauere Schätzungen liefern.
Die Interpolation ist eine weitere Technik, die besonders nützlich für Zeitreihendaten ist. Sie beinhaltet die Schätzung fehlender Werte auf der Grundlage benachbarter Datenpunkte. Lineare Interpolation, Spline-Interpolation und polynomiale Interpolation sind gängige Methoden in diesem Ansatz.
In einigen Fällen kann es sinnvoll sein, domänenspezifisches Wissen zur Handhabung fehlender Werte zu verwenden. Beispielsweise könnten in medizinischen Datensätzen fehlende Werte auf der Grundlage klinischer Leitlinien oder Expertenmeinungen ergänzt werden. Dieser Ansatz stellt sicher, dass die imputierten Werte realistisch und für den spezifischen Kontext relevant sind.
Duplikate entfernen.
Der Prozess des Entfernens von Duplikaten umfasst typischerweise die Identifizierung doppelter Datensätze anhand eines oder mehrerer Schlüsselattribute. In einer Kundendatenbank könnten beispielsweise Duplikate durch Abgleich von Datensätzen mit derselben Kunden-ID, dem Namen und den Kontaktdaten identifiziert werden. Sobald diese Duplikate identifiziert sind, können sie entfernt werden, sodass im Datensatz nur noch eindeutige Einträge verbleiben.
Es gibt verschiedene Methoden zur Handhabung von Duplikaten, abhängig von der Art der Daten und den spezifischen Anforderungen der Analyse. Ein gängiger Ansatz ist die Verwendung automatisierter Tools und Algorithmen, die Duplikate effizient erkennen und entfernen können. In Python bieten Bibliotheken wie Pandas beispielsweise Funktionen wie drop_duplicates(), die Duplikate auf der Grundlage bestimmter Spalten leicht identifizieren und entfernen können.
Fehler und Inkonsistenzen korrigieren.
Eine gängige Methode zur Korrektur von Fehlern ist die Durchführung von Datenvalidierungsprüfungen. Dabei wird überprüft, ob die Daten den vordefinierten Regeln und Einschränkungen entsprechen. Beispielsweise könnte sichergestellt werden, dass numerische Werte innerhalb eines angemessenen Bereichs liegen, Datumsangaben im richtigen Format vorliegen und kategoriale Variablen nur gültige Kategorien enthalten. Automatisierte Tools und Skripte können verwendet werden, um Datensätze zu identifizieren und zu kennzeichnen, die gegen diese Regeln verstoßen, sodass eine weitere Untersuchung und Korrektur möglich ist.
Inkonsistenzen in den Daten treten häufig auf, wenn unterschiedliche Quellen verschiedene Formate oder Konventionen verwenden. Beispielsweise könnten Datumsangaben in unterschiedlichen Formaten erfasst werden (z. B. MM/TT/JJJJ vs. TT/MM/JJJJ), oder kategoriale Variablen könnten unterschiedliche Bezeichnungen für dieselbe Kategorie haben (z. B. „Männlich“ vs. „M“). Die Standardisierung dieser Formate und Bezeichnungen kann durch Datenumwandlungstechniken erreicht werden, wie das Umwandeln aller Datumsangaben in ein Standardformat oder das Zuordnen unterschiedlicher Bezeichnungen zu einer gemeinsamen Kategorie.
Ausreißer, also Datenpunkte, die erheblich von den restlichen Daten abweichen, können ebenfalls eine Quelle für Fehler und Inkonsistenzen darstellen. Während einige Ausreißer echte Anomalien darstellen könnten, könnten andere das Ergebnis von Fehlern sein.
3. Datenumwandlung
Merkmals-Skalierung: Normalisierung und Standardisierung.
Die Merkmalskalierung umfasst die Anpassung der Werte von Merkmalen, sodass sie in einem bestimmten Bereich liegen, typischerweise zwischen 0 und 1, oder einen Mittelwert von 0 und eine Standardabweichung von 1 aufweisen. Diese Standardisierung trägt zur Verbesserung der Leistung und der Konvergenzgeschwindigkeit von maschinellen Lernalgorithmen bei. Es gibt zwei primäre Methoden der Merkmalskalierung: Normalisierung und Standardisierung.
Die Normalisierung ist der Prozess, Daten auf einen bestimmten Bereich, in der Regel zwischen 0 und 1, zu skalieren. Diese Technik ist besonders nützlich, wenn die Merkmale im Datensatz unterschiedliche Skalen und Einheiten haben. Durch die Normalisierung wird sichergestellt, dass alle Merkmale gleichermaßen zum Modell beitragen und verhindert, dass Merkmale mit größeren Skalen den Lernprozess dominieren. Normalisierung wird häufig bei Algorithmen verwendet, die auf Distanzberechnungen basieren, wie zum Beispiel k-nächste Nachbarn (KNN) und Support Vector Machines (SVM). Die gebräuchlichste Normalisierungsmethode ist das Min-Max-Scaling, das jedes Merkmal auf einen Bereich von [0, 1] basierend auf seinen minimalen und maximalen Werten transformiert.
Die Standardisierung beinhaltet die Anpassung der Daten, sodass sie einen Mittelwert von 0 und eine Standardabweichung von 1 haben. Diese Technik ist nützlich, wenn die Daten einer Gaußschen (normalen) Verteilung folgen. Die Standardisierung sorgt dafür, dass die Daten um den Mittelwert zentriert sind und eine einheitliche Skala aufweisen, was für Algorithmen wichtig ist, die eine normalverteilte Datenstruktur voraussetzen, wie z.B. lineare Regression und Hauptkomponentenanalyse (PCA). Der Standardisierungsprozess beinhaltet das Subtrahieren des Mittelwerts jedes Merkmals und das Teilen durch seine Standardabweichung, was zu einem Datensatz führt, bei dem jedes Merkmal einen Mittelwert von 0 und eine Standardabweichung von 1 aufweist.
Kodierung kategorialer Variablen
Eine gängige Methode ist das Label-Encoding, bei dem jeder Kategorie ein eindeutiger ganzzahliger Wert zugewiesen wird. Zum Beispiel könnten die Kategorien „rot“, „grün“ und „blau“ als 0, 1 und 2 kodiert werden. Während das Label-Encoding einfach und effizient ist, kann es unbeabsichtigte ordinale Beziehungen zwischen Kategorien einführen, was für alle Datentypen möglicherweise nicht geeignet ist.
Eine weitere häufig verwendete Technik ist das One-Hot-Encoding, bei dem für jede Kategorie eine binäre Spalte erstellt wird. Beispielsweise würde eine kategoriale Variable mit drei Kategorien („rot“, „grün“, „blau“) in drei binäre Spalten umgewandelt, wobei jede Spalte die Präsenz (1) oder Abwesenheit (0) einer Kategorie darstellt. Das One-Hot-Encoding vermeidet das Problem ordinaler Beziehungen und ist besonders nützlich für nominale Daten, bei denen keine inhärente Ordnung zwischen den Kategorien besteht. Allerdings kann es die Dimensionalität des Datensatzes erheblich erhöhen, insbesondere bei Variablen mit vielen Kategorien.
Binäres Encoding ist eine alternative Methode, die die Vorteile von Label-Encoding und One-Hot-Encoding kombiniert. Es konvertiert Kategorien in Binärcode und teilt die Binärziffern dann auf separate Spalten auf. Diese Methode reduziert die Dimensionalität im Vergleich zum One-Hot-Encoding und vermeidet gleichzeitig ordinale Beziehungen.
Bei kategorialen Variablen mit hoher Kardinalität (d.h. mit vielen einzigartigen Kategorien) können Techniken wie Target-Encoding oder Frequenz-Encoding nützlich sein. Beim Target-Encoding wird jede Kategorie durch den Mittelwert der Zielvariablen für diese Kategorie ersetzt, während beim Frequenz-Encoding jede Kategorie durch ihre Häufigkeit im Datensatz ersetzt wird. Diese Methoden können helfen, die Dimensionalität zu reduzieren und die Beziehung zwischen der kategorialen Variablen und der Zielvariablen zu erfassen.
4. Datenintegration
Kombination von Daten aus verschiedenen Quellen
Ein gängiger Ansatz ist das Schema-Matching, bei dem die Schemata verschiedener Datensätze so aufeinander abgestimmt werden, dass ähnliche Entitäten konsistent dargestellt werden. Dies kann das Umbenennen von Spalten, das Konvertieren von Datentypen und das Lösen von Konflikten zwischen unterschiedlichen Darstellungen derselben Entität beinhalten. Beispielsweise könnten Kundendaten aus zwei verschiedenen Quellen unterschiedliche Spaltennamen für dasselbe Attribut verwenden, wie „customer_id“ und „cust_id“. Schema-Matching sorgt dafür, dass diese Spalten korrekt ausgerichtet werden. Datenfusion ist eine Technik, um Daten aus mehreren Quellen auf einer detaillierteren Ebene zu kombinieren. Dies beinhaltet das Zusammenführen von Datensätzen, die sich auf dieselbe Entität beziehen, jedoch aus verschiedenen Quellen stammen. Beispielsweise könnten Kundendaten aus einem CRM-System mit Transaktionsdaten aus einer Verkaufsdatenbank zusammengeführt werden, um eine umfassende Sicht auf das Kundenverhalten zu schaffen. Die Datenfusion hilft, den Datensatz mit zusätzlichen Kontextinformationen und Erkenntnissen anzureichern.
Umgang mit Datenredundanz
Ein gängiger Ansatz im Umgang mit Datenredundanz ist die Duplikaterkennung, bei der doppelte Datensätze identifiziert und entfernt werden. Dieser Prozess beginnt typischerweise mit der Definition von Kriterien dafür, was als Duplikat gilt. Beispielsweise könnten in einer Kundendatenbank Duplikate anhand übereinstimmender Kunden-IDs, Namen und Kontaktinformationen identifiziert werden. Automatisierte Tools und Algorithmen können verwendet werden, um Duplikate basierend auf diesen Kriterien zu erkennen, was eine effiziente Entfernung redundanter Datensätze ermöglicht. Datensatzverknüpfung ist eine weitere Technik zur Behandlung von Datenredundanz, insbesondere wenn Duplikate keine exakten Übereinstimmungen sind, jedoch dieselbe Entität darstellen. Dies beinhaltet das Verknüpfen von Datensätzen aus verschiedenen Quellen, die sich auf dieselbe Entität beziehen, auch wenn sie geringfügige Unterschiede in ihren Attributen aufweisen. Zum Beispiel könnte ein Kunde in verschiedenen Datensätzen mit leicht unterschiedlichen Namen oder Adressen aufgeführt sein. Datensatzverknüpfungsalgorithmen verwenden Techniken wie fuzzy matching und probabilistische Zuordnung, um diese Datensätze genau zu identifizieren und zusammenzuführen.