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.