2017-05-18 6 views
0

Ich versuche, einen Klassifizierungs Entscheidungsbaum mit rpart und partykit zu bauen, und ich frage mich, ist es eine Funktion innerhalb dieser Pakete (oder alle Pakete, für diese Angelegenheit) zu ermöglichen, Ich möchte ein Dataset erstellen, das Daten aus einem bestimmten Teilbaum oder Zweig enthält.Entscheidungsbaum in R- Extrahieren von Daten aus einem bestimmten Zweig

Ich weiß, dass ich manuell die Teilmenge von Originaldatensatz mit DT Regeln erstellen können, aber ich versuche, bestimmten Prozess zu automatisieren und diese Funktion zu finden, werde mir immens helfen.

Beispiel:

library (rpart) 
library(partykit) 

data("Titanic", package = "datasets") 
ttnc <- as.data.frame(Titanic) 
ttnc <- ttnc[rep(1:nrow(ttnc), ttnc$Freq), 1:4] 
names(ttnc)[2] <- "Gender" 

rp <- rpart(Survived ~ Gender + Age + Class, data = ttnc) 
prp <- as.party(rp) 

prp[5] 

können sagen, dass ich möchte Extrahieren von Daten aus dem Unterbaum # 5, gibt es eine Funktion innerhalb dieser Pakete, die mir erlauben, das zu tun?

Vielen Dank!

Antwort

2

Neben der von @JakobGepp gepostet Lösung können Sie die data_party() Funktion von partykit bereitgestellt verwenden:

data_party(prp, id = 5) 

Im Wesentlichen das tut die gleiche Sache intern, dass Jakob ausdrücklich von Hand tat.

+0

Vielen Dank! Das ist sehr hilfreich! –

+0

Sie sind herzlich willkommen. Wenn meine und Jakobs Antwort für Sie nützlich wäre, ziehen Sie bitte in Betracht, sie zu verbessern :-) –

2

Ich weiß nicht, ob Sie das mit den DT-Regeln meinten, aber Sie könnten die predict()-Funktion des Partykit-Pakets verwenden, um Knoten/Zweige vorherzusagen und dann die Daten entsprechend Ihrem Teilbaum zu teilen.

ttnc$Node <- predict(prp, newdata = ttnc, type = "node") 

subtree <- subset(ttnc, Node == 5) 
+0

Vielen Dank! Das ist was ich suche! –

Verwandte Themen