Я использую пакет RWeka в R, чтобы подогнать деревья M5 к набору данных, используя «M5P». Затем я хочу преобразовать сгенерированное дерево в дерево «вечеринки», чтобы я мог получить доступ к значениям переменных. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить функцию as.party
работать без получения следующей ошибки:
"Error: all(sapply(split, head, 1) %in% c("<=", ">")) is not TRUE"
Эта ошибка возникает только тогда, когда я применяю функцию в цикле for, но цикл for необходим, поскольку я запускаю 5-кратную перекрестную проверку.
Ниже приведен код, который я запускал:
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)
}