R - Entscheidungsbaum
Der Entscheidungsbaum ist ein Diagramm zur Darstellung von Auswahlmöglichkeiten und deren Ergebnissen in Form eines Baums. Die Knoten im Diagramm stellen ein Ereignis oder eine Auswahl dar, und die Kanten des Diagramms stellen die Entscheidungsregeln oder -bedingungen dar. Es wird hauptsächlich in Anwendungen für maschinelles Lernen und Data Mining mit R verwendet.
Beispiele für die Verwendung von Entscheidungsproblemen sind: Vorhersagen einer E-Mail als Spam oder nicht als Spam, Vorhersagen eines Tumors als krebsartig oder Vorhersagen eines Kredits als gutes oder schlechtes Kreditrisiko basierend auf den jeweiligen Faktoren. Im Allgemeinen wird ein Modell mit beobachteten Daten erstellt, die auch als Trainingsdaten bezeichnet werden. Anschließend wird ein Satz von Validierungsdaten verwendet, um das Modell zu verifizieren und zu verbessern. R verfügt über Pakete, mit denen Entscheidungsbäume erstellt und visualisiert werden. Für einen neuen Satz von Prädiktorvariablen verwenden wir dieses Modell, um eine Entscheidung über die Kategorie (Ja / Nein, Spam / Nicht-Spam) der Daten zu treffen.
Das R-Paket "party" wird verwendet, um Entscheidungsbäume zu erstellen.
Installieren Sie das R-Paket
Verwenden Sie den folgenden Befehl in der R-Konsole, um das Paket zu installieren. Sie müssen auch die abhängigen Pakete installieren, falls vorhanden.
install.packages("party")
Das Paket "Party" hat die Funktion ctree() Hiermit wird ein Entscheidungsbaum erstellt und analysiert.
Syntax
Die grundlegende Syntax zum Erstellen eines Entscheidungsbaums in R lautet -
ctree(formula, data)
Es folgt die Beschreibung der verwendeten Parameter -
formula ist eine Formel, die die Prädiktor- und Antwortvariablen beschreibt.
data ist der Name des verwendeten Datensatzes.
Eingabedaten
Wir werden den R-eingebauten Datensatz mit dem Namen verwenden readingSkillsum einen Entscheidungsbaum zu erstellen. Es beschreibt die Punktzahl der Lesefähigkeiten einer Person, wenn wir die Variablen "Alter", "Schuhgröße", "Punktzahl" kennen und wissen, ob die Person Muttersprachler ist oder nicht.
Hier sind die Beispieldaten.
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Print some records from data set readingSkills.
print(head(readingSkills))
Wenn wir den obigen Code ausführen, wird das folgende Ergebnis und Diagramm erzeugt:
nativeSpeaker age shoeSize score
1 yes 5 24.83189 32.29385
2 yes 6 25.95238 36.63105
3 no 11 30.42170 49.60593
4 yes 7 28.66450 40.28456
5 yes 11 31.88207 55.46085
6 yes 10 30.07843 52.83124
Loading required package: methods
Loading required package: grid
...............................
...............................
Beispiel
Wir werden die verwenden ctree() Funktion zum Erstellen des Entscheidungsbaums und Anzeigen des Diagramms.
# Load the party package. It will automatically load other
# dependent packages.
library(party)
# Create the input data frame.
input.dat <- readingSkills[c(1:105),]
# Give the chart file a name.
png(file = "decision_tree.png")
# Create the tree.
output.tree <- ctree(
nativeSpeaker ~ age + shoeSize + score,
data = input.dat)
# Plot the tree.
plot(output.tree)
# Save the file.
dev.off()
Wenn wir den obigen Code ausführen, wird das folgende Ergebnis erzeugt:
null device
1
Loading required package: methods
Loading required package: grid
Loading required package: mvtnorm
Loading required package: modeltools
Loading required package: stats4
Loading required package: strucchange
Loading required package: zoo
Attaching package: ‘zoo’
The following objects are masked from ‘package:base’:
as.Date, as.Date.numeric
Loading required package: sandwich
Fazit
Aus dem oben gezeigten Entscheidungsbaum können wir schließen, dass jeder, dessen ReadingSkills-Punktzahl weniger als 38,3 beträgt und dessen Alter mehr als 6 Jahre beträgt, kein Muttersprachler ist.