Datenvorverarbeitung: Erkundung der Schlüssel zur Datenvorbereitung – SitePoint
In diesem Artikel untersuchen wir, was Datenvorverarbeitung ist, warum sie wichtig ist und wie wir unsere Daten bereinigen, transformieren, integrieren und reduzieren können.
Datenvorverarbeitung ist ein grundlegender Schritt in der Datenanalyse und dem maschinellen Lernen. Es handelt sich um einen komplizierten Prozess, der die Voraussetzungen für den Erfolg jedes datengesteuerten Vorhabens schafft.
Im Kern umfasst die Datenvorverarbeitung eine Reihe von Techniken, um rohe, nicht verfeinerte Daten in ein strukturiertes und kohärentes Format umzuwandeln, das für eine aufschlussreiche Analyse und Modellierung geeignet ist.
Diese wichtige Vorbereitungsphase ist das Rückgrat für die Gewinnung wertvollen Wissens und Weisheiten aus Daten und ermöglicht die Entscheidungsfindung und Vorhersagemodellierung in verschiedenen Bereichen.
Der Bedarf an Datenvorverarbeitung ergibt sich aus den inhärenten Unvollkommenheiten und Komplexitäten realer Daten. Rohdaten, die oft aus verschiedenen Quellen stammen, sind häufig mit fehlenden Werten, Ausreißern, Inkonsistenzen und Rauschen behaftet. Diese Mängel können den Analyseprozess behindern und die Zuverlässigkeit und Genauigkeit der gezogenen Schlussfolgerungen gefährden. Darüber hinaus können die über verschiedene Kanäle gesammelten Daten in Maßstäben, Einheiten und Formaten variieren, was direkte Vergleiche schwierig und möglicherweise irreführend macht.
Die Datenvorverarbeitung umfasst typischerweise mehrere Schritte, einschließlich Datenbereinigung, Datentransformation, Datenintegration und Datenreduzierung. Wir werden diese im Folgenden der Reihe nach untersuchen.
Datenreinigung Dabei geht es darum, Fehler, Inkonsistenzen und Ungenauigkeiten in den Daten zu identifizieren und zu korrigieren. Zu den Standardtechniken für die Datenbereinigung gehören:
Lassen Sie uns nacheinander jede dieser Datenbereinigungstechniken besprechen.
Der Umgang mit fehlenden Werten ist ein wesentlicher Bestandteil der Datenvorverarbeitung. Mit dieser Technik werden Beobachtungen mit fehlenden Daten behandelt. Wir besprechen drei Standardmethoden für den Umgang mit fehlenden Werten: Entfernen von Beobachtungen (Zeilen) mit fehlenden Werten, Imputieren fehlender Werte mit den Statistiktools und Imputieren fehlender Werte mit Algorithmen für maschinelles Lernen.
Wir demonstrieren jede Technik anhand eines benutzerdefinierten Datensatzes und erläutern die Ausgabe jeder Methode. Dabei werden alle Techniken zur Behandlung fehlender Werte einzeln besprochen.
Der einfachste Weg, mit fehlenden Werten umzugehen, besteht darin, Zeilen mit fehlenden Werten zu löschen. Diese Methode wird normalerweise nicht empfohlen, da sie unser Dataset beeinträchtigen kann, indem Zeilen mit wichtigen Daten entfernt werden.
Lassen Sie uns diese Methode anhand eines Beispiels verstehen. Wir erstellen einen benutzerdefinierten Datensatz mit Alters-, Einkommens- und Bildungsdaten. Wir führen fehlende Werte ein, indem wir einige Werte auf NaN (keine Zahl) setzen. NaN ist ein spezieller Gleitkommawert, der ein ungültiges oder undefiniertes Ergebnis anzeigt. Die Beobachtungen mit NaN werden mit Hilfe der Funktion dropna() aus der Pandas-Bibliothek gelöscht:
Die Ausgabe des obigen Codes ist unten angegeben. Beachten Sie, dass die Ausgabe nicht in einem umrandeten Tabellenformat erfolgt. Wir stellen es in diesem Format bereit, um die Ausgabe besser interpretierbar zu machen, wie unten gezeigt.
Originaldatensatz
Bereinigter Datensatz
Die Beobachtungen mit fehlenden Werten werden im bereinigten Datensatz entfernt, sodass nur die Beobachtungen ohne fehlende Werte erhalten bleiben. Sie werden feststellen, dass sich im bereinigten Datensatz nur die Zeilen 0 und 4 befinden.
Das Löschen von Zeilen oder Spalten mit fehlenden Werten kann die Anzahl der Beobachtungen in unserem Datensatz erheblich reduzieren. Dies kann die Genauigkeit und Verallgemeinerung unseres maschinellen Lernmodells beeinträchtigen. Daher sollten wir diesen Ansatz mit Vorsicht und nur dann verwenden, wenn wir über einen ausreichend großen Datensatz verfügen oder wenn die fehlenden Werte für die Analyse nicht unbedingt erforderlich sind.
Dies ist im Vergleich zur vorherigen Methode eine ausgefeiltere Methode zum Umgang mit fehlenden Daten. Es ersetzt die fehlenden Werte durch einige Statistiken, z. B. den Mittelwert, den Median, den Modus oder den konstanten Wert.
Dieses Mal erstellen wir einen benutzerdefinierten Datensatz mit Daten zu Alter, Einkommen, Geschlecht und Familienstand mit einigen fehlenden (NaN) Werten. Anschließend imputieren wir die fehlenden Werte mit dem Median mithilfe der Funktion fillna() aus der Pandas-Bibliothek:
Die Ausgabe des obigen Codes in Tabellenform ist unten dargestellt.
Originaldatensatz
Imputierter Datensatz
Im unterstellten Datensatz werden die fehlenden Werte in den Spalten „Alter“, „Einkommen“, „Geschlecht“ und „Familienstand“ durch die jeweiligen Spaltenmediane ersetzt.
Algorithmen für maschinelles Lernen bieten eine ausgefeilte Möglichkeit, mit fehlenden Werten basierend auf Merkmalen unserer Daten umzugehen. Beispielsweise ist die KNNImputer-Klasse aus der Scikit-learn-Bibliothek eine leistungsstarke Möglichkeit, fehlende Werte zu imputieren. Lassen Sie uns dies anhand eines Codebeispiels verstehen:
Die Ausgabe dieses Codes ist unten dargestellt.
Ursprünglicher Datensatz
Datensatz nach Imputation mit KNNImputer
Das obige Beispiel zeigt, dass die Imputation fehlender Werte mit maschinellem Lernen realistischere und genauere Werte liefern kann als die Imputation mit Statistiken, da dabei die Beziehung zwischen den Merkmalen und den fehlenden Werten berücksichtigt wird. Allerdings kann dieser Ansatz auch rechenintensiver und komplexer sein als die Imputation mit Statistiken, da er die Auswahl und Abstimmung eines geeigneten Algorithmus für maschinelles Lernen und seiner Parameter erfordert. Daher sollten wir diesen Ansatz verwenden, wenn wir über ausreichende Daten verfügen und die fehlenden Werte für Ihre Analyse nicht zufällig oder trivial sind.
Es ist wichtig zu beachten, dass viele Algorithmen für maschinelles Lernen fehlende Werte intern verarbeiten können. XGBoost, LightGBM und CatBoost sind brillante Beispiele für maschinelle Lernalgorithmen, die fehlende Werte unterstützen. Diese Algorithmen übernehmen fehlende Werte intern, indem sie fehlende Werte ignorieren, fehlende Werte aufteilen usw. Dieser Ansatz funktioniert jedoch nicht bei allen Datentypen gut. Dies kann zu Verzerrungen und Rauschen in unserem Modell führen.
Es kommt oft vor, dass wir es mit Daten mit doppelten Zeilen zu tun haben – beispielsweise mit Zeilen mit denselben Daten in allen Spalten. Dieser Prozess umfasst die Identifizierung und Entfernung doppelter Zeilen im Datensatz.
Hier können uns die Funktionen „duplicated()“ und „drop_duplicates()“ helfen. Die Funktion „duplicated()“ wird verwendet, um die doppelten Zeilen in den Daten zu finden, während die Funktion „drop_duplicates()“ diese Zeilen entfernt. Diese Technik kann auch zur Entfernung wichtiger Daten führen. Daher ist es wichtig, die Daten zu analysieren, bevor Sie diese Methode anwenden:
Die Ausgabe des obigen Codes ist unten dargestellt.
Originaldatensatz
Doppelte Zeilen
Deduplizierter Datensatz
Die doppelten Zeilen werden basierend auf den Namens-, Alters- und Einkommensspalten des deduplizierten Datensatzes aus dem Originaldatensatz entfernt.
Bei der Analyse realer Daten stoßen wir häufig auf Daten mit Ausreißern.Ausreißer sind sehr kleine oder große Werte, die deutlich von anderen Beobachtungen in einem Datensatz abweichen. Solche Ausreißer werden zunächst identifiziert, dann entfernt und der Datensatz wird in einem bestimmten Maßstab transformiert. Lassen Sie uns mit dem folgenden Detail verstehen.
Wie wir bereits gesehen haben, besteht der erste Schritt darin, die Ausreißer in unserem Datensatz zu identifizieren. Hierzu können verschiedene statistische Verfahren eingesetzt werden, etwa der Interquartilbereich (IQR), Z-Score oder Tukey-Methoden.
Wir werden uns hauptsächlich mit dem Z-Score befassen. Dabei handelt es sich um eine gängige Technik zur Identifizierung von Ausreißern im Datensatz.
Der Z-Score misst, wie viele Standardabweichungen eine Beobachtung vom Mittelwert des Datensatzes aufweist. Die Formel zur Berechnung des Z-Scores einer Beobachtung lautet wie folgt:
Der Schwellenwert für die Z-Score-Methode wird normalerweise auf der Grundlage des Signifikanzniveaus oder des gewünschten Vertrauensniveaus bei der Identifizierung von Ausreißern ausgewählt. Ein häufig verwendeter Schwellenwert ist ein Z-Score von 3, was bedeutet, dass jede Beobachtung mit einem Z-Score, der signifikanter als 3 oder kleiner als -3 ist, als Ausreißer gilt.
Sobald die Ausreißer identifiziert sind, können sie mithilfe verschiedener Techniken wie Trimmen oder Entfernen der Beobachtungen mit Extremwerten aus dem Datensatz entfernt werden. Es ist jedoch wichtig, den Datensatz sorgfältig zu analysieren und die geeignete Technik für den Umgang mit Ausreißern zu bestimmen.
Alternativ können die Daten mithilfe mathematischer Funktionen wie Logarithmus-, Quadratwurzel- oder Umkehrfunktionen transformiert werden, um den Einfluss von Ausreißern auf die Analyse zu reduzieren:
In diesem Beispiel haben wir einen benutzerdefinierten Datensatz mit Ausreißern erstelltAlter Spalte. Anschließend wenden wir die Technik zur Ausreißerbehandlung an, um Ausreißer zu identifizieren und aus dem Datensatz zu entfernen. Wir berechnen zunächst den Mittelwert und die Standardabweichung der Daten und identifizieren dann die Ausreißer mithilfe der Z-Score-Methode. Der Z-Score wird für jede Beobachtung im Datensatz berechnet und jede Beobachtung, deren Z-Score über dem Schwellenwert (in diesem Fall 3) liegt, wird als Ausreißer betrachtet. Abschließend entfernen wir die Ausreißer aus dem Datensatz.
Die Ausgabe des obigen Codes in Tabellenform ist unten dargestellt.
Originaldatensatz
Ausreißer
Datensatz ohne Ausreißer
Der Ausreißer (200) in der Altersspalte im Datensatz ohne Ausreißer wird aus dem Originaldatensatz entfernt.
Datentransformation ist eine weitere Methode in der Datenverarbeitung, um die Datenqualität durch Modifizierung zu verbessern. Bei diesem Transformationsprozess werden die Rohdaten in ein für die Analyse geeigneteres Format konvertiert, indem der Maßstab, die Verteilung oder das Format der Daten angepasst werden.
Schauen wir uns ein Beispiel an:
In diesem Beispiel verfügt unser benutzerdefinierter Datensatz über eine Variable namens „Ausgaben“. Ein erheblicher Ausreißer in dieser Variablen führt zu einer Schiefe in den Daten. Wir kontrollieren diese Schiefe in der Ausgabenvariable. Die Quadratwurzeltransformation hat die verzerrte Ausgabenvariable in eine normalere Verteilung umgewandelt. Transformierte Werte werden in einer neuen Variablen namens sqrt_spending gespeichert. Die Normalverteilung von sqrt_spending liegt zwischen 1,00000 und 6,00000, wodurch es besser für die Datenanalyse geeignet ist.
Die Ausgabe des obigen Codes in Tabellenform ist unten dargestellt.
Originaldatensatz
Transformierter Datensatz
DerDatenintegration Die Technik kombiniert Daten aus verschiedenen Quellen in einer einzigen, einheitlichen Ansicht. Dies trägt dazu bei, die Vollständigkeit und Vielfalt der Daten zu erhöhen und etwaige Inkonsistenzen oder Konflikte zwischen den verschiedenen Quellen zu beseitigen. Die Datenintegration ist hilfreich für das Data Mining und ermöglicht die Datenanalyse über mehrere Systeme oder Plattformen hinweg.
Nehmen wir an, wir haben zwei Datensätze. Einer enthält Kunden-IDs und ihre Einkäufe, während der andere Datensatz Informationen zu Kunden-IDs und demografischen Merkmalen enthält, wie unten angegeben. Wir beabsichtigen, diese beiden Datensätze für eine umfassendere Analyse des Kundenverhaltens zu kombinieren.
Kundenkaufdatensatz
Datensatz zur Kundendemografie
Um diese Datensätze zu integrieren, müssen wir die gemeinsame Variable, die Kunden-ID, zuordnen und die Daten kombinieren. Wir können die Pandas-Bibliothek in Python verwenden, um dies zu erreichen:
Die Ausgabe des obigen Codes in Tabellenform ist unten dargestellt.
Wir haben die Funktion merge() aus der Pandas-Bibliothek verwendet. Es führt die beiden Datensätze basierend auf der gemeinsamen Kunden-ID-Variable zusammen. Das Ergebnis ist ein einheitlicher Datensatz mit Kaufinformationen und Kundendemografien. Dieser integrierte Datensatz kann nun für umfassendere Analysen verwendet werden, beispielsweise für die Analyse von Kaufmustern nach Alter oder Geschlecht.
Datenreduzierung ist eine der am häufigsten verwendeten Techniken in der Datenverarbeitung. Es wird verwendet, wenn wir viele Daten mit vielen irrelevanten Informationen haben. Diese Methode reduziert die Datenmenge, ohne dass die wichtigsten Informationen verloren gehen.
Es gibt verschiedene Methoden der Datenreduktion, wie zum Beispiel die unten aufgeführten.
Die Datenvorverarbeitung ist unerlässlich, da die Qualität der Daten direkten Einfluss auf die Genauigkeit und Zuverlässigkeit der Analyse oder des Modells hat. Durch die ordnungsgemäße Vorverarbeitung der Daten können wir die Leistung der Modelle für maschinelles Lernen verbessern und genauere Erkenntnisse aus den Daten gewinnen.
Die Vorbereitung von Daten für maschinelles Lernen ist wie die Vorbereitung auf eine große Party. Wie das Aufräumen und Aufräumen eines Zimmers umfasst die Datenvorverarbeitung das Beheben von Inkonsistenzen, das Ergänzen fehlender Informationen und das Sicherstellen, dass alle Datenpunkte kompatibel sind. Mithilfe von Techniken wie Datenbereinigung, Datentransformation, Datenintegration und Datenreduktion erstellen wir einen gut vorbereiteten Datensatz, der es Computern ermöglicht, Muster zu erkennen und effektiv zu lernen.
Es wird empfohlen, dass wir die Daten eingehend untersuchen, Datenmuster verstehen und die Gründe für das Fehlen von Daten ermitteln, bevor wir uns für einen Ansatz entscheiden. Validierung und Testsatz sind ebenfalls wichtige Methoden zur Bewertung der Leistung verschiedener Techniken.
Rehman Ahmad Chaudhary ist Blogger, Autor, Computer-Vision-Enthusiast, Programmierer und Gründer von StudyEnablers.
In diesem Artikel untersuchen wir, was Datenvorverarbeitung ist, warum sie wichtig ist und wie wir unsere Daten bereinigen, transformieren, integrieren und reduzieren können.DatenvorverarbeitungDatenreinigungOriginaldatensatzBereinigter DatensatzOriginaldatensatzImputierter DatensatzUrsprünglicher DatensatzDatensatz nach Imputation mit KNNImputerOriginaldatensatzDoppelte ZeilenDeduplizierter DatensatzAusreißerAlterOriginaldatensatzAusreißerDatensatz ohne AusreißerDatentransformationProtokolltransformationQuadratwurzeltransformationOriginaldatensatzTransformierter DatensatzDatenintegrationKundenkaufdatensatzDatensatz zur KundendemografieDatenreduzierungDaten-Cube-AggregationDimensionsreduktionDatenkompressionReduzierung der Anzahl