Heim >Backend-Entwicklung >Python-Tutorial >Datenvorverarbeitungstechniken für ML-Modelle
Datenvorverarbeitung ist die Durchführung bestimmter Aktionen oder Schritte an einem Datensatz, bevor dieser für maschinelles Lernen oder andere Aufgaben verwendet wird. Bei der Datenvorverarbeitung geht es darum, Daten zu bereinigen, zu formatieren oder umzuwandeln, um ihre Qualität zu verbessern oder sicherzustellen, dass sie für ihren Hauptzweck (in diesem Fall das Training eines Modells) geeignet sind. Ein sauberer und qualitativ hochwertiger Datensatz verbessert die Leistung des maschinellen Lernmodells.
Häufige Probleme mit minderwertigen Daten sind:
In diesem Artikel zeige ich Ihnen einige der gängigen Datenvorverarbeitungstechniken, um Datensätze für die Verwendung in Trainingsmodellen vorzubereiten. Sie benötigen Grundkenntnisse in Python und im Umgang mit Python-Bibliotheken und -Frameworks.
Anforderungen:
Folgendes ist erforderlich, um diesen Leitfaden optimal nutzen zu können
Sie können sich auch die Ausgabe jedes Codes in diesen Jupyter-Notizbüchern auf Github ansehen.
Wenn Sie Python noch nicht installiert haben, können Sie es von der Python-Website herunterladen und den Anweisungen zur Installation folgen.
Sobald Python installiert wurde, installieren Sie die erforderlichen Bibliotheken
pip install numpy scipy pandas scikit-learn
Installieren Sie Jupyter Notebook.
pip install notebook
Starten Sie Jupyter Notebook nach der Installation mit dem folgenden Befehl
jupyter notebook
Dadurch wird Jupyter Notebook in Ihrem Standard-Webbrowser gestartet. Ist dies nicht der Fall, suchen Sie im Terminal nach einem Link, den Sie manuell in Ihren Browser einfügen können.
Öffnen Sie ein neues Notizbuch aus dem Menü „Datei“, importieren Sie die erforderlichen Bibliotheken und führen Sie die Zelle aus
import numpy as np import pandas as pd import scipy import sklearn
Gehen Sie zur Website des Melbourne Housing Dataset und laden Sie den Datensatz herunter. Laden Sie den Datensatz mit dem folgenden Code in das Notebook. Sie können den Dateipfad auf Ihrem Computer kopieren, um ihn in die Funktion read_csv einzufügen. Sie können die CSV-Datei auch im selben Ordner wie das Notizbuch ablegen und die Datei wie unten gezeigt importieren.
data = pd.read_csv(r"melb_data.csv") # View the first 5 columns of the dataset data.head()
Teilen Sie die Daten in Trainings- und Validierungssätze auf
from sklearn.model_selection import train_test_split # Set the target y = data['Price'] # Firstly drop categorical data types melb_features = data.drop(['Price'], axis=1) #drop the target column X = melb_features.select_dtypes(exclude=['object']) # Divide data into training and validation sets X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
Sie müssen Daten in Trainings- und Validierungssätze aufteilen, um Datenlecks zu verhindern. Daher ist die Vorverarbeitungstechnik, die Sie für den Trainings-Feature-Satz anwenden, dieselbe wie die, die Sie für den Validierungs-Feature-Satz anwenden.
Jetzt ist der Datensatz bereit zur Verarbeitung!
Umgang mit fehlenden Werten
Fehlende Werte in einem Datensatz sind wie Löcher in einem Stoff, der zum Nähen eines Kleides verwendet werden soll. Es verdirbt das Kleid, bevor es überhaupt hergestellt wird.
Es gibt drei Möglichkeiten, mit fehlenden Werten in einem Datensatz umzugehen.
pip install numpy scipy pandas scikit-learn
Das Problem bei dieser Methode besteht darin, dass Sie möglicherweise wertvolle Informationen verlieren, mit denen Sie Ihr Modell trainieren sollen. Sofern nicht die meisten Werte in den gelöschten Zeilen oder Spalten fehlen, besteht keine Notwendigkeit, Zeilen oder Spalten mit leeren Zellen zu löschen.
pip install notebook
jupyter notebook
Duplikatentfernung
Doppelte Zellen bedeuten wiederholte Daten und wirken sich auf die Modellgenauigkeit aus. Der einzige Weg, mit ihnen umzugehen, besteht darin, sie fallenzulassen.
import numpy as np import pandas as pd import scipy import sklearn
Umgang mit Ausreißern
Ausreißer sind Werte, die sich deutlich von den anderen Werten im Datensatz unterscheiden. Sie können im Vergleich zu anderen Datenwerten ungewöhnlich hoch oder niedrig sein. Sie können durch Eingabefehler entstehen oder tatsächlich Ausreißer sein.
Es ist wichtig, mit Ausreißern umzugehen, da sie sonst zu ungenauen Datenanalysen oder Modellen führen. Eine Methode zur Erkennung von Ausreißern ist die Berechnung von Z-Scores.
Die Funktionsweise besteht darin, dass der Z-Score verwendet wird, um zu prüfen, ob ein Datenpunkt 3 Punkte oder mehr vom Mittelwert entfernt ist. Diese Berechnung wird für jeden Datenpunkt durchgeführt. Wenn der Z-Score für einen Datenpunkt 3 oder einen höheren Wert beträgt, ist der Datenpunkt ein Ausreißer.
data = pd.read_csv(r"melb_data.csv") # View the first 5 columns of the dataset data.head()
Normalisierung
Sie normalisieren Merkmale, sodass sie als Normalverteilung beschrieben werden können.
Eine Normalverteilung (auch Gaußsche Verteilung genannt) ist eine statistische Verteilung, bei der es ungefähr gleiche Abstände oder Verteilungen über und unter dem Mittelwert gibt. Der Graph der Datenpunkte normalverteilter Daten bildet eine Glockenkurve.
Der Sinn der Normalisierung von Daten besteht darin, dass der Algorithmus für maschinelles Lernen, den Sie verwenden möchten, davon ausgeht, dass die Daten normalverteilt sind. Ein Beispiel ist das Gaußsche Naive-Bayes-Modell.
from sklearn.model_selection import train_test_split # Set the target y = data['Price'] # Firstly drop categorical data types melb_features = data.drop(['Price'], axis=1) #drop the target column X = melb_features.select_dtypes(exclude=['object']) # Divide data into training and validation sets X_train, X_valid, y_train, y_valid = train_test_split(X, y, train_size=0.8, test_size=0.2, random_state=0)
Standardisierung
Durch die Standardisierung werden die Merkmale eines Datensatzes so transformiert, dass sie einen Mittelwert von 0 und eine Standardabweichung von 1 haben. Dieser Prozess skaliert jedes Merkmal so, dass es in den Daten ähnliche Bereiche aufweist. Dadurch wird sichergestellt, dass jede Funktion gleichermaßen zum Modelltraining beiträgt.
Sie verwenden Standardisierung, wenn:
Sie verwenden StandardScaler() aus der sklearn-Bibliothek, um Funktionen zu standardisieren.
pip install numpy scipy pandas scikit-learn
Die Datenvorverarbeitung ist nicht nur eine Vorstufe. Es ist Teil des Prozesses zur Erstellung genauer Modelle für maschinelles Lernen. Es kann auch an die Anforderungen des Datensatzes angepasst werden, mit dem Sie arbeiten.
Wie bei den meisten Aktivitäten macht Übung den Meister. Während Sie mit der Vorverarbeitung von Daten fortfahren, verbessern sich sowohl Ihre Fähigkeiten als auch Ihre Modelle.
Ich würde gerne Ihre Gedanken dazu lesen?
Das obige ist der detaillierte Inhalt vonDatenvorverarbeitungstechniken für ML-Modelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!