Datenvorverarbeitung in R: Ultimate Tutorial [2022]
Veröffentlicht: 2021-03-01In unserem folgenden Tutorial zur Datenvorverarbeitung in R lernen Sie die Grundlagen der Datenvorverarbeitung kennen. Für dieses Tutorial müssen Sie mit den Grundlagen von R und der Programmierung vertraut sein:
Inhaltsverzeichnis
1. Schritt: Probleme finden und beheben
Wir beginnen unsere Datenvorverarbeitung im R-Tutorial, indem wir zuerst den Datensatz importieren. Schließlich können Sie die Daten nicht vorverarbeiten, wenn Sie die Daten überhaupt nicht haben.
In unserem Fall werden die Daten in der Datei data.csv im Arbeitsverzeichnis gespeichert. Sie können den Befehl setwd ("desired location") verwenden und das Arbeitsverzeichnis festlegen.
So starten Sie den Vorgang:
Datensatz <- read.csv(“Daten.csv”)
Hier ist unser Datensatz:
## | Land | Zeitalter | Gehalt | Gekauft | |
## | 1 | Frankreich | 44 | 72000 | Nein |
## | 2 | Spanien | 27 | 48000 | Jawohl |
## | 3 | Deutschland | 30 | 54000 | Nein |
## | 4 | Spanien | 38 | 61000 | Nein |
## | 5 | Deutschland | 40 | N / A | Jawohl |
## | 6 | Frankreich | 35 | 58000 | Jawohl |
## | 7 | Spanien | N / A | 52000 | Nein |
## | 8 | Frankreich | 48 | 79000 | Jawohl |
## | 9 | Deutschland | 50 | 83000 | Nein |
## | 10 | Frankreich | 37 | 67000 | Jawohl |
Wie Sie sehen können, fehlen Werte in den Spalten „Gehalt“ und „Alter“ unseres Datensatzes. Wir haben das in unserem Datensatz vorhandene Problem identifiziert, sodass wir jetzt damit beginnen können, dasselbe zu beheben.
In unserem Datensatz scheinen keine anderen Probleme vorhanden zu sein, sodass wir nur die fehlenden Werte behandeln müssen. Wir können dieses Problem beheben, indem wir die NA-Werte durch die Durchschnittswerte der jeweiligen Spalten ersetzen. Hier ist wie:
Datensatz$Alter <- ifelse(is.na(Datensatz$Alter),
ave(dataset$Alter, SPASS = funktion(x)
mean(x, na.rm = TRUE)),
Datensatz$Alter)
Datensatz$Gehalt <- ifelse(is.na(Datensatz$Gehalt),
ave(dataset$Gehalt, SPASS = Funktion(x)
mean(x, na.rm = TRUE)),
Datensatz$Gehalt)
Beachten Sie, wie wir hier die Funktion ave() verwendet haben. Es nimmt den Durchschnitt der spezifischen Spalte, die Sie eingegeben haben, wobei FUN eine Funktion von x ist, die den Mittelwert ohne NA-Werte berechnet (na.rm=TRUE).
anders,
nehmen Sie alles, was im Datensatz $ Age vorhanden ist
Wir verwenden jetzt die Funktion mean():
#definiert x = 1 2 3
x <- 1:3
#Einführung fehlender Werte
x[1] <- Nicht zutreffend
# Mittelwert = NA
Mittelwert (x)
## [1] Nicht zutreffend
# mean = Mittelwert ohne den NA-Wert
mean(x, na.rm = T)
## [1] 2.5
Nachdem das Problem identifiziert und behoben wurde, sieht unser Datensatz folgendermaßen aus:
## | Land | Zeitalter | Gehalt | Gekauft | |
## | 1 | Frankreich | 44 | 72000.00 | Nein |
## | 2 | Spanien | 27 | 48000,00 | Jawohl |
## | 3 | Deutschland | 30 | 54000,00 | Nein |
## | 4 | Spanien | 38 | 61000,00 | Nein |
## | 5 | Deutschland | 40 | 63777.78 | Jawohl |
## | 6 | Frankreich | 35 | 58000,00 | Jawohl |
## | 7 | Spanien | 38 | 52000,00 | Nein |
## | 8 | Frankreich | 48 | 79000,00 | Jawohl |
## | 9 | Deutschland | 50 | 83000.00 | Nein |
## | 10 | Frankreich | 37 | 67000,00 | Jawohl |
Lesen Sie auch: Karrieremöglichkeiten in der Programmiersprache R

2. Schritt: Kategoriale Daten
Kategoriale Daten sind nicht numerische Daten, die zu bestimmten Kategorien gehören. Die Spalte „Land“ in unserem Datensatz enthält kategoriale Daten. Die Funktion read.csv() in R würde alle String-Variablen zu kategorialen Variablen machen. Allerdings können wir es nicht in jedem Fall verwenden.
So können Sie bestimmte Variablen als Faktorvariablen erstellen:
Datensatz$Land = Faktor(Datensatz$Land,
Ebenen = c('Frankreich', 'Spanien', 'Deutschland'),
Etiketten = c(1, 2, 3))
Datensatz$Gekauft = Faktor(Datensatz$Gekauft,
Ebenen = c('Nein', 'Ja'),
Etiketten = c(0, 1))
3. Schritt: Daten splitten
Jetzt müssen wir unseren Datensatz in zwei separate Datensätze aufteilen. Eine zum Trainieren unseres maschinellen Lernmodells, die andere zum Testen desselben.
Dazu installieren wir zunächst das Paket caTools (falls nicht vorhanden) und fügen es unserer Bibliothek hinzu. Anschließend verwenden wir die Funktion set.seed(), um sicherzustellen, dass die Aufteilung zufällig erfolgt. Verwenden Sie den folgenden Code:
Bibliothek (caTools)
set.seed(123)
split = sample.split(dataset$Purchased,SplitRatio = 0.8)
training_set = subset(dataset,split == TRUE)
test_set = subset(dataset, split == FALSE)
Sie müssen bemerkt haben, dass wir das Teilungsverhältnis von 80:20 beibehalten haben. Dies liegt daran, dass dies das gebräuchlichste Aufteilungsverhältnis für Trainingssätze und Testsätze ist. Unsere Methode sample.split() hat die Spalte genommen und ein numerisches Array mit randomisierten wahren und falschen Werten gemäß dem Teilungsverhältnis erstellt.
4. Schritt: Feature Scaling oder Overfitting
Feature-Skalierung ist erforderlich, wenn verschiedene Features in Ihrem Dataset unterschiedliche Reichweiten haben. In unserem Fall haben die Spalten „Alter“ und „Gehalt“ unterschiedliche Bereiche, was zu Problemen beim Trainieren unseres ML-Modells führen kann.
Wenn Sie ein Feature mit einer deutlich höheren Reichweite als das andere Feature haben, nimmt die euklidische Distanz erheblich zu, was dazu führt, dass das Modell falsche Ergebnisse liefert.
Beachten Sie, dass die meisten Bibliotheken in R dieses Problem automatisch beheben, aber es ist wichtig zu wissen, wie Sie dies beheben können. Mach Folgendes:
training_set[,2:3] = scale(training_set[,2:3])
test_set[,2:3] = scale(test_set[,2:3])
Dadurch würde das Problem behoben und die Funktionen Ihres Trainingssatzes hätten dieselben Bereiche, wodurch die Wahrscheinlichkeit von Fehlern während der Implementierung von maschinellem Lernen minimiert würde.
Holen Sie sich eine Data-Science-Zertifizierung von den besten Universitäten der Welt. Lernen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Fazit
Wir hoffen, dass Sie unser Tutorial zur Datenvorverarbeitung in R hilfreich fanden. Es wäre am besten, das Tutorial zu verstehen, bevor Sie versuchen, es selbst auszuprobieren. Die Konzepte zu verstehen ist viel wichtiger als sie zu benutzen.
Was halten Sie von unserem Tutorial zur Datenvorverarbeitung in R? Teilen Sie sie in den Kommentaren unten.
Wenn Sie neugierig sind, etwas über R, Data Science, zu erfahren, schauen Sie sich unser Executive PG in Data Science an, das für Berufstätige entwickelt wurde und mehr als 10 Fallstudien und Projekte, praktische Workshops, Mentoring mit Branchenexperten, 1-on- 1 mit Branchenmentoren, mehr als 400 Stunden Lern- und Jobunterstützung bei Top-Unternehmen.
In Python bezieht sich Polymorphismus auf einen generischen Funktionsnamen, der für eine Vielzahl von Zwecken verwendet werden kann. Diese Idee wird häufig im objektorientierten Python-Programmierkonzept verwendet. Ententypisierung ist ein polymorpher Begriff. Der Ausdruck Duck Typing stammt von einem Sprichwort, das besagt, dass alles, was wie eine Ente geht, quakt und schwimmt, als Ente bezeichnet wird, unabhängig davon, was es ist. Einfach ausgedrückt bedeutet dies, dass etwas, das sein Verhalten mit etwas anderem übereinstimmt, als Mitglied dieser Kategorie angesehen wird. Wenn eine Methode mit demselben Namen sowie denselben Argumenten sowohl in einer abgeleiteten Klasse als auch in einer Basis- oder Superklasse verwendet wird, wird gesagt, dass die Methode der abgeleiteten Klasse die in der Basisklasse bereitgestellte Methode überschreibt. Wenn die überschriebene Methode aufgerufen wird, wird immer die Methode der abgeleiteten Klasse aufgerufen. Die Methode, die in der Basisklasse verwendet wurde, ist jetzt ausgeblendet.Wie viele Arten von Polymorphismus gibt es in Python?
Polymorphismus wird in Python für verschiedene Zwecke implementiert, z. B. Duck Typing, Operatorüberladung, Methodenüberladung und Methodenüberschreibung, wie es in anderen Programmiersprachen wie Java und C++ der Fall ist. Überladen und Überschreiben sind die beiden wichtigsten Methoden zum Erreichen von Polymorphismus.
Eine Klasse mit vielen Methoden mit demselben Namen, aber unterschiedlichen Argumenten wird als Methodenüberladung bezeichnet. Obwohl das Überladen von Methoden in Python nicht standardmäßig unterstützt wird, gibt es zahlreiche Techniken, dies zu tun. Was ist Duck-Typing?
Was ist Überladen und Überschreiben?
Python hingegen bietet keine Methodenüberladung basierend auf Typ, Menge oder Reihenfolge der Methodenparameter. Das Überladen von Methoden ist ein Python-Ansatz zum Definieren einer Methode, sodass sie auf mehrere Arten aufgerufen werden kann. Im Gegensatz zu anderen Programmiersprachen ist diese einzigartig.