Ich verwende das RWeka-Paket in R, um M5-Bäume an einen Datensatz mit "M5P" anzupassen. Ich möchte dann den generierten Baum in einen "Party" -Baum umwandeln, damit ich auf Variablenimportanzen zugreifen kann. Das Problem, das ich habe ist, dass ich nicht as.party
die Funktion zu bekommen scheinen kann, ohne immer den folgenden Fehler zu arbeiten:Wie konvertiere ich einen "RWeka" Entscheidungsbaum in einen "Party" Baum in R?
"Error: all(sapply(split, head, 1) %in% c("<=", ">")) is not TRUE"
Dieser Fehler nur auftritt, wenn ich die Funktion innerhalb einer for-Schleife anwenden, aber die for-Schleife ist notwendig, da ich eine 5-fache Kreuzvalidierung führe.
Unten ist der Code, den ich ausgeführt wurden:
n <- nrow(data)
k <- 5
indCV <- sample(rep(1:k,each=ceiling(n/k)), n)
for(i in 1:k){
#Training data is for all the observations where indCV is not equal to i
training_data <- data.frame(x[-which(indCV==i),])
training_response <- y[-which(indCV==i)]
#Test the data on the fifth of the data where the observation indices are equal to i
test_data <- x[which(indCV==i),]
test_response <- y[which(indCV==i)]
#Fit a pruned model to the training data
fit <- M5P(training_response~., data=training_data, control=Weka_control(N=TRUE))
#Convert to party
p <- as.party(fit)
}
Mögliches Duplikat von [Wie plotten Sie einen CostSensitiveClassifier-Baum in R?] (Https://stackoverflow.com/questions/24420191/how-do-you-plot-a-costsensitiveclassifier-tree-in-r) –