Datenvorverarbeitung in R: Ultimate Tutorial [2022]

Veröffentlicht: 2021-03-01

In 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.

Wie viele Arten von Polymorphismus gibt es in Python?

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.
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?

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.

Was ist Überladen und Überschreiben?

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.
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.