Я отношусь к последней строке в примере.Я хотел бы построить NaiveBayes
модель за train$TN
значение.Это означает, что для всей строки, которую они train$TN = 4
построят NB_TRAIN_model[[1]]
, для всех строк train$TN = 9
я создам NB_TRAIN_model[[2]]
и т. Д. Однако модель должна быть основана на train$Solar.R, train$Wind, train$Temp, train$Month, train$Day
а не на train$TN
.Итак, я надеюсь, что я исключил это значение ОК, используя: Ozone ~ . -TN, data = x
(см. Последнюю строку):
library(party)
library(e1071)
airq <- subset(airquality, !is.na(Ozone))
## split data to train and test
set.seed(123)
train_ind <- sample(seq_len(nrow(airq)), size = smp_size)
train <- airq[train_ind, ]
test <- airq[-train_ind, ]
ct <- ctree(Ozone ~ ., data = train, controls = ctree_control(maxsurrogate = 3))
train$TN<-factor (ct@where)
## Builds a NB model per each terminal node
NB_TRAIN_model<-lapply(split(train, train$TN), function(x) naiveBayes(Ozone ~ . -TN, data = x))
Теперь я хочу предсказать значения в тесте.Я пытался использовать model[[1]]
в первом ряду:
> predict (NB_TRAIN_model[[1]],test[1,2:6],type = "class")
Я получаю:
factor(0)
Levels: