Я пытаюсь понять, как ctree подходит/предсказывает наблюдения с полным отсутствием во всех предикторах. Например,partykit :: ctree randomness в большинстве = TRUE
library(partykit)
airq <- subset(airquality, !is.na(Ozone))
airq <- rbind(airq,data.frame(Ozone=rnorm(50),Solar.R=NA,Wind=NA,Temp=NA,Month=NA,Day=NA))
airct <- ctree(Ozone ~ ., data = airq,control = ctree_control(majority = TRUE))
table(tail(predict(airct,type="node"),50))
Последние 50 строк airq
отсутствуют все предсказатель, и от чтения документации, я получаю впечатление, что с majority=TRUE
это будет просто следовать за большинством, то есть они все должны идти в том же узел без каких-либо изменений. И все же я получаю для них распределение предсказаний.
Так
- мое понимание того, как
majority=TRUE
работает правильно? - Как ctree устанавливает/прогнозирует строки, которые не имеют наблюдаемых предикторов?
, кстати, я попытался проследить код, чтобы увидеть, как используется majority
аргумент и увидеть, что линия #104
в partykit:::.cnode
есть:
prob <- numeric(0) + 1L:length(prob) %in% which.max(prob)
, которые выглядят довольно странно для меня, как результат будет всегда be numeric(0)
.